Obsługa plików
Oprócz surowych danych tekstowych, możesz chcieć wydobywać informacje z innych typów plików, takich jak prezentacje PowerPoint lub pliki PDF.
Możesz użyć ładowaczy dokumentów LangChain do przetwarzania plików na format tekstowy, który można wprowadzić do LLMs.
Parsowanie na podstawie typu MIME
Tutaj omówimy parsowanie na podstawie typów MIME, co jest często przydatne w aplikacjach opartych na wydobywaniu informacji, jeśli piszesz kod serwera, który przyjmuje pliki przesłane przez użytkownika.
W tym przypadku najlepiej jest założyć, że rozszerzenie pliku dostarczonego przez użytkownika jest błędne, a zamiast tego wywnioskować typ MIME z treści binarnej pliku.
Zaimportujmy zawartość. Będzie to plik HTML, ale poniższy kod będzie działał z innymi typami plików.
import requests
response = requests.get("https://en.wikipedia.org/wiki/Car")
data = response.content
data[:20]
b'<!DOCTYPE html>\n<htm'
Skonfiguruj parsery
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())
Car - Wikipedia