Skip to content

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

Theorie ansehen

Verstehen Sie LLM-Kontextlimits, Document Loading und die verschiedenen Chunking-Strategien für optimale Ergebnisse.


💻 Übung

Aufgabe öffnen

Praktische Übungen zu PDF-Loading, Excel-Extraktion, Web-Scraping und Chunking-Vergleichen.


✅ Lösung

Lösung anzeigen

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


🛠️ 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

🔙 Zurück zur Startseite