跳转到内容
Русский

Messages 原生对话接口

Claude Messages 的请求头、system 与 messages 区别、内容块和结束原因。

Claude Code、Anthropic SDK 和希望保留 Claude 原生内容块的应用使用 POST https://1zheai.com/v1/messages。SDK Base URL 填 https://1zheai.com。

先设置本站密钥环境变量 ONEZHE_API_KEY,再执行:

bash
curl --fail-with-body --connect-timeout 10 --max-time 120 \
https://1zheai.com/v1/messages \
-H "x-api-key: $ONEZHE_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 256,
"system": "请用简短的中文回答。",
"messages": [{"role": "user", "content": "什么是域名解析?"}]
}'
字段类型使用方式
modelstring必填,选择密钥可用的 Claude 模型
max_tokensinteger必填,输出上限;结合所选模型限制设置
messagesarray必填,按时间顺序发送 user 与 assistant 消息
systemstring 或内容块数组可选,系统指令放在顶层,不使用 role: system 消息
streamboolean可选,流式读取内容块增量
toolsarray可选,声明工具名称、用途及输入 Schema

thinking、缓存控制和 beta 参数依具体模型与上游支持而定。先验证普通文本,再按需添加;不要把所有模型都当成同一组参数。

返回的 content 是数组,可能同时包含文本、工具请求或其他内容块。不要无条件读取 content[0].text。例如使用 Anthropic Python SDK:

python
for block in message.content:
if block.type == "text":
print(block.text)

这里的 message 来自 Anthropic SDK 教程中的 client.messages.create(...)。

stop_reason应用如何处理
end_turn本轮回答结束
max_tokens输出被上限截断,不能当作完整回答
tool_use检查工具请求,执行允许的工具并回传结果
其他值保留响应并按所选模型的协议处理,不假设一定是文本完成

工具调用循环中,先把完整的 assistant 内容块加入历史,再以 user 内容中的 tool_result 回传,tool_use_id 必须对应原请求。不要把工具请求直接转换成一段普通文字。

每次发送需要保留的历史,接口本身不替应用存储对话。流式以 message_stop 表示消息结束;收到部分文本并不代表请求已经完成。详见流式输出。

协议细节参考 Anthropic Messages 使用说明。本站扩展参数是否可用,以模型目录和实际响应为准。