Zum Hauptinhalt springen

Streaming & mehrstufige Konversationen

Fortgeschritten

Zwei praktische Realitäten beim Bau chatähnlicher Erlebnisse auf der API: Streame, damit Nutzer die Ausgabe sofort sehen, und verwalte den Verlauf selbst, weil die API zustandslos ist.

Streaming

Ohne Streaming wartet der Nutzer auf die gesamte Antwort. Mit Streaming treffen Tokens ein, sobald sie generiert werden — eine weitaus bessere gefühlte Geschwindigkeit. Verwende den Streaming-Helfer des SDK:

with client.messages.stream(
model="claude-sonnet-4-6", max_tokens=1024,
messages=[{"role": "user", "content": "Explain RAG in two sentences."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)

Mehrstufig: du hältst den Verlauf

Die API hat kein Gedächtnis zwischen Aufrufen (warum). Um eine Konversation fortzusetzen, sende jedes Mal den gesamten bisherigen Austausch zurück:

messages = [{"role": "user", "content": "Hi, I'm planning a trip."}]
# ... get assistant reply, then append both turns:
messages.append({"role": "assistant", "content": assistant_text})
messages.append({"role": "user", "content": "Make it 3 days."})
# send the full `messages` list again

Lange Konversationen füllen das Fenster

Während der Verlauf wächst, frisst er das Kontextfenster und die Kosten steigen. Strategien:

  • Fasse zusammen/komprimiere ältere Runden zu einer kurzen Zusammenfassung, die du mitführst.
  • Kürze irrelevante frühere Runden.
  • Kombiniere mit Prompt-Caching, um nicht erneut für einen stabilen Präfix zu zahlen.

Weiter