Vastausten suoratoisto (SSE)
Suoratoistakaa LLM:n tulostetta token kerrallaan Server-Sent Events -tapahtumien kautta sulavasti toimivia käyttöliittymiä ja etenemisen näyttämistä varten.
Vastausten suoratoisto (SSE) on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Miksi suoratoistaa?
Ilman suoratoistoa odotatte koko vastauksen valmistumista ennen kuin voitte näyttää mitään. Jos 50 tokenin vastaus kestää 5 sekuntia, käyttäjä ei näe mitään viiteen sekuntiin.
Suoratoisto näyttää tokenit niiden saapuessa — kokonaisaika pysyy samana, mutta käyttökokemus tuntuu välittömältä.
Server-Sent Events (SSE)
OpenAI ja Anthropic suoratoistavat SSE:n kautta — kyseessä on yksisuuntainen HTTP-protokolla, jossa palvelin lähettää tapahtumia muodossa data: {...}\n\n.
Useimmat SDK:t piilottavat SSE:n iteraattorirajapinnan taakse.
Suoratoisto OpenAI:n kanssa
Asettakaa stream=True ja iteroikaa vastaus läpi:
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)Koko vastauksen kokoaminen
Kootkaa deltamuutokset yhteen saadaksenne lopullisen merkkijonon:
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})Suoratoisto Anthropicin kanssa
Sama toimintamalli, hieman erilainen 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)Työkalukutsujen suoratoisto
Myös työkalukutsut suoratoistetaan. OpenAI:n kanssa funktion nimi ja argumentit saapuvat osissa:
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
passTaustapaine ja peruutus
Jos käyttäjä sulkee sivun, keskeyttäkää suoratoisto, jotta tokeneita ei kuluteta turhaan:
try:
for chunk in stream:
if request_was_cancelled():
stream.close()
break
finally:
stream.close()Suoratoisto web-palvelimen kautta
FastAPI:ssa käyttäkää StreamingResponsea:
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')Puskurointi lauseita varten
Puheentunnistusta tai paloittaista näyttöä varten puskuroikaa tekstiä, kunnes lause päättyy:
buf = ''
for chunk in stream:
buf += chunk.choices[0].delta.content or ''
while '. ' in buf:
sentence, buf = buf.split('. ', 1)
speak(sentence + '.')Suoratoistetun JSON:n jäsentäminen
JSON-tuloksia ei voi jäsentää kesken suoratoiston. Vaihtoehdot:
- Puskuroikaa koko tulos ja jäsentäkää se kerran
- Käyttäkää suoratoistavaa JSON-jäsentäjää (
ijson), joka tuottaa kenttiä niiden valmistuessa
Viivemittarit: TTFT ja TPS
- TTFT — aika ensimmäiseen tokeniin (koettu reagointinopeus)
- TPS — tokenia sekunnissa (läpimeno)
Suoratoisto optimoi TTFT:tä, ei kokonaisaikaa. Tavoitelkaa keskustelukäyttökokemuksessa alle 500 millisekunnin TTFT:tä.
Miksi suoratoistaa?
Mikä on suoratoiston tärkein hyöty?
Kertaus
Suoratoisto parantaa käyttökokemusta, ei nopeuta kokonaisaikaa. Ottakaa se käyttöön kaikissa agenteissa, jotka keskustelevat ihmisen kanssa reaaliaikaisesti.
Opi Tekoälyagentit tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 60
- Oppitunnit
- 239
Usein kysytyt kysymykset
Onko oppitunti ”Vastausten suoratoisto (SSE)” ilmainen?
Kyllä – oppitunnin ”Vastausten suoratoisto (SSE)” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Vastausten suoratoisto (SSE)”?
Suoratoistakaa LLM:n tulostetta token kerrallaan Server-Sent Events -tapahtumien kautta sulavasti toimivia käyttöliittymiä ja etenemisen näyttämistä varten. Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Vastausten suoratoisto (SSE)”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyagentit-oppitunnilla?
Kyllä. Jokainen Tekoälyagentit-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- OpenAI API:n kutsuminen: chat.completions
- Anthropic API:n kutsuminen: messages
- Vastausten suoratoisto (SSE)
- Kustannusten hallinta: tokenien laskeminen ja budjetit