Skip to content

Block 06 – Conversational AI & Chat Systems

Haufe AI Automation Kurs | Tag 2 - Block 2
Zeitbedarf: 45-60 Minuten | Schwierigkeitsgrad: Fortgeschritten
Aufbauend auf: Block 04 (Retrieval) & Block 05 (Embeddings)


🎯 Lernziele

Nach diesem Block können Sie: - Unterschied zwischen Q&A-Systemen und Chatbots verstehen - Conversational Memory-Konzepte für Finance-Anwendungen implementieren - Chat-Interfaces für komplexe Finanz- und Risikofragen erstellen - Kontextuellen Dialog bei der Dokumentenanalyse nutzen


📖 Theorie

Theorie ansehen

Verstehen Sie Conversational AI, Memory-Strategien und die Unterschiede zu einfachen Q&A-Systemen.


💻 Übung

Aufgabe öffnen

Von grundlegendem Chat-Setup bis zum spezialisierten Finance-Chatbot mit verschiedenen Memory-Strategien.


✅ Lösung

Lösung anzeigen

Vollständige Chat-Implementierungen mit erweiterten Features und Performance-Optimierungen.


💬 Conversational AI für Finance

Warum Chat-Systeme?

Iterative Finanzanalysen benötigen Kontext: 1. "Wie hoch ist unser Kreditrisiko?" 2. "Welche Branchen sind am stärksten betroffen?" 3. "Wie können wir das Risiko reduzieren?"

Memory-Strategien

Verschiedene Ansätze für unterschiedliche Anforderungen: - ConversationBufferMemory: Vollständiger Verlauf - ConversationSummaryMemory: Zusammengefasster Verlauf - ConversationBufferWindowMemory: Begrenzte Nachrichten


🗂️ Assets


🛠️ Hauptübungen

1. Grundlegendes Chat-System

Ziel: ConversationalRetrievalChain implementieren
Features: Memory, Retrieval, Kontexterhaltung
Output: Funktionsfähiger Finance-Chatbot

2. Spezialisierter Finance-Chatbot

Ziel: Custom Prompts für Finanzanalysen
Features: Branchenspezifische Antworten, Fachterminologie
Output: Professioneller Finance-Assistent

3. Memory-Strategien Vergleich

Ziel: Verschiedene Memory-Typen testen
Vergleich: Buffer vs. Summary vs. Window Memory
Output: Optimale Memory-Konfiguration für verschiedene Use Cases


💡 Praktische Code-Beispiele

Chat-System Setup

from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationalRetrievalChain

# Memory für Gesprächskontext
memory = ConversationBufferMemory(
    memory_key="chat_history",
    return_messages=True
)

# Conversational Chain erstellen
qa = ConversationalRetrievalChain.from_llm(
    llm,
    retriever=vectordb.as_retriever(),
    memory=memory
)

# Chat-Dialog starten
result = qa({"question": "Wie hoch ist unser Kreditrisiko?"})
print(result["answer"])

Memory-Strategien

# Buffer Memory (vollständiger Verlauf)
buffer_memory = ConversationBufferMemory(
    memory_key="chat_history",
    return_messages=True
)

# Summary Memory (zusammengefasst)
summary_memory = ConversationSummaryMemory(
    llm=llm,
    memory_key="chat_history",
    return_messages=True
)

# Window Memory (letzte N Nachrichten)
window_memory = ConversationBufferWindowMemory(
    k=5,  # Letzte 5 Nachrichten behalten
    memory_key="chat_history",
    return_messages=True
)

⚙️ Setup-Anforderungen

Python-Pakete

pip install langchain openai chromadb panel
pip install pypdf python-dotenv

API-Keys erforderlich

# .env Datei
OPENAI_API_KEY=ihr_api_key_hier
LANGCHAIN_API_KEY=optional_für_langsmith

Beispieldokumente

  • Quartalsbericht für Chat-Tests
  • Risikobewertung Template für Risikoanalyse
  • Finance-PDFs für realistische Szenarien

🔧 Troubleshooting

Häufige Probleme

  • Chat verliert Kontext: Memory-Typ anpassen (Window statt Buffer)
  • Langsame Antworten: ConversationSummaryMemory oder Memory leeren
  • Keine dokumentbasierten Antworten: Retriever-Parameter prüfen (k-Wert)
  • API-Rate-Limits: Separate Keys für Dev/Prod verwenden

Performance-Optimierung

  • Lokale Embeddings: HuggingFace für bessere Performance
  • Caching: Für häufige Fragen implementieren
  • Chunk-Größen: Experimentieren für optimale Ergebnisse

Debug-Tipps

# Source-Dokumente anzeigen
qa = ConversationalRetrievalChain.from_llm(
    llm, retriever, memory=memory,
    return_source_documents=True
)

result = qa({"question": "Ihre Frage"})
print("Quellen:", result["source_documents"])

🔙 Zurück zur Startseite