Ошибка: ошибка при загрузке и инициализации файлов FAISS и Pickle: ошибка. загрузка файла Pickle из локального файла: 'fields_set'
ранее я получал эту ошибку: Ошибка в faiss::FileIOReader::FileIOReader(const char *) в /Users/runner/work/ faiss-wheels/faiss-wheels/faiss/faiss/impl/io.cpp:68: Ошибка: ошибка 'f': невозможно открыть /
download_intialize_from_gcs
vector_store
Вещи, которые я пытался решить до сих пор:
- Первоначально пыталась загрузить файлы локально:
- Изначально мы использовали os.madeirs и os.path для создания каталогов и загрузки файлов FAISS и Pickle во временный каталог в локальной файловой системе (т. е. /tmp/).
- Файлы загружаются непосредственно из Google Cloud Storage (GCS):
- Перешел от загрузки файлов локально к загрузке их непосредственно из GCS с использованием download_as_bytes() как для файлов FAISS, так и для файлов Pickle.
- Попытка десериализации индексных файлов FAISS с помощью faiss.deserialize_index() из байтовых потоков.
- Загружены данные Pickle непосредственно из байтовых потоков с помощью Pickle.loads().
- Обработка ошибок при загрузке индекса FAISS:
- Обнаружены и обработаны ошибки, связанные с десериализацией индекса FAISS, включая проверку наличия индекса FAISS и файлов Pickle в GCS.
- Попытка различных вариантов загрузки индекса FAISS (включая отладку) для ожидаемых типов ввода).
- Проверено наличие пользовательских объектов в файле Pickle:
- После обнаружения ошибок, связанных с загрузкой файла Pickle (fields_set), я попытался проверить содержимое файла Pickle, чтобы определить, есть ли какие-либо пользовательские объекты внутри файла.
- Добавлена функция для проверки содержимого файла Pickle на наличие настраиваемых полей и выявления потенциальных проблем в процессе распаковки.
- Добавлена подробная обработка исключений для файлов Pickle:
- Реализована обработка исключений, позволяющая различать ошибки десериализации (ошибки пользовательских объектов) и другие проблемы, такие как отсутствие файлов или неподдерживаемые типы данных.
- Изучил использование Cloudpickle для сложной десериализации Pickle:
- Пытался переключиться на Cloudpickle, чтобы улучшить качество обработать файл Pickle, содержащий пользовательские объекты, но столкнулся с проблемами, из-за которых Cloudpickle.UnpicklingError не поддерживался должным образом.
- Очистка временных каталогов после обработки:
- Гарантировано, что все временные каталоги, используемые для загрузки файлов, были очищены во избежание ненужное использование памяти.
Подробнее здесь: https://stackoverflow.com/questions/790 ... thon-field