Lektion 6 von 6·11 Min Lesezeit

Production Deployment

Der Weg vom Jupyter-Notebook zur Production-API ist weit. LangServe, FastAPI-Integration, Streaming, Error Handling und Skalierung — hier lernen Sie, LangChain-Anwendungen produktionsreif zu deployen.

LangServe

LangServe verwandelt jede LangChain-Chain in eine REST-API:

from fastapi import FastAPI
from langserve import add_routes

app = FastAPI(title="Agent API")

add_routes(app, rag_chain, path="/rag")
add_routes(app, agent_chain, path="/agent")

Automatisch generierte Endpoints

EndpointMethodeBeschreibung
/rag/invokePOSTSynchroner Aufruf
/rag/streamPOSTServer-Sent Events Streaming
/rag/batchPOSTBatch-Verarbeitung
/rag/input_schemaGETInput-Schema (JSON Schema)
/rag/playgroundGETInteraktiver Playground

Streaming

Streaming ist kritisch für gute User Experience. LangServe unterstützt verschiedene Streaming-Modi:

# Server-Side
from langserve import add_routes
add_routes(app, chain, path="/chat")

# Client-Side
from langserve import RemoteRunnable

remote = RemoteRunnable("http://localhost:8000/chat")
async for chunk in remote.astream({"question": "Was ist RAG?"}):
    print(chunk, end="", flush=True)

Error Handling

Retry-Strategie

from langchain_core.runnables import RunnableWithFallbacks

chain_with_fallback = primary_chain.with_fallbacks(
    [fallback_chain],
    exceptions_to_handle=(TimeoutError, RateLimitError)
)

Circuit Breaker

Bei wiederholten Fehlern den Service temporär deaktivieren:

  • 5 Fehler in 60 Sekunden → Circuit öffnen
  • 30 Sekunden warten → Half-Open (1 Request testen)
  • Erfolg → Circuit schließen

Skalierung

StrategieBeschreibungWann
HorizontalMehrere Instanzen hinter Load BalancerViele gleichzeitige Requests
Queue-BasedCelery/Redis für async ProcessingLang laufende Agent-Tasks
CachingSemantic Cache für häufige QueriesWiederkehrende Fragen
BatchRequests bündeln und parallel verarbeitenBatch-Verarbeitung

Cost Optimization

LLM-Kosten können schnell eskalieren. Strategien zur Optimierung:

  • Model Routing: Einfache Fragen → günstigeres Modell, komplexe → teures Modell
  • Caching: Identische Queries cachen (Semantic Cache mit Embeddings)
  • Token-Limits: Maximale Token pro Request begrenzen
  • Prompt-Optimierung: Kürzere Prompts = weniger Tokens = weniger Kosten
  • Monitoring: Token-Usage pro Endpoint tracken und Alerts setzen

Deployment Checklist

  • Error Handling und Fallbacks konfiguriert
  • Streaming aktiviert
  • Rate Limiting implementiert
  • Monitoring und Tracing (LangSmith) aktiv
  • Cost Guards konfiguriert
  • Health Check Endpoint vorhanden
  • Input-Validierung implementiert
  • Secrets sicher verwaltet (nicht im Code)

Praxis-Tipp: Deployen Sie frühzeitig eine minimale Version. Ein einfacher Endpoint mit einer Chain ist besser als ein perfektes lokales Notebook. Iterieren Sie in Production — mit Tracing und Evaluation als Sicherheitsnetz.

📝

Quiz

Frage 1 von 3

Was macht LangServe?