Block 05 – Embeddings & Vector Stores¶
Haufe AI Automation Kurs | Tag 2 - Block 1
Zeitbedarf: 3-4 Stunden | Schwierigkeitsgrad: Fortgeschritten
Thema: Dokumentenverarbeitung mit Embeddings und Vektordatenbanken
🎯 Lernziele¶
Nach diesem Block können Sie:
- Texte in semantische Vektoren (Embeddings) umwandeln und verstehen
- Vektordatenbanken wie Chroma und FAISS für Finanzdokumente einrichten
- Verschiedene Retrieval-Methoden für intelligente Dokumentensuche implementieren
- Vollständige RAG-Pipeline für Finanzberichte und Risikodokumente aufbauen
📖 Theorie¶
Verstehen Sie Embeddings, Vektorräume, semantische Ähnlichkeit und die komplette RAG-Pipeline-Architektur.
## 💻 Übung [Aufgabe öffnen](./exercise.md) Von RAG-Evolution-Demonstrator bis zur produktiven Streamlit-App für PDF-Zusammenfassungen. --- ## ✅ Lösung [Lösung anzeigen](./solution.md) Vollständige Implementierungen aller RAG-Komponenten und Retrieval-Strategien. --- -->
🧠 Embeddings & Semantische Suche¶
Was sind Embeddings?¶
Numerische Vektordarstellungen von Text, die semantische Bedeutung erfassen: - "Liquidität" und "Cashflow" → ähnliche Vektoren - Dimensionalität: 1536 (OpenAI ada-002) - Kosinus-Ähnlichkeit: Maß für semantische Nähe
Vektordatenbanken¶
Effiziente Speicherung und Suche: - Chroma: Open Source, einfach zu verwenden - FAISS: Meta's hochperformante Lösung - Ähnlichkeitssuche: k-nearest neighbors - Metadaten-Filterung: Erweiterte Suchoptionen
🗂️ Assets¶
- RAG Evolution Demonstrator - Schrittweise RAG-Entwicklung
- Embeddings Basics Notebook - Hands-on Embeddings
- Vectorstore Starter Code - Chroma Setup Template
- Document Summarization App - Streamlit PDF-Zusammenfassung
- Retrieval Comparison - Verschiedene Retrieval-Methoden
- Requirements - Benötigte Pakete
🛠️ Hauptübungen¶
1. RAG-Pipeline Evolution¶
Ziel: Komplette RAG-Entwicklung verstehen
Schritte: Basic Processing → Chunking → Embeddings → Vectorstore → RAG
Output: Funktionale RAG-Pipeline mit Qualitätsvergleich
2. Embeddings für Finanztexte¶
Ziel: Semantische Ähnlichkeit bei Finanzterminologie
Tools: OpenAI Embeddings, Cosine Similarity
Output: Ähnlichkeitsanalyse für "EBITDA", "Cashflow", "Liquidität"
3. Produktive Vektordatenbank¶
Ziel: Chroma-DB für Finanzberichte aufbauen
Features: Similarity Search, MMR, Metadatenfilterung
Output: Skalierbare Dokumentensuchfunktion
4. PDF-Summarization App¶
Ziel: Benutzerfreundliche Streamlit-Anwendung
Features: Upload, Processing, Strukturierte Zusammenfassung
Output: Produktive App für Earnings Call Transcripts
5. Retrieval-Methoden Benchmark¶
Ziel: Verschiedene Strategien evaluieren
Vergleich: Vector-Retrieval vs. BM25 vs. Ensemble
Output: Qualitätsbewertung für verschiedene Abfragetypen
💡 Praktische Code-Beispiele¶
RAG-Pipeline Setup¶
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter
# 1. Dokumente laden und chunken
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000, chunk_overlap=200
)
chunks = text_splitter.split_documents(documents)
# 2. Embeddings erstellen
embeddings = OpenAIEmbeddings()
# 3. Vectorstore aufbauen
vectorstore = Chroma.from_documents(
documents=chunks,
embedding=embeddings,
persist_directory="./chroma_db"
)
# 4. Retrieval konfigurieren
retriever = vectorstore.as_retriever(
search_type="similarity_score_threshold",
search_kwargs={"score_threshold": 0.7, "k": 5}
)
Streamlit App Integration¶
import streamlit as st
st.title("📄 PDF Zusammenfassung")
uploaded_file = st.file_uploader("PDF hochladen", type="pdf")
if uploaded_file:
# PDF verarbeiten
documents = load_pdf(uploaded_file)
summary = create_summary(documents)
st.write(summary)
⚙️ Setup-Anforderungen¶
Python-Pakete¶
pip install langchain>=0.1.0 langchain-openai>=0.1.0
pip install langchain-community>=0.0.20 chromadb>=0.4.0
pip install streamlit>=1.28.0 pypdf>=4.0.0
API-Keys erforderlich¶
# .env Datei
OPENAI_API_KEY=your_openai_api_key_here
LANGCHAIN_API_KEY=your_langchain_api_key_here
LANGCHAIN_TRACING_V2=true
Datensets¶
- Beispiel-Finanzberichte für Übungen verfügbar
- ESG-Dokumente für erweiterte Tests
- Harrison Chase Kursmaterialien als Referenz
🔧 Troubleshooting¶
Häufige Probleme¶
- API-Key Fehler:
echo $OPENAI_API_KEYprüfen - Chroma DB Probleme:
./chroma_db/Ordner löschen - Memory Issues: Kleinere
chunk_size(500-800 Zeichen) - Embedding Dimensionen: Konsistenz bei Modellwechsel beachten
Performance-Tipps¶
- Große PDFs:
map_reducestattstuffChain verwenden - Persistierung:
persist_directoryfür dauerhafte Speicherung - Batch Processing: Für große Dokumentenmengen