0Pricing
AI Agents · Lektion

Antworten streamen (SSE)

Streamen Sie die Ausgabe eines LLM Token für Token über Server-Sent Events, um reaktionsschnelle UIs und Fortschrittsanzeigen zu ermöglichen.

Antworten streamen (SSE) ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Warum streamen?

Ohne Streaming warten Sie auf die vollständige Antwort, bevor Sie irgendetwas anzeigen. Bei einer Antwort mit 50 Tokens, deren Erstellung 5 Sekunden dauert, sieht die Benutzerin oder der Benutzer 5 Sekunden lang nichts.

Streaming zeigt Tokens an, sobald sie eintreffen – die Gesamtdauer bleibt gleich, aber die UX wirkt sofort verfügbar.

Server-Sent Events (SSE)

OpenAI und Anthropic streamen über SSE – ein unidirektionales HTTP-Protokoll, bei dem der Server Ereignisse im Format data: {...}\n\n sendet.

Die meisten SDKs verbergen SSE hinter einer Iterator-Schnittstelle.

Streaming mit OpenAI

Setzen Sie stream=True und durchlaufen Sie die Antwort:

stream = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end='', flush=True)

Die vollständige Antwort sammeln

Aggregieren Sie die Deltas, um die endgültige Zeichenkette zu erhalten:

buf = []
for chunk in stream:
    delta = chunk.choices[0].delta.content or ''
    buf.append(delta)
    print(delta, end='', flush=True)

full_text = ''.join(buf)
messages.append({'role': 'assistant', 'content': full_text})

Streaming mit Anthropic

Dasselbe Muster, aber mit einer etwas anderen API:

with client.messages.stream(
    model='claude-sonnet-4-5',
    max_tokens=1024,
    messages=messages,
) as stream:
    for text in stream.text_stream:
        print(text, end='', flush=True)

    final = stream.get_final_message()
    print('\ndone, tokens:', final.usage.output_tokens)

Tool-Aufrufe streamen

Auch Tool-Aufrufe werden gestreamt. Bei OpenAI treffen Funktionsname und Argumente stückweise ein:

for chunk in stream:
    delta = chunk.choices[0].delta
    if delta.tool_calls:
        for tc in delta.tool_calls:
            # tc.function.name and tc.function.arguments arrive as partial strings
            pass

Backpressure und Abbruch

Wenn die Benutzerin oder der Benutzer die Seite schließt, brechen Sie den Stream ab, damit keine weiteren Tokens verbraucht werden:

try:
    for chunk in stream:
        if request_was_cancelled():
            stream.close()
            break
finally:
    stream.close()

Streaming über einen Webserver

Verwenden Sie bei FastAPI StreamingResponse:

from fastapi.responses import StreamingResponse

def token_generator():
    for chunk in stream:
        delta = chunk.choices[0].delta.content or ''
        yield f'data: {delta}\n\n'

return StreamingResponse(token_generator(), media_type='text/event-stream')

Für Sätze puffern

Für Text-to-Speech oder eine blockweise Anzeige puffern Sie, bis ein Satz endet:

buf = ''
for chunk in stream:
    buf += chunk.choices[0].delta.content or ''
    while '. ' in buf:
        sentence, buf = buf.split('. ', 1)
        speak(sentence + '.')

Gestreamtes JSON parsen

Bei JSON-Ausgaben können Sie nicht mitten im Stream parsen. Möglichkeiten:

  • Die vollständige Ausgabe puffern und anschließend einmal parsen
  • Einen Streaming-JSON-Parser (ijson) verwenden, um Felder auszugeben, sobald sie vollständig sind

Latenzmetriken: TTFT und TPS

  • TTFT – Zeit bis zum ersten Token (wahrgenommene Reaktionsfähigkeit)
  • TPS – Tokens pro Sekunde (Durchsatz)

Streaming optimiert TTFT, nicht die Gesamtdauer. Streben Sie für eine Chat-UX einen TTFT-Wert von unter 500 ms an.

Warum streamen?

Was ist der wichtigste Vorteil von Streaming?

Zusammenfassung

Streaming verbessert die UX, nicht die Geschwindigkeit. Implementieren Sie es in jedem Agenten, der in Echtzeit mit einem Menschen kommuniziert.

Häufig gestellte Fragen

Ist die Lektion „Antworten streamen (SSE)“ kostenlos?

Ja — der vollständige Text von „Antworten streamen (SSE)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Antworten streamen (SSE)“?

Streamen Sie die Ausgabe eines LLM Token für Token über Server-Sent Events, um reaktionsschnelle UIs und Fortschrittsanzeigen zu ermöglichen. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AI Agents zu starten?

Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Antworten streamen (SSE)“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?

Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. OpenAI API aufrufen: chat.completions
  2. Anthropic API aufrufen: messages
  3. Antworten streamen (SSE)
  4. Kostenbewusstsein: Token zählen und Budgets
← Zurück zu AI Agents