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.
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.
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!