Dateien verarbeiten

Neben Rohdaten können Sie auch Informationen aus anderen Dateitypen wie PowerPoint-Präsentationen oder PDFs extrahieren.

Sie können die LangChain-Dokumentenladegeräte verwenden, um Dateien in ein Textformat zu parsen, das an LLMs weitergeleitet werden kann.

Parsers basierend auf MIME-Typen

Hier betrachten wir die parsen basierend auf MIME-Typen, was oft nützlich ist für extraktionsbasierte Anwendungen, wenn Sie Servercode schreiben, der vom Benutzer hochgeladene Dateien akzeptiert.

In diesem Fall ist es am besten anzunehmen, dass die Dateierweiterung der vom Benutzer bereitgestellten Datei falsch ist, und stattdessen den MIME-Typ aus dem Binärinhalt der Datei ableitet.

Lassen Sie uns etwas Inhalt herunterladen. Dies wird eine HTML-Datei sein, aber der untenstehende Code funktioniert auch mit anderen Dateitypen.

import requests

response = requests.get("https://en.wikipedia.org/wiki/Car")
data = response.content
data[:20]
b'<!DOCTYPE html>\n<htm'

Konfigurieren Sie die Parser

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(),
}

MIME_TYPE_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())
Auto - Wikipedia