Python dan TypeScript SDK kami menawarkan beberapa cara streaming. SDK Python memungkinkan aliran sinkron dan asinkron. Lihat dokumentasi di setiap SDK untuk detailnya.
import anthropicclient = anthropic.Anthropic()with client.messages.stream( max_tokens=1024, messages=[{"role":"user","content":"Hello"}], model="claude-opus-4-20250514",)as stream:for text in stream.text_stream:print(text, end="", flush=True)
Setiap server-sent event mencakup jenis event bernama dan data JSON terkait. Setiap event akan menggunakan nama event SSE (misalnya event: message_stop), dan menyertakan type event yang sesuai dalam datanya.
Setiap aliran menggunakan alur event berikut:
message_start: berisi objek Message dengan content kosong.
Serangkaian blok konten, yang masing-masing memiliki event content_block_start, satu atau lebih event content_block_delta, dan event content_block_stop. Setiap blok konten akan memiliki index yang sesuai dengan indeksnya dalam array content Pesan akhir.
Satu atau lebih event message_delta, yang menunjukkan perubahan tingkat atas pada objek Message akhir.
Event message_stop terakhir.
Hitungan token yang ditampilkan di kolom usage pada event message_delta bersifat kumulatif.
Kami terkadang dapat mengirimkan error dalam aliran event. Misalnya, selama periode penggunaan tinggi, Anda mungkin menerima overloaded_error, yang biasanya sesuai dengan HTTP 529 dalam konteks non-streaming:
Delta untuk blok konten tool_use sesuai dengan pembaruan untuk kolom input dari blok tersebut. Untuk mendukung granularitas maksimum, delta adalah string JSON parsial, sedangkan tool_use.input akhir selalu berupa objek.
Anda dapat mengakumulasi delta string dan mengurai JSON setelah menerima event content_block_stop, dengan menggunakan pustaka seperti Pydantic untuk melakukan penguraian JSON parsial, atau dengan menggunakan SDK kami, yang menyediakan pembantu untuk mengakses nilai inkremental yang diurai.
Catatan: Model kami saat ini hanya mendukung emisi satu properti kunci dan nilai lengkap dari input pada satu waktu. Dengan demikian, saat menggunakan alat, mungkin ada penundaan antara event streaming saat model sedang bekerja. Setelah kunci dan nilai input terakumulasi, kami memancarkannya sebagai beberapa event content_block_delta dengan partial json yang dipecah sehingga format dapat secara otomatis mendukung granularitas yang lebih baik di model masa depan.
Saat menggunakan pemikiran diperpanjang dengan streaming diaktifkan, Anda akan menerima konten pemikiran melalui event thinking_delta. Delta ini sesuai dengan kolom thinking dari blok konten thinking.
Untuk konten pemikiran, event signature_delta khusus dikirim tepat sebelum event content_block_stop. Tanda tangan ini digunakan untuk memverifikasi integritas blok pemikiran.
Delta pemikiran tipikal terlihat seperti:
Delta pemikiran
event: content_block_deltadata:{"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"Let me solve this step by step:\n\n1. First break down 27 * 453"}}
Kami sangat menyarankan agar Anda menggunakan SDK klien kami saat menggunakan mode streaming. Namun, jika Anda membangun integrasi API langsung, Anda perlu menangani event ini sendiri.
Respons stream terdiri dari:
Event message_start
Berpotensi beberapa blok konten, yang masing-masing berisi:
Event content_block_start
Berpotensi beberapa event content_block_delta
Event content_block_stop
Event message_delta
Event message_stop
Mungkin ada event ping yang tersebar di seluruh respons juga. Lihat Jenis event untuk detail lebih lanjut tentang formatnya.
Dalam permintaan ini, kita meminta Claude untuk menggunakan alat untuk memberi tahu kita cuaca.
Shell
curl https://api.anthropic.com/v1/messages \-H"content-type: application/json"\-H"x-api-key: $ANTHROPIC_API_KEY"\-H"anthropic-version: 2023-06-01"\-d '{"model":"claude-opus-4-20250514","max_tokens":1024,"tools":[{"name":"get_weather","description":"Get the current weather in a given location","input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The city and state, e.g. San Francisco, CA"}},"required":["location"]}}],"tool_choice":{"type":"any"},"messages":[{"role":"user","content":"What is the weather like in San Francisco?"}],"stream":true}'
Permintaan streaming dengan penggunaan alat pencarian web
Response
event: message_startdata:{"type":"message_start","message":{"id":"msg_01G...","type":"message","role":"assistant","model":"claude-3-7-sonnet-20250219","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":2679,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":3}}}event: content_block_startdata:{"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}event: content_block_deltadata:{"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"I'll check"}}event: content_block_deltadata:{"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" the current weather in New York City for you"}}event: pingdata:{"type":"ping"}event: content_block_deltadata:{"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."}}event: content_block_stopdata:{"type":"content_block_stop","index":0}event: content_block_startdata:{"type":"content_block_start","index":1,"content_block":{"type":"server_tool_use","id":"srvtoolu_014hJH82Qum7Td6UV8gDXThB","name":"web_search","input":{}}}event: content_block_deltadata:{"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":""}}event: content_block_deltadata:{"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"{\"query"}}event: content_block_deltadata:{"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"\":"}}event: content_block_deltadata:{"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":" \"weather"}}event: content_block_deltadata:{"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":" NY"}}event: content_block_deltadata:{"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"C to"}}event: content_block_deltadata:{"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"day\"}"}}event: content_block_stopdata:{"type":"content_block_stop","index":1}event: content_block_startdata:{"type":"content_block_start","index":2,"content_block":{"type":"web_search_tool_result","tool_use_id":"srvtoolu_014hJH82Qum7Td6UV8gDXThB","content":[{"type":"web_search_result","title":"Weather in New York City in May 2025 (New York) - detailed Weather Forecast for a month","url":"https://world-weather.info/forecast/usa/new_york/may-2025/","encrypted_content":"Ev0DCioIAxgCIiQ3NmU4ZmI4OC1k...","page_age":null},...]}}event: content_block_stopdata:{"type":"content_block_stop","index":2}event: content_block_startdata:{"type":"content_block_start","index":3,"content_block":{"type":"text","text":""}}event: content_block_deltadata:{"type":"content_block_delta","index":3,"delta":{"type":"text_delta","text":"Here's the current weather information for New York"}}event: content_block_deltadata:{"type":"content_block_delta","index":3,"delta":{"type":"text_delta","text":" City:\n\n# Weather"}}event: content_block_deltadata:{"type":"content_block_delta","index":3,"delta":{"type":"text_delta","text":" in New York City"}}event: content_block_deltadata:{"type":"content_block_delta","index":3,"delta":{"type":"text_delta","text":"\n\n"}}...event: content_block_stopdata:{"type":"content_block_stop","index":17}event: message_deltadata:{"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":10682,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":510,"server_tool_use":{"web_search_requests":1}}}event: message_stopdata:{"type":"message_stop"}