Next:
Impressum
langchain
1
Impressum
2
Einleitung
2.1
Ziel und Aufbau des Manuskripts
2.2
Anspruch und Perspektive
3
Künstliche Intelligenz? Eine Begriffsklärung
3.1
Was ist ein Large Language Model wirklich?
3.2
Wenn Sie eine Frage stellen
3.3
Der Unterschied zwischen plausibel und wahr
3.4
Was bedeutet das für Sie als Entwickler?
4
Wahrheit ist nicht ihre Aufgabe
4.1
Competence vs. Confidence
4.2
Das Spiel mit Wahrscheinlichkeiten
4.3
Plausibilität versus Wahrheit
4.4
Halluzination ist kein Bug
4.5
Die Fallhöhe zwischen Form und Inhalt
4.6
Was das für Ihre Architektur bedeutet
4.7
Strategien für den Umgang mit Unsicherheit
4.8
Die Entzauberung als Chance
5
Tokens – Die Währung der Sprachmodelle
5.1
Was ist ein Token – und was nicht?
5.2
Tokenisierung ist Modellsache
5.3
Beispiel: Ein Satz, viele Token
5.4
Warum Token zählen wichtig ist
5.5
Tokens als Inputvektoren – das Bindeglied zur Mathematik
5.6
Tokenisierung ist nicht Semantik
5.7
Ein Vorausblick: Tokens jenseits der Sprachmodelle
5.8
Was bleibt: Zahlen, Matrizen, Wahrscheinlichkeiten
5.9
Praktische Konsequenzen für Ihre Arbeit
5.10
Wie Sie Tokenisierung selbst erfahren können
5.11
Die Entzauberung als Grundlage
6
Der Prompt – Ihre einzige Schnittstelle zum Modell
6.1
Was ist ein Prompt wirklich?
6.2
Prompts als strukturierte Steueranweisungen
6.3
Ein Prompt, viele Wirkungen
6.4
Warum „Wie geht’s?” keine Konversation ist
6.5
Der Prompt als vektorisiertes Zahlenpaket
6.6
Einfache vs. komplexe Prompts
6.7
Determinismus durch Präzision
6.8
Der Prompt ist Ihre Programmieroberfläche
7
Das Modell verstehen
7.1
Was ist ein Modell?
7.2
Die Architektur dahinter
7.3
Generalisten und Spezialisten
7.4
Wie Modelle entstehen
7.4.1
Pretraining: Die Grundausbildung
7.4.2
Instruction Tuning: Die Feinarbeit
7.4.3
RLHF: Die menschliche Perspektive
7.5
Was das für Ihre Arbeit bedeutet
7.6
Metriken und Benchmarks
7.7
Interessenlagen und Realitäten
7.7.1
Open Source versus Closed Source
7.8
Finetuning in der Praxis
7.9
Die richtige Wahl treffen
8
Was LLM-Systeme wirklich kosten
8.1
Der Unterschied zwischen Demo und Produktion
8.2
Die Multiplikation durch Architektur
8.3
Kontext ist teuer
8.4
Die versteckten Calls
8.5
Rate Limits und Skalierung
8.6
Monitoring als Kostenfaktor
8.7
Caching als Strategie
8.8
Die Latenz-Kosten-Gleichung
8.9
Architekturen für Kosteneffizienz
8.10
Die Perspektive
9
LangChain: Vom Modell zum System
9.1
Die Lücke zwischen Potenzial und Produktion
9.2
Der Sprung vom Generator zum Werkzeug
9.3
Ein Framework, kein Wrapper
9.4
Die Bausteine: Prompts, Chains, Memory, Tools
9.5
Von Ad-hoc zu systematisch
9.6
Der Mindset-Wechsel
10
LangChain: Eine Erfolgsgeschichte in Echtzeit
10.1
Oktober 2022
10.2
Das richtige Problem zur richtigen Zeit
10.3
Von GitHub zu Ökosystem
10.4
Der Wendepunkt: Agents
10.5
Startup-DNA statt Konzern-Prozesse
10.6
Die Wette auf Vektor-Datenbanken
10.7
Ein junges Projekt mit reifem Einfluss
11
Entwickeln im Sturm: Die Volatilität des LLM-Ökosystems
11.1
Wenn das Tutorial nicht mehr funktioniert
11.2
Ein Feld ohne Gedächtnis
11.3
Die Kosten der Geschwindigkeit
11.4
LangChains Antwort: Modularität als Strategie
11.5
Pioniere, keine Konsumenten
11.6
Der Preis des Wartens
11.7
Leben mit der Unsicherheit
12
LLM-Objekte in LangChain: Von der Abstraktion zur Instanz
12.1
Die Schnittstelle verstehen
12.2
Die moderne Initialisierung mit
init_chat_model
12.3
Konfigurierbare Modelle: Zur Laufzeit entscheiden
12.4
Cloud-Modelle: OpenAI und Anthropic
12.5
Lokale Modelle mit Ollama
12.6
Parameter und ihre Bedeutung
12.7
Von der Initialisierung zur Anwendung
12.8
Die richtige Wahl treffen
13
Messages: Das Konversationsrückgrat von LangChain
13.1
Die Abstraktion zwischen Prompt und Modell
13.1.1
Warum überhaupt Messages?
13.1.2
Die drei Säulen eines Message-Objekts
13.2
Message-Typen im Detail
13.2.1
SystemMessage: Die unsichtbare Hand
13.2.2
HumanMessage: Die Stimme des Nutzers
13.2.3
AIMessage: Die Antwort mit Kontext
13.2.4
ToolMessage: Der Rückkanal
13.3
Von Prompts zu Messages: Die interne Transformation
13.3.1
Content Blocks: Die multimodale Ebene
13.4
Exemplarischer Teil: Messages in der Praxis
13.4.1
Basis-Nutzung: Eine einfache Konversation
13.4.2
System-Prompt und Kontext aufbauen
13.4.3
Multi-Turn-Konversation: Historie aufbauen
13.4.4
Metadaten nutzen: Token-Zählung und Tracing
13.4.5
Manuell konstruierte AIMessages: Historie simulieren
13.4.6
Dictionary-Format: Kompatibilität mit OpenAI-API
13.4.7
Multimodale Messages: Bilder und Text kombinieren
13.4.8
Name-Feld: Multi-User-Konversationen unterscheiden
13.5
Die Grenzen der Abstraktion
13.6
Messages als Denkmodell
14
Prompting in LangChain: Mehr als nur Strings
14.1
Grundlagen: Warum Prompts Struktur brauchen
14.1.1
Das Paradigma: Von String zu PromptValue
14.1.2
Drei Archetypen: String, Chat, Placeholder
14.1.3
Das Eingabe-Format: Dictionaries als Schnittstelle
14.2
Exemplarische Umsetzung: Vom Template zur Model-Interaktion
14.2.1
Szenario 1: String-basiertes Prompting für einfache Tasks
14.2.2
Szenario 2: Chat-Prompts mit Rollenstruktur
14.2.3
Stolperfalle: Variable Naming und Escaping
14.2.4
Szenario 3: Konversationen mit Verlauf – MessagesPlaceholder
14.2.5
Alternative Syntax: Inline-Placeholder
14.2.6
Few-Shot Prompting: Beispiele im Template verankern
14.2.7
Stolperfalle: Template-Länge und Kontext-Fenster
14.2.8
Debugging: Prompts inspizieren
14.3
Prompts als First-Class Citizens
15
Defensive Modellinitialisierung: Fehlerbehandlung in der Praxis
15.1
Das Problem verstehen
15.2
Strategie 1: Fail-Fast beim Modell-Laden
15.3
Strategie 2: Fallback-Mechanismus mit alternativen Modellen
15.4
Strategie 3: Configuration-basierte Initialisierung mit Validation
15.5
Strategie 4: Wrapper mit automatischer Retry-Logik
15.6
Strategie 5: Health-Check vor Programmstart
15.7
Welche Strategie wann?
16
Chains in LangChain: Vom einfachen Prompt zur kontrollierten Orchestrierung
16.1
Warum eine Chain mehr ist als eine Funktion
16.1.1
Das Chain-Interface: Ein Vertrag für Verkettbarkeit
16.1.2
Von der einfachen Kette zur verzweigten Logik
16.1.3
Zustand, Beobachtbarkeit, Komposition
16.2
Exemplarisch: Vom einfachen Prompt zur gestaffelten Kette
16.2.1
Eine LLMChain: Prompt, Modell, Antwort
16.2.2
SimpleSequentialChain: Eine Kette wird mehrstufig
16.2.3
SequentialChain: Mehrere Variablen, flexibler Fluss
16.2.4
RouterChain: Verzweigung statt Linearität
16.3
Das Prinzip verstehen: Chains sind Ausführungsdiagramme
17
Agents in LangChain: Vom Prompt zum autonomen Werkzeugnutzer
17.1
Konzeptuelles Fundament
17.1.1
Das Ende der linearen Kette
17.1.2
Agent: Der orchestrierte Regelkreis
17.1.3
Was ein Agent
nicht
ist
17.1.4
Agent vs. Chain: Eine Gegenüberstellung
17.2
Praktische Umsetzung mit LangChain v1.0
17.2.1
Werkzeugkasten vorbereiten
17.2.2
Der erste Agent: Vollständige Implementierung
17.2.3
Mehrfache Tool-Aufrufe: Der iterative Charakter
17.2.4
Transparenz und Debugging: Stream-Modus
17.2.5
Grenzen und Fallstricke
17.2.6
Erweiterungen: Middleware und Custom State
17.2.7
Strukturierte Ausgaben: Wenn der Agent in ein Schema passen muss
17.3
Der Agent als Orchestrierungsschicht
18
Memory in LangChain: Zustandsverwaltung als Architekturprinzip
18.1
Konzeptionelle Grundlagen
18.1.1
Das Problem mit der Gedächtnislosigkeit
18.1.2
Was Memory wirklich ist
18.1.3
Der Paradigmenwechsel in LangChain v1.0
18.1.4
AgentState: Das Herzstück der Zustandsverwaltung
18.1.5
Checkpointer: Persistierung über Aufrufe hinweg
18.1.6
Threads: Trennung von Konversationen
18.1.7
Kurz- und Langzeitspeicher: Eine begriffliche Trennung
18.1.8
Das Problem der Kontextexplosion
18.1.9
Reducer: Die Mechanik der State-Updates
18.1.10
Context vs. State: Veränderlich und unveränderlich
18.2
Praktische Umsetzung mit LangChain v1.0
18.2.1
Der einfachste Fall: Memory mit Checkpointer aktivieren
18.2.2
Production-Setup: PostgreSQL als Checkpoint-Backend
18.2.3
Custom State: Mehr als nur Messages
18.2.4
Message-Trimming: Kontrolle über die Historie-Länge
18.2.5
Selektives Löschen: Kontrolle über einzelne Nachrichten
18.2.6
Summarization: Komprimierung statt Löschung
18.2.7
Context-Schema: Unveränderliche Metadaten
18.2.8
Dynamic Prompts: Kontextbasierte System-Messages
18.2.9
After-Model-Middleware: Validierung und Filterung
18.2.10
Ein vollständiges Beispiel: Kontextsensitiver Wetter-Agent
18.2.11
Limitierungen und Best Practices
19
Tools in LangChain: Die Schnittstelle zwischen Modell und Welt
19.1
Konzeptionelle Grundlagen
19.1.1
Das Dilemma der Isolation
19.1.2
Was ein Tool wirklich ist
19.1.3
Der Paradigmenwechsel: Function Calling
19.1.4
Die Anatomie eines Tools
19.1.5
Der
@tool-Dekorator
: Konvention über Konfiguration
19.1.6
Schema-Definition: Von simpel zu komplex
19.1.7
Der Unterschied zwischen Schema und Implementation
19.1.8
ToolRuntime: Der Kontext-Injector
19.1.9
State, Context, Store: Drei Ebenen des Kontexts
19.1.10
Command: State-Updates aus Tools heraus
19.1.11
Tool-Beschreibungen: Die unterschätzte Kunst
19.1.12
Streaming aus Tools: Real-Time Feedback
19.1.13
Fehlerbehandlung: Tools schlagen fehl
19.2
Praktische Umsetzung mit LangChain v1.0
19.2.1
Das minimale Tool: Vom Code zum Schema
19.2.2
Custom Namen und Beschreibungen: Semantische Präzision
19.2.3
Komplexe Inputs: Pydantic-Schemas in der Praxis
19.2.4
State-Zugriff: Tools, die den Kontext kennen
19.2.5
Context-Schema: Unveränderliche Runtime-Daten
19.2.6
State-Updates via Command: Tools als Akteure
19.2.7
Store: Long-Term Memory über Konversationen hinweg
19.2.8
Streaming: Real-Time Feedback aus Tools
19.2.9
Fehlerbehandlung: Robuste Tools
19.2.10
Ein vollständiges Beispiel: Multi-Tool Customer Service Agent
19.2.11
Best Practices und Antipatterns
20
Vector Stores in LangChain: Der semantische Fingerabdruck strukturiert
20.1
Das Konzept verstehen
20.1.1
Ähnlichkeit: Eine Frage des Winkels
20.1.2
Die Architektur: Vektor, Metadaten, Index
20.1.3
Lokal oder gehostet: Die Infrastrukturfrage
20.2
LangChain-Praxis: Das standardisierte Interface
20.2.1
Initialisierung und Dokumente hinzufügen
20.2.2
Suche: Der Kernprozess
20.2.3
Metadaten-Filterung: Semantik trifft Struktur
20.2.4
Löschen: Datenlebenszyklen verwalten
20.3
Erweiterte Konzepte: Was noch möglich ist
20.4
Der unsichtbare Index
21
Embeddings und Chunking: Vom Text zum semantischen Vektor
21.1
Die Transformation verstehen
21.1.1
Die Architektur hinter den Zahlen
21.1.2
Modellauswahl: Keine triviale Entscheidung
21.2
Das LangChain-Interface: Zwei Methoden, ein Prinzip
21.2.1
Ähnlichkeit messen: Kosinus als Goldstandard
21.3
Chunking: Die unsichtbare Kunst
21.3.1
Längenbasiertes Splitting: Die einfache Variante
21.3.2
Strukturbasiertes Splitting: Die natürlichen Grenzen
21.3.3
Dokumentstrukturbasiertes Splitting: Format als Leitfaden
21.3.4
Semantikbasiertes Splitting: Der Königsweg
21.4
Die Orchestrierung: Splitter und Embeddings in der Praxis
21.5
Praktische Überlegungen: Was in Produktion zählt
21.6
Die unsichtbare Datenaufbereitung
22
Retrieval und RAG: Vom Vektor zur Antwort
22.1
Das fehlende Glied
22.2
Das Retriever-Interface: Einfachheit als Architekturprinzip
22.3
Query Analysis: Die Kunst der Fragestellung
22.3.1
Query Re-writing: Mehrere Wege zum Ziel
22.3.2
Query Construction: Strukturierte Abfragen aus natürlicher Sprache
22.4
Retrieval-Systeme: Vielfalt hinter einer Schnittstelle
22.4.1
Vector Stores: Semantik als Standard
22.4.2
Lexikalische Suche: Keywords zählen noch
22.4.3
Hybrid Retrieval: Das Beste aus beiden Welten
22.5
Advanced Patterns: Kontext bewahren, Relevanz maximieren
22.5.1
Source Document Retention: Der Kontext geht nicht verloren
22.6
RAG: Das Gesamtkonzept
22.6.1
Die RAG-Pipeline: Von der Frage zur Antwort
22.6.2
Warum RAG funktioniert: Die Vorteile verstehen
22.6.3
RAG in der Praxis: Ein vollständiges Beispiel
22.7
Das große Bild: Vom Rohtext zur Intelligenz
23
APIs als dynamische Datenquelle: Wenn Wissen sich bewegt
23.1
Jenseits des Statischen
23.2
REST-APIs: Der Standardfall
23.2.1
Strukturierter Input: Vom JSON zum Prompt
23.3
Streaming-APIs: Wenn Daten fließen
23.4
Das Tool-Konzept: LLMs orchestrieren Funktionen
23.5
Custom Loaders: Wenn Standard-Tools nicht reichen
23.6
Middleware-Patterns: Zwischen API und LLM
23.6.1
Caching: Rate Limits respektieren
23.6.2
Error Handling: Robustheit als Standard
23.7
Agenten und API-Orchestrierung: Mehrschrittige Workflows
23.8
Das große Bild: Statisch trifft Dynamisch
24
LangChain als Service: Vom Konsumenten zum Anbieter
24.1
Die Perspektive dreht sich
24.2
Flask: Die synchrone Variante
24.3
FastAPI: Die asynchrone Evolution
24.4
OpenAPI und Client-Generierung
24.5
Deployment-Überlegungen: Von Dev zu Prod
24.6
Monitoring und Observability
24.7
Das große Bild: LangChain in der Service-Landschaft