Zum Hauptinhalt springen

Streaming & Konversationen über mehrere Runden

Fortgeschritten
What you'll learn
  • Antworten Token für Token streamen, damit Nutzer die Ausgabe sofort sehen
  • Verstehen, warum die API zustandslos ist und wie du den Konversationsverlauf selbst mitführst
  • Eine Konversation über mehrere Runden fortsetzen, indem du den vollständigen vorherigen Austausch erneut sendest
  • Verhindern, dass lange Konversationen das Kontextfenster und die Kosten sprengen

Chat-ähnliche Erlebnisse auf der API zu bauen, läuft auf zwei praktische Realitäten hinaus: streame, damit Nutzer die Ausgabe sofort sehen, und verwalte den Verlauf selbst, weil die API zustandslos ist. Beherrsche beides, und deine Chat-UX fühlt sich schnell an und merkt sich alles.

Streaming

Ohne Streaming wartet der Nutzer auf die gesamte Antwort. Mit Streaming treffen die Token ein, sobald sie generiert werden — eine weitaus bessere wahrgenommene Geschwindigkeit.

Pro tip
  • Nutze den Streaming-Helfer des SDK, anstatt rohe Events von Hand zu parsen — er verwaltet den Event-Lebenszyklus für dich.
with client.messages.stream(
model="claude-sonnet-5", 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)

Mehrere Runden: du führst den Verlauf

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

Guided walkthrough1 of 4
  1. Sende die erste Nutzernachricht in der messages-Liste.
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, um das im Griff zu behalten:

  • Fasse zusammen/komprimiere ältere Runden zu einer kurzen Rekapitulation, 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.
Watch out
  • Jeder Aufruf sendet den gesamten Verlauf erneut — lange Konversationen kosten mehr und können das Kontextfenster irgendwann überschreiten, wenn du nie komprimierst oder kürzt.
Key takeaways
  • Streame Token für schnelle wahrgenommene Geschwindigkeit; der SDK-Helfer kümmert sich um den Event-Lebenszyklus.
  • Die API ist zustandslos — sie hat kein Gedächtnis zwischen Aufrufen.
  • Setze eine Konversation fort, indem du jede Runde anhängst und die vollständige messages-Liste erneut sendest.
  • Komprimiere, kürze und cache, um Kosten und Größe langer Konversationen zu steuern.

Überprüfe dich selbst

0/3
  1. Warum verbessert Streaming das Chat-Erlebnis?
  2. Wie setzt du auf dieser API eine Konversation über mehrere Runden fort?
  3. Welche Strategie wird NICHT empfohlen, um zu verhindern, dass lange Konversationen das Kontextfenster füllen?

Weiter