AI Agents · Lezione

Streaming delle risposte (SSE)

Trasmetta l'output dell'LLM token per token tramite Server-Sent Events per interfacce reattive e indicazioni di avanzamento.

Lezione 3 di 413 passaggi

Streaming delle risposte (SSE) è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.

Perché fare streaming?

Senza streaming, deve attendere la risposta completa prima di mostrare qualsiasi cosa. Con una risposta di 50 token che richiede 5 secondi, l'utente non vede nulla per 5 secondi.

Lo streaming mostra i token non appena arrivano: il tempo totale è lo stesso, ma l'esperienza utente sembra immediata.

Server-Sent Events (SSE)

OpenAI e Anthropic trasmettono in streaming tramite SSE, un protocollo HTTP unidirezionale in cui il server invia eventi nel formato data: {...}\n\n.

La maggior parte degli SDK nasconde SSE dietro un'interfaccia iteratore.

Streaming con OpenAI

Imposti stream=True e iteri sulla risposta:

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)

Raccolta della risposta completa

Accumuli i delta per ottenere la stringa finale:

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 con Anthropic

Lo stesso schema, con un'API leggermente diversa:

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)

Streaming delle chiamate agli strumenti

Anche le chiamate agli strumenti vengono trasmesse in streaming. Con OpenAI, il nome della funzione e gli argomenti arrivano in parti:

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 e cancellazione

Se l'utente chiude la pagina, interrompa lo stream per evitare di consumare token inutilmente:

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

Streaming tramite un server web

Con FastAPI, utilizzi 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')

Buffer per le frasi

Per la sintesi vocale o la visualizzazione a blocchi, accumuli il testo fino alla fine di una frase:

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

Parsing del JSON trasmesso in streaming

Per gli output JSON, non è possibile effettuare il parsing durante lo streaming. Opzioni:

  • Accumuli l'output completo e lo analizzi una sola volta
  • Utilizzi un parser JSON per lo streaming (ijson) che emetta i campi non appena sono completi

Metriche di latenza: TTFT e TPS

  • TTFT — tempo al primo token (reattività percepita)
  • TPS — token al secondo (throughput)

Lo streaming ottimizza il TTFT, non il tempo totale. Per un'esperienza chat, punti a un TTFT < 500 ms.

Perché fare streaming?

Qual è il principale vantaggio dello streaming?

Riepilogo

Lo streaming migliora l'esperienza utente, non la velocità. Lo implementi in ogni agente che comunica con una persona in tempo reale.

Gratis per iniziare

Impara AI Agents con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
60
Lezioni
239

Domande Frequenti

La lezione «Streaming delle risposte (SSE)» è gratuita?

Sì — il testo completo di «Streaming delle risposte (SSE)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.

Cosa imparerò in «Streaming delle risposte (SSE)»?

Trasmetta l'output dell'LLM token per token tramite Server-Sent Events per interfacce reattive e indicazioni di avanzamento. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Agents?

Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Streaming delle risposte (SSE)»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Agents?

Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Chiamare l'API OpenAI: chat.completions
  2. Chiamare l'API Anthropic: messages
  3. Streaming delle risposte (SSE)
  4. Consapevolezza dei costi: conteggio dei token e budget
← Torna a AI Agents