Source: https://aiprimetech.io/fr/docs/api-reference/streaming/ [Accueil](/fr/) / [Documentation](/fr/docs/) / Diffusion en continu # Diffusion en continu Événements envoyés par le serveur dans les deux formats : leurs structures diffèrent, et les confondre donne l’impression de ne rien recevoir. Copier la page [ Afficher au format Markdown](/fr/docs/api-reference/streaming.md) [ Demander à ChatGPT](https://chatgpt.com/?q=Read%20https%3A//aiprimetech.io/docs/api-reference/streaming.md%20and%20answer%20questions%20about%20it.%20Start%20with%20a%20short%20summary.) [ Demander dans Claude](https://claude.ai/new?q=Read%20https%3A//aiprimetech.io/docs/api-reference/streaming.md%20and%20answer%20questions%20about%20it.%20Start%20with%20a%20short%20summary.) Définissez stream à true et la réponse devient text/event-stream. Les deux points de terminaison prennent en charge le streaming, mais ils émettent des structures d’événements différentes. ## Format Anthropic ``` Copycurl -N https://aiprimetech.io/v1/messages \ -H "x-api-key: $CLAUDEAPIKEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"claude-sonnet-4-6","max_tokens":512,"stream":true, "messages":[{"role":"user","content":"Count to five"}]}' ``` ``` Copyevent: message_start data: {"type":"message_start","message":{"id":"msg_...","usage":{"input_tokens":9}}} event: content_block_delta data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"One"}} event: message_delta data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":14}} event: message_stop data: {"type":"message_stop"} ``` Le texte arrive dans des content_block_delta événements à delta.text. Le décompte final des tokens de sortie arrive dans message_delta, et non message_start. ## Format OpenAI ``` Copydata: {"choices":[{"delta":{"content":"One"},"index":0}]} data: {"choices":[{"delta":{},"finish_reason":"stop","index":0}]} data: [DONE] ``` Le texte arrive à choices[0].delta.content, et le flux se termine par une sentinelle littérale data: [DONE] qui n’est pas du JSON. Cette incompatibilité produit une réponse vide sans erreur : un client qui analyse choices[].delta.content dans un flux Messages ne trouve rien, à chaque fois, et signale un succès. Si le streaming semble fonctionner mais ne renvoie rien, vérifiez la structure que vous analysez. ## Python, SDK Anthropic ``` Copyfrom anthropic import Anthropic client = Anthropic(api_key=class="s">"sk-your-key", base_url=class="s">"https://aiprimetech.io") with client.messages.stream( model=class="s">"claude-sonnet-4-6", max_tokens=512, messages=[{class="s">"role": class="s">"user", class="s">"content": class="s">"Count to five"}], ) as stream: for text in stream.text_stream: print(text, end=class="s">"", flush=True) ``` ## Notes opérationnelles - Utilisez curl -N lors des tests manuels, sinon curl met tout le flux en mémoire tampon et donne l’impression que rien ne se passe. - Désactivez la mise en mémoire tampon du proxy devant votre propre application (proxy_buffering off dans nginx), sinon les clients reçoivent toute la réponse d’un seul coup à la fin. - Si la connexion est interrompue en cours de streaming, les tokens déjà générés restent facturés. - Le streaming ne change pas le prix — seulement le moment où les octets arrivent. [API MessagesRéférence sans streaming](/fr/docs/api-reference/messages/)[ErreursÉchecs en cours de streaming](/fr/docs/api-reference/errors/)[DépannageRéponses vides](/fr/docs/guides/troubleshooting/) [PrécédentPoint de terminaison des modèles](/fr/docs/api-reference/models-endpoint/)[SuivantErreurs](/fr/docs/api-reference/errors/)