Обработка файлов
Помимо обычных текстовых данных, вам может потребоваться извлекать информацию из других типов файлов, таких как презентации PowerPoint или PDF-файлы.
Вы можете использовать загрузчики документов LangChain для преобразования файлов в текстовый формат, который можно подать на вход в LLMs.
Разбор на основе типа MIME
Здесь мы рассмотрим разбор на основе типа MIME, который часто полезен для приложений извлечения, если вы пишете серверный код, принимающий загруженные пользователем файлы.
В этом случае лучше предположить, что расширение файла, предоставленное пользователем, неверно, и вместо этого вывести тип MIME из бинарного содержимого файла.
Давайте скачаем некоторое содержимое. Это будет HTML-файл, но код ниже будет работать с другими типами файлов.
import requests
response = requests.get("https://ru.wikipedia.org/wiki/Автомобиль")
data = response.content
data[:20]
b'<!DOCTYPE html>\n<htm'
Настройка парсеров
import magic
from langchain.document_loaders.parsers import BS4HTMLParser, PDFMinerParser
from langchain.document_loaders.parsers.generic import MimeTypeBasedParser
from langchain.document_loaders.parsers.txt import TextParser
from langchain_community.document_loaders import Blob
HANDLERS = {
"application/pdf": PDFMinerParser(),
"text/plain": TextParser(),
"text/html": BS4HTMLParser(),
}
MIMETYPE_BASED_PARSER = MimeTypeBasedParser(
handlers=HANDLERS,
fallback_parser=None,
)
mime = magic.Magic(mime=True)
mime_type = mime.from_buffer(data)
blob = Blob.from_data(
data=data,
mime_type=mime_type,
)
parser = HANDLERS[mime_type]
documents = parser.parse(blob=blob)
print(documents[0].page_content[:30].strip())
Автомобиль - Википедия