Impara come utilizzare lo streaming per ricevere risposte incrementali dai messaggi di Claude utilizzando eventi server-sent.
"stream": true
per ricevere incrementalmente la risposta utilizzando eventi server-sent (SSE).
event: message_stop
), e includerà il type
di evento corrispondente nei suoi dati.
Ogni stream utilizza il seguente flusso di eventi:
message_start
: contiene un oggetto Message
con content
vuoto.content_block_start
, uno o più eventi content_block_delta
, e un evento content_block_stop
. Ogni blocco di contenuto avrà un index
che corrisponde al suo indice nell’array content
del Messaggio finale.message_delta
, che indicano cambiamenti di alto livello all’oggetto Message
finale.message_stop
.usage
dell’evento message_delta
sono cumulativi.ping
.
overloaded_error
, che normalmente corrisponderebbe a un HTTP 529 in un contesto non-streaming:
content_block_delta
contiene un delta
di un tipo che aggiorna il blocco content
a un dato index
.
text
appare così:
tool_use
corrispondono agli aggiornamenti per il campo input
del blocco. Per supportare la massima granularità, i delta sono stringhe JSON parziali, mentre il tool_use.input
finale è sempre un oggetto.
Puoi accumulare i delta delle stringhe e analizzare il JSON una volta ricevuto un evento content_block_stop
, utilizzando una libreria come Pydantic per fare il parsing JSON parziale, o utilizzando i nostri SDK, che forniscono helper per accedere ai valori incrementali analizzati.
Un delta del blocco di contenuto tool_use
appare così:
input
alla volta. Pertanto, quando si utilizzano gli strumenti, potrebbero esserci ritardi tra gli eventi di streaming mentre il modello sta lavorando. Una volta che una chiave e valore input
sono accumulati, li emettiamo come più eventi content_block_delta
con json parziale suddiviso in modo che il formato possa supportare automaticamente una granularità più fine nei modelli futuri.
thinking_delta
. Questi delta corrispondono al campo thinking
dei blocchi di contenuto thinking
.
Per il contenuto del pensiero, un evento speciale signature_delta
viene inviato appena prima dell’evento content_block_stop
. Questa firma viene utilizzata per verificare l’integrità del blocco di pensiero.
Un tipico delta di pensiero appare così:
message_start
content_block_start
content_block_delta
content_block_stop
message_delta
message_stop
ping
dispersi in tutta la risposta. Vedi Tipi di eventi per maggiori dettagli sul formato.
text
, tool_use
, thinking
). I blocchi di uso degli strumenti e di pensiero esteso non possono essere recuperati parzialmente. Puoi riprendere lo streaming dal blocco di testo più recente.