Strömmande svar (SSE)
Strömma LLM-utdata token för token via Server-Sent Events för snabba användargränssnitt och tydlig förloppsvisning.
Strömmande svar (SSE) är en gratis lektion i AI-agenter på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för AI-agenter, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI-agenter innehåller totalt 4 lektioner.
Varför strömma?
Utan strömning måste Ni vänta på hela svaret innan Ni visar något. Om ett svar på 50 token tar 5 sekunder ser användaren ingenting under dessa 5 sekunder.
Med strömning visas token allt eftersom de anländer – den totala tiden är densamma, men användarupplevelsen känns omedelbar.
Server-Sent Events (SSE)
OpenAI och Anthropic strömmar över SSE – ett enkelriktat HTTP-protokoll där servern skickar händelser i formatet data: {...}\n\n.
De flesta SDK:er döljer SSE bakom ett iteratorgränssnitt.
Strömning med OpenAI
Ange stream=True och iterera över svaret:
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)Samla in hela svaret
Samla deltas för att få den slutliga strängen:
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})Strömning med Anthropic
Samma mönster, men med ett något annorlunda 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)Strömmande verktygsanrop
Även verktygsanrop strömmas. Med OpenAI anländer funktionsnamnet och argumenten i delar:
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
passBaktryck och avbrytning
Om användaren stänger sidan bör Ni avbryta strömmen för att sluta förbruka token:
try:
for chunk in stream:
if request_was_cancelled():
stream.close()
break
finally:
stream.close()Strömning genom en webbserver
Använd StreamingResponse med FastAPI:
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')Buffra meningar
För text-till-tal eller segmenterad visning bör Ni buffra tills en mening är färdig:
buf = ''
for chunk in stream:
buf += chunk.choices[0].delta.content or ''
while '. ' in buf:
sentence, buf = buf.split('. ', 1)
speak(sentence + '.')Parsa strömmad JSON
För JSON-utdata kan Ni inte parsa mitt i strömmen. Alternativen är:
- Buffra hela utdatan och parsa den en gång
- Använd en strömmande JSON-parser (
ijson) för att skicka ut fält allt eftersom de blir färdiga
Latensmått: TTFT och TPS
- TTFT – tid till första token (upplevd responsivitet)
- TPS – token per sekund (genomströmning)
Strömning optimerar TTFT, inte den totala tiden. Sikta på TTFT < 500 ms för en chattupplevelse.
Varför strömma?
Vilken är den främsta fördelen med strömning?
Sammanfattning
Strömning förbättrar användarupplevelsen, men inte hastigheten. Implementera det i alla agenter som kommunicerar med människor i realtid.
Lär dig AI-agenter med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 60
- Lektioner
- 239
Vanliga frågor
Är lektionen ”Strömmande svar (SSE)” gratis?
Ja – hela texten till ”Strömmande svar (SSE)” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i AI-agenter, kan Ni uppgradera till CoddyKit PRO. Kursen i AI-agenter innehåller totalt 4 lektioner.
Vad lär jag mig i ”Strömmande svar (SSE)”?
Strömma LLM-utdata token för token via Server-Sent Events för snabba användargränssnitt och tydlig förloppsvisning. Ni övar på AI-agenter med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig AI-agenter?
Du behöver inga förkunskaper. Utbildningen i AI-agenter på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Strömmande svar (SSE)”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här AI-agenter-lektionen?
Ja. Varje AI-agenter-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Anropa OpenAI API: chat.completions
- Anropa Anthropic API: messages
- Strömmande svar (SSE)
- Koll på kostnader: tokenräkning och budgetar