Ouvrir un flux SSE
Activez stream: true et désactivez la mise en mémoire tampon côté client. Le serveur envoie des événements de données à mesure que les parties de la réponse deviennent disponibles.
Traitez le flux progressivement : un événement ne contient pas nécessairement un texte terminé ni un appel d’outil complet.
curl --no-buffer --request POST https://cicora.ai/api/v1/chat/completions \
--header "Authorization: Bearer $CICORA_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "openai/gpt-5.6-sol",
"stream": true,
"stream_options": {"include_usage": true},
"messages": [{"role": "user", "content": "Write a three-line poem."}]
}'Assembler les deltas
- Accumulez le texte selon choice/index ou l’identifiant de l’élément.
- Recueillez les arguments de l’outil sous forme de flux de fragments JSON et analysez-les une fois la transmission terminée.
- Lorsque les métriques finales sont importantes, activez explicitement l’option d’utilisation disponible dans le flux.
Terminer et annuler
Ne considérez le flux comme terminé qu’après un événement terminal. La fermeture d’une connexion sans cet événement constitue un chemin d’échec distinct.
Associez un AbortController ou un mécanisme équivalent à la navigation de l’utilisateur afin qu’une requête devenue inutile ne reste pas ouverte.