So verwenden Sie LangChain-Dokumentenlader

LangChain ist ein leistungsstarkes Framework zur Entwicklung von Anwendungen, die von Sprachmodellen unterstützt werden. Eine seiner Hauptfunktionen ist die Fähigkeit, verschiedene Arten von Dokumenten zu laden und zu verarbeiten, was für Aufgaben wie Frageantwort, Zusammenfassung und Informationssuche unerlässlich ist. In diesem umfassenden Leitfaden werden wir untersuchen, wie du LangChain-Dokumentlader verwenden

Build APIs Faster & Together in Apidog

So verwenden Sie LangChain-Dokumentenlader

Start for free
Inhalte

LangChain ist ein leistungsstarkes Framework zur Entwicklung von Anwendungen, die von Sprachmodellen unterstützt werden. Eine seiner Hauptfunktionen ist die Fähigkeit, verschiedene Arten von Dokumenten zu laden und zu verarbeiten, was für Aufgaben wie Frageantwort, Zusammenfassung und Informationssuche unerlässlich ist. In diesem umfassenden Leitfaden werden wir untersuchen, wie du LangChain-Dokumentlader verwenden kannst, um mit verschiedenen Dateiformaten und Datenquellen zu arbeiten.

💡
Möchtest du Claude 3.5 Sonnet ohne Einschränkungen ausprobieren?

Bist du auf der Suche nach einer KI-Plattform, die dir Zugang zu jedem KI-Modell bietet, mit einem All-in-One-Preis?

Dann darfst du Anakin AI nicht verpassen!

Anakin AI ist eine All-in-One-Plattform für die Workflow-Automatisierung. Erstelle leistungsstarke KI-Apps mit einem benutzerfreundlichen No-Code-App-Builder, mit Llama 3, Claude, GPT-4, Uncensored LLMs, Stable Diffusion...

Erstelle deine Traum-KI-App in Minuten, nicht Wochen, mit Anakin AI!

Einführung in LangChain-Dokumentlader

LangChain-Dokumentlader sind dazu konzipiert, den Prozess des Einlesens von Daten aus verschiedenen Quellen zu vereinfachen und in ein Format umzuwandeln, das von Sprachmodellen problemlos genutzt werden kann. Diese Lader unterstützen eine Vielzahl von Dateitypen, einschließlich CSV, HTML, JSON, Markdown, PDF und Microsoft Office-Dokumenten.

Bevor wir uns spezifischen Ladern zuwenden, richten wir unsere Umgebung ein:

pip install langchain

Jetzt schauen wir uns an, wie verschiedene Dokumentlader in LangChain verwendet werden.

1. CSV LangChain-Dokumentlader

Durch Semikolon getrennte Werte (CSV)-Dateien werden häufig zur Speicherung von Tabellendaten verwendet. LangChain bietet einen CSVLoader, um einfach mit CSV-Dateien zu arbeiten.

Verwendung des CSVLoaders in LangChain-Dokumentladern

So verwendest du den CSVLoader:

from langchain.document_loaders import CSVLoader

# Initialisiere den Loader
loader = CSVLoader(file_path="Pfad/zu/deiner/datei.csv")

# Lade die Dokumente
documents = loader.load()

# Gib das erste Dokument aus
print(documents[0].page_content)

Standardmäßig wird jeder Datensatz in der CSV-Datei zu einem separaten Dokument. Der Inhalt jedes Dokuments ist eine Zeichenfolgenrepräsentation der Schlüssel-Wert-Paare des Datensatzes.

Anpassen der CSV-Analyse in LangChain-Dokumentladern

Du kannst die Art und Weise, wie die CSV-Datei analysiert wird, durch zusätzliche Argumente anpassen:

loader = CSVLoader(
    file_path="Pfad/zu/deiner/datei.csv",
    csv_args={
        "delimiter": ",",
        "quotechar": '"',
        "fieldnames": ["Spalte1", "Spalte2", "Spalte3"]
    }
)

Dadurch kannst du das Trennzeichen, das Anführungszeichen und die Spaltennamen explizit festlegen.

2. HTML LangChain-Dokumentlader

Zum Laden von HTML-Inhalten bietet LangChain verschiedene Optionen. Hier betrachten wir zwei beliebte Varianten: UnstructuredHTMLLoader und BSHTMLLoader.

UnstructuredHTMLLoader in LangChain-Dokumentladern

Dieser Loader verwendet die Unstructured-Bibliothek zum Parsen von HTML:

from langchain.document_loaders import UnstructuredHTMLLoader

loader = UnstructuredHTMLLoader("Pfad/zu/deiner/datei.html")
data = loader.load()

print(data[0].page_content[:300])

BSHTMLLoader in LangChain-Dokumentladern

