外观
创建消息(Claude)
POST
https://vip.zen-ai.top/v1/messagesAnthropic Messages 原生接口,请求与响应格式与 Anthropic 官方 API 一致,Claude Code 与 Anthropic SDK 使用该接口。相比通过 Chat Completions 调用 Claude,原生接口可以完整使用思考、工具调用、提示词缓存、PDF 等能力。
支持 Claude 的分组
请求头
x-api-keystring必填你的令牌 sk-xxxx。也可以改用 Authorization: Bearer sk-xxxx。
anthropic-versionstring必填API 版本,固定为 2023-06-01。
anthropic-betastring可选,启用 Beta 功能时使用,多个值用逗号分隔。
Content-Typestring必填application/json
请求体
modelstring必填模型名称,如 claude-sonnet-4-6、claude-opus-4-8、claude-haiku-4-5-20251001。
max_tokensinteger必填最多生成的 token 数(包含思考)。输出较长时建议配合流式使用。
messagesarray必填对话消息,user 与 assistant 交替出现。
子字段 2
rolestring必填消息角色。系统提示请使用顶层 system 字段。
可选值
userassistantcontentstring | array必填纯文本或内容块数组,常用块类型:
{"type": "text", "text": "..."}{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "..."}},也支持{"type": "url", "url": "..."}{"type": "document", "source": {"type": "base64", "media_type": "application/pdf", "data": "..."}}{"type": "tool_use", ...}/{"type": "tool_result", "tool_use_id": "...", "content": "..."}{"type": "thinking", ...}(多轮时原样带回上一轮的思考块)
systemstring | array系统提示。数组形式可为文本块添加 cache_control 以启用提示词缓存。
streamboolean默认 false是否以 SSE 流式返回。
thinkingobject思考配置。
子字段 2
typestring必填Claude 4.6 及更新模型使用 adaptive(自适应思考);Haiku 4.5 及更早模型使用 enabled 并设置 budget_tokens。
可选值
adaptiveenableddisabledbudget_tokensinteger思考 token 预算,仅 type 为 enabled 时使用,需小于 max_tokens。Opus 4.7 及更新模型不支持。
output_configobject输出配置,如 {"effort": "high"}。effort 控制思考深度与整体消耗,可选 low / medium / high / max,较新模型还支持 xhigh。
temperaturenumber采样温度 0–1。Opus 4.7 及更新模型不支持,传入会报错。
top_pnumber核采样。与 temperature 一样,较新模型不支持。
top_kinteger仅从概率最高的 K 个 token 中采样。
stop_sequencesarray自定义停止序列。
toolsarray工具定义列表,每项包含 name、description、input_schema(JSON Schema)。
tool_choiceobject{"type": "auto"}(默认)、{"type": "any"}、{"type": "tool", "name": "..."} 或 {"type": "none"}。
metadataobject如 {"user_id": "..."},用于标识终端用户。
响应
idstring消息 ID,如 msg_...。
typestring固定为 message。
rolestring固定为 assistant。
modelstring实际使用的模型。
contentarray内容块数组:text(回答)、thinking(思考)、tool_use(工具调用,含 id、name、input)。
stop_reasonstring停止原因。tool_use 表示需要执行工具后继续对话。
可选值
end_turnmax_tokensstop_sequencetool_usepause_turnrefusalusageobjectinput_tokens、output_tokens,以及缓存相关的 cache_creation_input_tokens、cache_read_input_tokens。
流式时依次推送 message_start、content_block_start、content_block_delta(text_delta / thinking_delta / input_json_delta)、content_block_stop、message_delta(含 stop_reason 与最终 usage)、message_stop 事件。
请求示例
bash
curl https://vip.zen-ai.top/v1/messages \
-H "x-api-key: $VIP_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "用三句话介绍一下 Rust 语言。"}
]
}'python
import anthropic
client = anthropic.Anthropic(base_url="https://vip.zen-ai.top", api_key="sk-xxxxxxxx")
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "用三句话介绍一下 Rust 语言。"}],
)
print(message.content[0].text)ts
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://vip.zen-ai.top", apiKey: process.env.VIP_API_KEY });
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "用三句话介绍一下 Rust 语言。" }],
});
for (const block of message.content) {
if (block.type === "text") console.log(block.text);
}响应示例
json
{
"id": "msg_01XbQv7cN2aE8kR5mT3wYz9p",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-6",
"content": [
{
"type": "text",
"text": "Rust 是一门注重安全与性能的系统编程语言。它通过所有权机制在编译期保证内存安全,无需垃圾回收。凭借零成本抽象和出色的并发支持,它被广泛用于操作系统、浏览器引擎和云基础设施。"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 21,
"output_tokens": 96,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0
}
}text
event: message_start
data: {"type":"message_start","message":{"id":"msg_01Xb...","type":"message","role":"assistant","model":"claude-sonnet-4-6","content":[],"stop_reason":null,"usage":{"input_tokens":18,"output_tokens":1}}}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"秋风"}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"output_tokens":58}}
event: message_stop
data: {"type":"message_stop"}提示词缓存
对较长且重复使用的系统提示或文档,在内容块上加 cache_control 可以显著降低输入费用与延迟:
json
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"system": [
{ "type": "text", "text": "(此处为很长的产品手册……)", "cache_control": { "type": "ephemeral" } }
],
"messages": [{ "role": "user", "content": "退货政策是什么?" }]
}命中缓存时,响应 usage.cache_read_input_tokens 大于 0。缓存有最小长度要求,内容过短不会被缓存。
更多用法(流式、思考、工具调用、PDF)见 Anthropic SDK 示例。