Claude 流式对话示例
以下示例展示如何使用Claude的/v1/messages 接口进行流式对话,实现实时打字效果。
快速开始
只需要替换<API-KEY> 为你的实际API密钥即可运行。
Copy
curl -X POST "https://model-api.skyengine.com.cn/v1/messages" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API-KEY>" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1000,
"stream": true,
"messages": [
{
"role": "user",
"content": "请写一首关于秋天的诗"
}
]
}' \
--no-buffer
Claude流式响应格式
Claude的流式响应包含多种事件类型:Copy
event: message_start
data: {"message":{"id":"aa3bf21da7f548a791c409fc7507897c","content":[],"model":"claude-3-5-sonnet-20241022","role":"assistant","stop_reason":"","stop_sequence":"","type":"message","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0},"service_tier":""}},"type":"message_start","delta":{"stop_reason":"","stop_sequence":"","text":"","type":"","partial_json":"","citation":{"cited_text":"","document_index":0,"document_title":"","end_char_index":0,"file_id":"","start_char_index":0,"type":"","end_page_number":0,"start_page_number":0,"end_block_index":0,"start_block_index":0,"encrypted_index":"","title":"","url":"","search_result_index":0,"source":""},"thinking":"","signature":""},"usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0}},"content_block":{"citations":null,"text":"","type":"","signature":"","thinking":"","data":"","id":"","input":null,"name":"","content":{"OfWebSearchResultBlockArray":null,"error_code":"","type":"web_search_tool_result_error"},"tool_use_id":""},"index":0}
event: content_block_delta
data: {"message":{"id":"","content":[],"model":"","role":"assistant","stop_reason":"","stop_sequence":"","type":"message","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0},"service_tier":""}},"type":"content_block_delta","delta":{"stop_reason":"","stop_sequence":"","text":"《","type":"text_delta","partial_json":"","citation":{"cited_text":"","document_index":0,"document_title":"","end_char_index":0,"file_id":"","start_char_index":0,"type":"","end_page_number":0,"start_page_number":0,"end_block_index":0,"start_block_index":0,"encrypted_index":"","title":"","url":"","search_result_index":0,"source":""},"thinking":"","signature":""},"usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0}},"content_block":{"citations":null,"text":"","type":"","signature":"","thinking":"","data":"","id":"","input":null,"name":"","content":{"OfWebSearchResultBlockArray":null,"error_code":"","type":"web_search_tool_result_error"},"tool_use_id":""},"index":0}
event: content_block_delta
data: {"message":{"id":"","content":[],"model":"","role":"assistant","stop_reason":"","stop_sequence":"","type":"message","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0},"service_tier":""}},"type":"content_block_delta","delta":{"stop_reason":"","stop_sequence":"","text":"秋意","type":"text_delta","partial_json":"","citation":{"cited_text":"","document_index":0,"document_title":"","end_char_index":0,"file_id":"","start_char_index":0,"type":"","end_page_number":0,"start_page_number":0,"end_block_index":0,"start_block_index":0,"encrypted_index":"","title":"","url":"","search_result_index":0,"source":""},"thinking":"","signature":""},"usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0}},"content_block":{"citations":null,"text":"","type":"","signature":"","thinking":"","data":"","id":"","input":null,"name":"","content":{"OfWebSearchResultBlockArray":null,"error_code":"","type":"web_search_tool_result_error"},"tool_use_id":""},"index":0}
.
.
.
event: content_block_delta
data: {"message":{"id":"","content":[],"model":"","role":"assistant","stop_reason":"","stop_sequence":"","type":"message","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0},"service_tier":""}},"type":"content_block_delta","delta":{"stop_reason":"","stop_sequence":"","text":"感悟。","type":"text_delta","partial_json":"","citation":{"cited_text":"","document_index":0,"document_title":"","end_char_index":0,"file_id":"","start_char_index":0,"type":"","end_page_number":0,"start_page_number":0,"end_block_index":0,"start_block_index":0,"encrypted_index":"","title":"","url":"","search_result_index":0,"source":""},"thinking":"","signature":""},"usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0}},"content_block":{"citations":null,"text":"","type":"","signature":"","thinking":"","data":"","id":"","input":null,"name":"","content":{"OfWebSearchResultBlockArray":null,"error_code":"","type":"web_search_tool_result_error"},"tool_use_id":""},"index":0}
event: content_block_stop
data: {"message":{"id":"","content":[],"model":"","role":"assistant","stop_reason":"","stop_sequence":"","type":"message","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0},"service_tier":""}},"type":"content_block_stop","delta":{"stop_reason":"","stop_sequence":"","text":"","type":"","partial_json":"","citation":{"cited_text":"","document_index":0,"document_title":"","end_char_index":0,"file_id":"","start_char_index":0,"type":"","end_page_number":0,"start_page_number":0,"end_block_index":0,"start_block_index":0,"encrypted_index":"","title":"","url":"","search_result_index":0,"source":""},"thinking":"","signature":""},"usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0}},"content_block":{"citations":null,"text":"","type":"","signature":"","thinking":"","data":"","id":"","input":null,"name":"","content":{"OfWebSearchResultBlockArray":null,"error_code":"","type":"web_search_tool_result_error"},"tool_use_id":""},"index":0}
event: message_delta
data: {"message":{"id":"","content":[],"model":"","role":"assistant","stop_reason":"","stop_sequence":"","type":"message","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0},"service_tier":""}},"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":"","text":"","type":"","partial_json":"","citation":{"cited_text":"","document_index":0,"document_title":"","end_char_index":0,"file_id":"","start_char_index":0,"type":"","end_page_number":0,"start_page_number":0,"end_block_index":0,"start_block_index":0,"encrypted_index":"","title":"","url":"","search_result_index":0,"source":""},"thinking":"","signature":""},"usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":20,"output_tokens":209,"server_tool_use":{"web_search_requests":0}},"content_block":{"citations":null,"text":"","type":"","signature":"","thinking":"","data":"","id":"","input":null,"name":"","content":{"OfWebSearchResultBlockArray":null,"error_code":"","type":"web_search_tool_result_error"},"tool_use_id":""},"index":0}
event: message_stop
data: {"message":{"id":"","content":[],"model":"","role":"assistant","stop_reason":"","stop_sequence":"","type":"message","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0},"service_tier":""}},"type":"message_stop","delta":{"stop_reason":"","stop_sequence":"","text":"","type":"","partial_json":"","citation":{"cited_text":"","document_index":0,"document_title":"","end_char_index":0,"file_id":"","start_char_index":0,"type":"","end_page_number":0,"start_page_number":0,"end_block_index":0,"start_block_index":0,"encrypted_index":"","title":"","url":"","search_result_index":0,"source":""},"thinking":"","signature":""},"usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":0,"output_tokens":0,"server_tool_use":{"web_search_requests":0}},"content_block":{"citations":null,"text":"","type":"","signature":"","thinking":"","data":"","id":"","input":null,"name":"","content":{"OfWebSearchResultBlockArray":null,"error_code":"","type":"web_search_tool_result_error"},"tool_use_id":""},"index":0}
重要参数说明
- stream: 设置为
true启用流式输出 - type: 事件类型,主要关注
content_block_delta - delta.text: 每个数据块包含的文本增量
- anthropic-version: 必需的API版本头
Claude流式特点
- 事件驱动: 使用不同的事件类型标识流的各个阶段
- 结构化: 内容块有明确的开始和增量事件
- 元数据丰富: 提供详细的消息和内容块信息