Der BSHTMLLoader verwendet Beautiful Soup zum Parsen von HTML:

from langchain.document_loaders import BSHTMLLoader

loader = BSHTMLLoader("Pfad/zu/deiner/datei.html")
data = loader.load()

print(data[0].page_content[:300])

Der BSHTMLLoader extrahiert den Textinhalt und speichert den Seitentitel in den Metadaten.

3. JSON LangChain-Dokumentlader

JSON (JavaScript Object Notation) ist ein beliebtes Datenformat. LangChain bietet einen JSONLoader zum Arbeiten mit JSON-Dateien.

Grundlegende Verwendung des JSONLoader in LangChain-Dokumentladern

Hier ist ein einfaches Beispiel zur Verwendung des JSONLoaders:

from langchain.document_loaders import JSONLoader
import json

# Beispielhafte JSON-Daten
data = [
    {"text": "Hallo, Welt!", "number": 42},
    {"text": "LangChain ist großartig", "number": 100}
]

# JSON in eine Datei schreiben
with open("beispiel.json", "w") as f:
    json.dump(data, f)

# Initialisiere und verwende den Loader
loader = JSONLoader(
    file_path="beispiel.json",
    jq_schema='.[]',
    text_content=False
)

documents = loader.load()

for doc in documents:
    print(doc.page_content)
    print(doc.metadata)
    print("---")

In diesem Beispiel laden wir jedes Objekt im JSON-Array als separates Dokument.

Erweiterte JSON-Analyse in LangChain-Dokumentladern

Du kannst JQ-ähnliche Schemata verwenden, um bestimmte Felder zu extrahieren:

loader = JSONLoader(
    file_path="beispiel.json",
    jq_schema='.[] | {text: .text, number: .number}',
    text_content=False
)

Dadurch werden nur die Felder "text" und "number" aus jedem Objekt extrahiert.

4. Markdown LangChain-Dokumentladern

Markdown ist eine leichtgewichtige Auszeichnungssprache, die häufig zur Dokumentation verwendet wird. LangChain bietet einen UnstructuredMarkdownLoader zum Arbeiten mit Markdown-Dateien.

Verwendung des UnstructuredMarkdownLoader in LangChain-Dokumentladern

So verwendest du den UnstructuredMarkdownLoader:

from langchain.document_loaders import UnstructuredMarkdownLoader

loader = UnstructuredMarkdownLoader("Pfad/zu/deiner/datei.md")
data = loader.load()

print(data[0].page_content[:300])

Dieser Loader analysiert den Markdown-Inhalt und extrahiert den Text und behält dabei etwas Struktur bei.

Beibehalten von Elementen in LangChain-Dokumentladern

Wenn du die ursprünglichen Markdown-Elemente beibehalten möchtest, kannst du den "elements"-Modus verwenden:

loader = UnstructuredMarkdownLoader("Pfad/zu/deiner/datei.md", mode="elements")
data = loader.load()

for doc in data:
    print(doc.metadata['category'])
    print(doc.page_content[:100])
    print("---")

Dadurch wird der Markdown-Inhalt in verschiedene Elemente (z. B. Titel, Narrativtext) aufgeteilt und in den Metadaten beibehalten.

5. DOCX/XLSX/PPTX LangChain-Dokumentladern

LangChain unterstützt das Laden von Microsoft Office-Dokumenten, einschließlich Word-, Excel- und PowerPoint-Dateien.

Word-Dokumente in LangChain-Dokumentladern

Für Word-Dokumente kannst du den Docx2txtLoader verwenden:

from langchain.document_loaders import Docx2txtLoader

loader = Docx2txtLoader("Pfad/zu/deinem/dokument.docx")
data = loader.load()

print(data[0].page_content[:300])

Excel-Tabellenkalkulationen in LangChain-Dokumentladern

Für Excel-Dateien kannst du den UnstructuredExcelLoader verwenden:

from langchain.document_loaders import UnstructuredExcelLoader

loader = UnstructuredExcelLoader("Pfad/zu/deiner/tabelle.xlsx")
data = loader.load()

print(data[0].page_content[:300])

PowerPoint-Präsentationen in LangChain-Dokumentladern

Für PowerPoint-Präsentationen kannst du den UnstructuredPowerPointLoader verwenden:

from langchain.document_loaders import UnstructuredPowerPointLoader

loader = UnstructuredPowerPointLoader("Pfad/zu/deiner/präsentation.pptx")
data = loader.load()

print(data[0].page_content[:300])

6. PDF LangChain-Dokumentladern

PDF-Dokumente werden häufig zum Austausch von formatierten Dokumenten verwendet. LangChain bietet verschiedene Möglichkeiten zum Laden von PDFs, einschließlich PyPDFLoader und UnstructuredPDFLoader.

