Apprenez à diffuser des messages de manière incrémentielle en utilisant des événements envoyés par le serveur (SSE) avec l’API Claude.
"stream": true
pour diffuser la réponse de manière incrémentielle en utilisant des événements envoyés par le serveur (SSE).
event: message_stop
), et inclura le type
d’événement correspondant dans ses données.
Chaque flux utilise le flux d’événements suivant :
message_start
: contient un objet Message
avec un content
vide.content_block_start
, un ou plusieurs événements content_block_delta
, et un événement content_block_stop
. Chaque bloc de contenu aura un index
qui correspond à son index dans le tableau content
du Message final.message_delta
, indiquant les changements de niveau supérieur à l’objet Message
final.message_stop
.usage
de l’événement message_delta
sont cumulatifs.ping
.
overloaded_error
, qui correspondrait normalement à un HTTP 529 dans un contexte non-streaming :
content_block_delta
contient un delta
d’un type qui met à jour le bloc content
à un index
donné.
text
ressemble à :
tool_use
correspondent aux mises à jour pour le champ input
du bloc. Pour supporter une granularité maximale, les deltas sont des chaînes JSON partielles, alors que le tool_use.input
final est toujours un objet.
Vous pouvez accumuler les deltas de chaîne et analyser le JSON une fois que vous recevez un événement content_block_stop
, en utilisant une bibliothèque comme Pydantic pour faire de l’analyse JSON partielle, ou en utilisant nos SDK, qui fournissent des assistants pour accéder aux valeurs incrémentales analysées.
Un delta de bloc de contenu tool_use
ressemble à :
input
à la fois. Ainsi, lors de l’utilisation d’outils, il peut y avoir des délais entre les événements de streaming pendant que le modèle travaille. Une fois qu’une clé et une valeur input
sont accumulées, nous les émettons comme plusieurs événements content_block_delta
avec du json partiel fragmenté afin que le format puisse automatiquement supporter une granularité plus fine dans les futurs modèles.
thinking_delta
. Ces deltas correspondent au champ thinking
des blocs de contenu thinking
.
Pour le contenu de réflexion, un événement spécial signature_delta
est envoyé juste avant l’événement content_block_stop
. Cette signature est utilisée pour vérifier l’intégrité du bloc de réflexion.
Un delta de réflexion typique ressemble à :
message_start
content_block_start
content_block_delta
content_block_stop
message_delta
message_stop
ping
dispersés dans la réponse également. Voir Types d’événements pour plus de détails sur le format.
text
, tool_use
, thinking
). Les blocs d’utilisation d’outils et de réflexion étendue ne peuvent pas être partiellement récupérés. Vous pouvez reprendre le streaming à partir du bloc de texte le plus récent.