Block 04 – RAG Teil 1: Document Ingestion¶
Haufe AI Automation Kurs | Tag 1 - Block 4
Zeitbedarf: 45 Minuten | Schwierigkeitsgrad: Anfänger
Thema: Document Loading, Splitting & Chunking für Finance-Anwendungen
🎯 Lernziele¶
Nach diesem Block verstehen Sie: - Warum und wie Dokumente für LLMs vorbereitet werden müssen - Verschiedene Document Loader für PDF, Excel, Web und andere Formate - Chunking-Strategien und deren Auswirkungen auf RAG-Qualität - Metadaten-Integration für effektives Retrieval
📖 Theorie¶
Verstehen Sie LLM-Kontextlimits, Document Loading und die verschiedenen Chunking-Strategien für optimale Ergebnisse.
💻 Übung¶
Praktische Übungen zu PDF-Loading, Excel-Extraktion, Web-Scraping und Chunking-Vergleichen.
✅ Lösung¶
Komplett ausgearbeitete Python-Lösungen für alle Document Loading Übungen.
🔧 Kernkonzepte¶
Document Loading¶
80+ verschiedene Loader verfügbar: - PDF: PyPDFLoader, UnstructuredPDFLoader - Excel: UnstructuredExcelLoader, Pandas Integration - Web: WebBaseLoader, BeautifulSoup - Text: TextLoader, CSVLoader
Chunking-Strategien¶
Verschiedene Splitter für verschiedene Anwendungen: - CharacterTextSplitter: Einfach, basiert auf Zeichen - RecursiveCharacterTextSplitter: Intelligent, respektiert Struktur - TokenTextSplitter: Kostenoptimiert, LLM-Token-basiert
🗂️ Assets¶
- PDF Loading Notebook - Praktische Übungen zu verschiedenen Loadern
- Document Splitting Notebook - Hands-on Chunking-Strategien
- Beispiel-Finanzbericht - Übungsdaten für PDF-Loading
- Excel-Finanzkennzahlen - Monatliche Finanzumsätze 2023
- Requirements - Benötigte Python-Pakete
🛠️ Hauptübungen¶
1. PDF-Finanzbericht Loading¶
Ziel: Finanzbericht laden und Finanzterminologie extrahieren
Tools: PyPDFLoader, Keyword-Suche
Output: Metadaten, gefilterte Seiten, Begriffsanalyse
2. Excel-Datenanalyse¶
Ziel: Finanzkennzahlen aus Excel laden und strukturieren
Tools: UnstructuredExcelLoader, Pandas
Output: LangChain Documents mit Metadaten
3. Web-Extraktion¶
Ziel: Finanzinformationen von Websites extrahieren
Tools: WebBaseLoader, BeautifulSoup
Output: Strukturierte Finanzinhalte
4. Chunking-Strategien Vergleich (Bonus)¶
Ziel: Verschiedene Splitter vergleichen und bewerten
Tools: Character-, Recursive-, Token-Splitter
Output: Performance- und Qualitätsvergleich
💡 Praktische Beispiele¶
PDF-Loading Code¶
from langchain.document_loaders import PyPDFLoader
loader = PyPDFLoader("beispiel_finanzbericht.pdf")
documents = loader.load()
print(f"Anzahl Seiten: {len(documents)}")
# Keyword-Suche
keywords = ["Risiko", "Inflation", "Zinsen", "Bilanz"]
for keyword in keywords:
count = sum(1 for doc in documents if keyword in doc.page_content)
print(f"'{keyword}': {count} Seiten")
Excel-Integration¶
from langchain.document_loaders import UnstructuredExcelLoader
import pandas as pd
# LangChain-Methode
loader = UnstructuredExcelLoader("finanzkennzahlen.xlsx")
documents = loader.load()
# Pandas-Alternative für strukturierte Daten
df = pd.read_excel("finanzkennzahlen.xlsx")
⚙️ Setup-Anforderungen¶
Python-Pakete¶
pip install langchain>=0.1.0 pypdf>=3.0.0 pandas>=2.0.0
pip install openpyxl>=3.1.0 unstructured>=0.10.0
pip install beautifulsoup4>=4.12.0 requests>=2.31.0
Keine API-Keys erforderlich¶
Für grundlegende PDF/Excel-Loading sind keine externen APIs nötig.
🔧 Troubleshooting¶
Häufige Probleme¶
- FileNotFoundError: Absolute Pfade verwenden
- PDF-Extraktion fehlerhaft: OCR oder andere PDFs nutzen
- Excel-Loader Probleme: Pandas als Fallback
- Web-Scraping blockiert: User-Agent Header setzen
Performance-Tipps¶
- Große PDFs: Auf 10 Seiten begrenzen für Demo
- Token-Limits: Kleinere Chunk-Größen (200-500 Tokens)
- Memory Issues: Chunks einzeln verarbeiten