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
Wissensüberprüfung 0 Fragen
No quiz for this lesson yet.