Загрузчики документов Langchain выдают ошибку файловой системы только для чтения на лямбда-выражении AWS при загрузке доPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Загрузчики документов Langchain выдают ошибку файловой системы только для чтения на лямбда-выражении AWS при загрузке до

Сообщение Anonymous »

Я пытаюсь загрузить файл из корзины S3 с помощью AWS Lambda, используя загрузчики документов langchain.
Я впервые попробовал использовать S3FileLoader, когда он дал команду на чтение -только ошибка файла.
Поэтому я попробовал сначала загрузить файл docx из корзины S3, а затем использовал специальный загрузчик документов UnstructuredWordDocumentLoader, поскольку это был документ Word, который я загружено. Однако ошибка по-прежнему выдавалась.
В конце концов я хочу загрузить любой тип документа в корзину S3 и сгенерировать внедрения для хранения в векторной базе данных Opensearch.
Кроме того, если я попытаюсь развернуть свою функцию Lambda с помощью Docker, используя изображение public.ecr.aws/lambda/python:3.11, я получу ошибку:

Код: Выделить всё

FileNotFoundError: soffice command was not found. Please install libreoffice
Вот мой код:

Код: Выделить всё

from langchain_community.document_loaders import S3FileLoader from langchain_community.document_loaders import UnstructuredWordDocumentLoader

#first approach
#loader = S3FileLoader(s3_bucket, s3_key)
#docs = loader.load()

#second approach
s3.download_file(s3_bucket, s3_key, f"/tmp/{s3_key}")

with open(f"/tmp/{s3_key}", "rb") as f:
loader = UnstructuredWordDocumentLoader(f"/tmp/{s3_key}")
docs = loader.load()
Ошибка:

[ERROR] OSError: [Errno 30] Файловая система только для чтения: '/ home/sbx_user1051' Traceback (последний вызов последний): файл "/var/task/aws_lambda_powertools/logging/logger.py", строка 449, в возврате украшения lambda_handler(event, context, *args, **kwargs) Файл "/var/task/lambda_handler.py", строка 54, в обработчике docs = loader.load() Файл "/var/task/langchain_community/document_loaders/unstructured. py", строка 87, в файле load elements = self._get_elements() "/var/task/langchain_community/document_loaders/word_document.py", строка 124, в _get_elements return раздел_docx(filename=self.file_path, **self.unstructured_kwargs) Файл "/var/task/unstructured/documents/elements.py" , строка 526, в обертке elements = func(*args, **kwargs) File "/var/task/unstructured/file_utils/filetype.py", строка 619, в оболочке elements = func(*args, **kwargs) Файл "/var/task/unstructured/file_utils/filetype.py", строка 574, в элементах оболочки = func(*args, **kwargs) Файл "/var/task/unstructured/chunking/init.py", строка 69, в элементы-обертки = func(*args, **kwargs) Файл "/var/task/unstructured/partition/docx.py", строка 228, в списке возврата раздела(элементы) Partition_docx Файл "/var/task/unstructured/partition/lang .py", строка 397, в файле apply_lang_metadata elements = list(elements) "/var/task/unstructured/partition/docx.py", строка 305, в _iter_document_elements, выход из self._iter_paragraph_elements(block_item) Файл "/var/task/unstructured/partition/docx.py", строка 541, в _iter_paragraph_elements, выход из файла self._classify_paragraph_to_element(item) "/var/task/unstructured/partition/docx.py", строка 361, в _classify_paragraph_to_element TextSubCls = self._parse_paragraph_text_for_element_type(paragraph) Файл "/var/task/unstructured/partition/docx.py", строка 868, в _parse_paragraph_text_for_element_type if is_possible_narrative_text(text): файл "/var/task/unstructured/partition/text_type.py", строка 78, в is_possible_narrative_text, если превышает_cap_ratio(text, порог = cap_threshold): файл "/var/task/unstructured/partition/text_type.py ", строка 274, в превышает_cap_ratio, если предложение_count(текст, 3) > 1: Файл «/var/task/unstructured/partition/text_type.py», строка 223, в предложении «count_count» = send_tokenize(text) Файл «/var/task/unstructured/nlp/tokenize.py», строка 29, в send_tokenize Файл _download_nltk_package_if_not_present(package_category="tokenizers", package_name="punkt") «/var/task/unstructured/nlp/tokenize.py», строка 23, в _download_nltk_package_if_not_present nltk.download(package_name) Файл «/var/task/nltk/downloader.py», строка 777, в загрузке для сообщения в себе. incr_download(info_or_id, download_dir, Force): Файл «/var/task/nltk/downloader.py», строка 642, в incr_download, выход из self._download_package(info, download_dir, Force) Файл «/var/task/nltk/downloader.py», строка 699, в _download_package os .makedirs(download_dir) Файл "", строка 215, в makedirs Файл "", строка 225, в makedirs


Подробнее здесь: https://stackoverflow.com/questions/780 ... mbda-while
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»