Tekoälyagentit · Oppitunti

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.

Oppitunti 3/413 vaihetta

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
            pass

Taustapaine 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.

Aloita maksutta

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

  1. OpenAI API:n kutsuminen: chat.completions
  2. Anthropic API:n kutsuminen: messages
  3. Vastausten suoratoisto (SSE)
  4. Kustannusten hallinta: tokenien laskeminen ja budjetit
← Takaisin: Tekoälyagentit