Verwendung des PyPDFLoader in LangChain-Dokumentladern

So verwendest du den PyPDFLoader:

from langchain.document_loaders import PyPDFLoader

loader = PyPDFLoader("Pfad/zu/deiner/datei.pdf")
pages = loader.load_and_split()

for page in pages[:2]:  # Inhalt der ersten beiden Seiten ausgeben
    print(page.page_content[:300])
    print("---")

Dieser Loader erstellt ein separates Dokument für jede Seite im PDF.

Verwendung des UnstructuredPDFLoader in LangChain-Dokumentladern

Der UnstructuredPDFLoader bietet fortschrittlichere Analysemöglichkeiten:

from langchain.document_loaders import UnstructuredPDFLoader

loader = UnstructuredPDFLoader("Pfad/zu/deiner/datei.pdf", mode="elements")
data = loader.load()

for element in data[:5]:  # Erste 5 Elemente ausgeben
    print(f"Typ: {element.metadata['category']}")
    print(element.page_content[:100])
    print("---")

Dieser Loader kann verschiedene Elemente aus dem PDF extrahieren, wie z.B. Titel, Textblöcke und Tabellen.

Fortgeschrittene Techniken in LangChain-Dokumentladern

Jetzt, da wir die Grundlagen verschiedener Dokumentladern abgedeckt haben, schauen wir uns einige fortgeschrittene Techniken an, mit denen du deine Dokumentenverarbeitungsfähigkeiten verbessern kannst.

Kombinieren mehrerer Lader in LangChain-Dokumentladern

Manchmal musst du Dokumente aus verschiedenen Quellen oder Formaten laden. LangChain macht dies mit dem DirectoryLoader einfach:

from langchain.document_loaders import DirectoryLoader, TextLoader, PDFLoader, CSVLoader

loader = DirectoryLoader(
    'Pfad/zum/Verzeichnis',
    glob="**/*",
    loader_cls={
        ".txt": TextLoader,
        ".pdf": PDFLoader,
        ".csv": CSVLoader
    }
)

documents = loader.load()

Dieser Loader durchsucht das angegebene Verzeichnis rekursiv und verwendet den entsprechenden Loader für jeden Dateityp.

Textaufteilung in LangChain-Dokumentladern

Bei langen Dokumenten ist es oft hilfreich, sie in kleinere Abschnitte aufzuteilen. LangChain bietet verschiedene Textaufteiler:

from langchain.text_splitter import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200
)

split_docs = text_splitter.split_documents(documents)

Dadurch werden die Dokumente in Abschnitte von etwa 1000 Zeichen aufgeteilt, wobei eine Überlappung von 200 Zeichen zwischen den Abschnitten besteht.

Manipulation von Metadaten in LangChain-Dokumentladern

Du kannst Metadaten für deine Dokumente hinzufügen oder ändern:

from langchain.schema import Document

def add_source_to_metadata(doc):
    return Document(
        page_content=doc.page_content,
        metadata={**doc.metadata, "source": "benutzerdefinierte_quelle"}
    )

processed_docs = [add_source_to_metadata(doc) for doc in documents]

Dadurch wird jedem Dokument ein Feld "source" in den Metadaten hinzugefügt.

Fazit

LangChain-Dokumentladern bieten eine leistungsstarke und flexible Möglichkeit, verschiedene Arten von Dokumenten in deine Sprachmodellanwendungen einzulesen. Indem du lernst, diese Lader effektiv zu nutzen, kannst du robustere und vielseitigere KI-gesteuerte Systeme entwickeln, die eine Vielzahl von Datenquellen verarbeiten und analysieren können.

Vergiss nicht, immer die LangChain-Dokumentation für aktuellste Informationen und zusätzliche Funktionen zu überprüfen. Wenn du dich mit diesen Ladern immer sicherer fühlst, wirst du in der Lage sein, immer komplexere Aufgaben bei der Dokumentenverarbeitung zu bewältigen und anspruchsvollere KI-Anwendungen zu erstellen.

💡
Möchtest du Claude 3.5 Sonnet ohne Einschränkungen ausprobieren?

Bist du auf der Suche nach einer KI-Plattform, die dir Zugang zu jedem KI-Modell bietet, mit einem All-in-One-Preis?

Dann darfst du Anakin AI nicht verpassen!

Anakin AI ist eine All-in-One-Plattform für die Workflow-Automatisierung. Erstelle leistungsstarke KI-Apps mit einem benutzerfreundlichen No-Code-App-Builder, mit Llama 3, Claude, GPT-4, Uncensored LLMs, Stable Diffusion...

Erstelle deine Traum-KI-App in Minuten, nicht Wochen, mit Anakin AI!