Source: https://aiprimetech.io/it/docs/api-reference/streaming/ [Home](/it/) / [Documentazione](/it/docs/) / Streaming # Streaming Eventi inviati dal server in entrambi i formati: le strutture degli eventi sono diverse e confonderle dà l'impressione che non arrivi nulla. Copia pagina [ Visualizza in Markdown](/it/docs/api-reference/streaming.md) [ Chiedi a 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.) [ Chiedi in 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.) Imposta stream su true e la risposta diventa text/event-stream. Entrambi gli endpoint supportano lo streaming, ma emettono eventi con strutture diverse. ## Formato 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"} ``` Il testo arriva negli content_block_delta eventi in delta.text. I conteggi finali dei token in uscita arrivano in message_delta, non message_start. ## Formato OpenAI ``` Copydata: {"choices":[{"delta":{"content":"One"},"index":0}]} data: {"choices":[{"delta":{},"finish_reason":"stop","index":0}]} data: [DONE] ``` Il testo arriva in choices[0].delta.content, e lo stream termina con il valore letterale data: [DONE] che funge da sentinella e non è JSON. Questa incompatibilità produce una risposta vuota senza errori: un client che analizza choices[].delta.content in uno stream Messages non trova nulla, ogni volta, e segnala un esito positivo. Se lo streaming sembra funzionare ma non restituisce nulla, verifica quale struttura stai analizzando. ## 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) ``` ## Note operative - Usa curl -N quando esegui test manuali, altrimenti curl memorizza l'intero stream nel buffer e sembra che non stia accadendo nulla. - Disabilita il buffering del proxy davanti alla tua app (proxy_buffering off in nginx), altrimenti i client vedranno arrivare l'intera risposta in un unico blocco alla fine. - Se la connessione si interrompe durante lo streaming, i token già generati vengono comunque addebitati. - Lo streaming non cambia il prezzo, ma solo il momento in cui arrivano i byte. [API MessagesRiferimento per le risposte senza streaming](/it/docs/api-reference/messages/)[ErroriErrori durante lo streaming](/it/docs/api-reference/errors/)[Risoluzione dei problemiRisposte vuote](/it/docs/guides/troubleshooting/) [PrecedenteEndpoint dei modelli](/it/docs/api-reference/models-endpoint/)[AvantiErrori](/it/docs/api-reference/errors/)