Claude With The Anthropic Api
← Alle Lektionen
Lektion 12Claude With The Anthropic Api

Response streaming

Zusammenfassung (Audio)

Keine Audio-Zusammenfassung für diese Lektion.

Studiennotizen

📝 Lernnotizen: Streaming in Chat-Interfaces

Problem der Standard-API-Aufrufe:

  • Latenz: Die Zeit zwischen dem Senden einer Benutzer-Nachricht und dem Erhalt der vollständigen Antwort kann lang sein (z. B. 10 bis 30 Sekunden).
  • Benutzererfahrung (UX): Ein langer Wartezeit führt zu schlechter UX. Nutzer erwarten eine sofortige Reaktion.

Lösung: Streaming

  • Definition: Streaming sendet die Antwort nicht als einen einzigen Block, sondern als kontinuierlichen Strom von Daten (Chunks).
  • Funktionsweise:
  • Der Server sendet die initiale Benutzer-Nachricht an die KI (z. B. Claude).
  • Die KI sendet fast sofort eine initiale Antwort zurück, die keinen Textinhalt enthält, sondern lediglich signalisiert, dass die Generierung begonnen hat.
  • Anschließend empfängt der Server einen Strom von Ereignissen (Events).
  • Jedes Ereignis enthält einen kleinen Teil des generierten Textes (einen "Chunk").
  • Der Server leitet diese Chunks sofort an die Web-/Mobile App weiter, sodass der Text Stück für Stück auf dem Bildschirm erscheint.

Technische Implementierung (SDK-Nutzung):

  • Manuelle Event-Verarbeitung (Komplex):
  • Beim direkten Iterieren über den Stream erhält man verschiedene Ereignistypen (z. B. raw message start event, raw content block delta).
  • Der eigentliche Text befindet sich in den raw content block delta Events.
  • Dies erfordert zusätzliche Logik, um den Text aus den verschiedenen Events zu extrahieren.
  • Vereinfachte SDK-Methode (Empfohlen):
  • Verwendung der Funktion client_messages. stream (innerhalb eines with-Blocks).
  • Anstatt Events zu parsen, iteriert man direkt über den Text: for text in stream. text_stream:.
  • Diese Methode liefert direkt den relevanten Text-Chunk, was den Code deutlich vereinfacht.

Zusätzliche Funktionen:

  • Gesamtinhalt speichern: Obwohl die Antwort gestreamt wird, kann man nach Abschluss des Streams den gesamten assemblierten Text über stream. get_final_message() abrufen.
  • Anwendungsfall: Der gestreamte Text kann sofort an den Nutzer gesendet werden, während der vollständige, zusammengefügte Text später in einer Datenbank gespeichert wird.

Takeaways

  • Standard-API-Aufrufe leiden unter hoher Latenz (z. B. 10 bis 30 Sekunden), was zu einer schlechten Benutzererfahrung (UX) führt.
  • Streaming löst dies, indem die Antwort nicht als Block, sondern als kontinuierlicher Strom von Daten (Chunks) gesendet wird.
  • Die empfohlene SDK-Methode vereinfacht die Implementierung durch die direkte Iteration über den Text (for text in stream. text_stream:), anstatt komplexe Events manuell zu parsen.
  • Obwohl der Text gestreamt wird, kann der gesamte assemblierten Inhalt nach Abschluss des Streams über stream. get_final_message() abgerufen werden.
Lernkarten 10 Karten
Frage
zum Aufdecken klicken · ←/→
Antwort
zum Zurückdrehen klicken
Nach Anki exportieren (.tsv) ↓
Wissensüberprüfung 0 Fragen

No quiz for this lesson yet.