Claude(Anthropic 兼容)
POST /v1/messages —— Anthropic 原生格式的聊天接口,可直接对接 Claude SDK 与 Claude Code。
AIZNT 提供 Anthropic 原生格式的 Messages 接口,可直接使用 Anthropic 官方 SDK,或将 Claude Code 等工具指向 AIZNT。
接口地址
POST https://token.aiznt.com/v1/messages请求示例
curl https://token.aiznt.com/v1/messages \
-H "x-api-key: sk-你的aiznt密钥" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-fable-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "你好"}]
}'认证头
Anthropic 官方原生格式使用 x-api-key 头,推荐按上方示例接入。平台兼容层也接受 Authorization: Bearer,但使用 Anthropic SDK 和 Claude Code 时应优先保留 x-api-key 与 anthropic-version。
注意事项
上方示例没有显式传入 thinking 配置,但模型仍可能根据自身能力返回 thinking 内容块。若使用支持手动 extended thinking 的模型,并设置 thinking.type: "enabled",思考 token 会计入本轮 max_tokens 的总输出上限。按照 Anthropic 官方兼容规则,budget_tokens 至少为 1024,且通常应小于 max_tokens,为最终回答预留空间。Claude 4.6 的手动预算模式仍可调用但已弃用;支持 adaptive thinking 的较新模型应使用 thinking.type: "adaptive"。
常用请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型 ID,必须与模型列表中的 ID 一致 |
max_tokens | integer | 是 | 本轮允许生成的最大输出 token 数;思考内容也计入该上限 |
messages | array | 是 | 对话消息列表,常用角色为 user 和 assistant |
system | string | array | 否 | 系统提示词;Anthropic 原生格式不在 messages 中使用 system 角色 |
temperature | number | 否 | 采样温度,通常为 0–1;支持范围取决于模型 |
top_p | number | 否 | 核采样参数;通常不建议与 temperature 同时调整 |
top_k | integer | 否 | 限制参与采样的候选 token 数;支持范围取决于模型 |
stop_sequences | array | 否 | 自定义停止序列;命中时 stop_reason 通常为 stop_sequence |
stream | boolean | 否 | 是否使用 SSE 流式返回 |
thinking | object | 否 | 思考配置,例如 enabled 手动预算或模型支持的 adaptive 模式 |
tools | array | 否 | 客户端工具定义;仅在模型支持工具调用时使用 |
tool_choice | object | 否 | 控制模型是否或如何选择工具 |
参数兼容性
采样参数、思考模式和工具调用能力可能因 Claude 模型版本而异。请只传入当前模型支持的参数;启用思考时,部分模型会限制或忽略采样参数。
Extended thinking
以下 Claude Opus 4.6 手动 extended thinking 请求已通过平台实测,但该模式在 Claude 4.6 上已弃用,建议新接入优先使用 adaptive thinking:
{
"model": "claude-opus-4-6",
"max_tokens": 4096,
"thinking": {
"type": "enabled",
"budget_tokens": 2048
},
"messages": [
{
"role": "user",
"content": "请分析这个问题并给出解决方案"
}
]
}对于支持 adaptive thinking 的模型,将 thinking.type 设置为 "adaptive",不要同时传入 budget_tokens;两者同时传入会导致参数错误。具体可用的思考配置取决于模型版本。
响应字段
{
"id": "msg_0123456789",
"type": "message",
"role": "assistant",
"content": [
{"type": "thinking", "thinking": "..."},
{"type": "text", "text": "..."}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 25,
"output_tokens": 120,
"output_tokens_details": {
"thinking_tokens": 80
}
}
}content 可能包含 thinking 和 text 内容块,即使请求没有显式传入 thinking 配置,也应按内容块的 type 读取结果。stop_reason 表示生成结束原因,例如 end_turn 或 max_tokens。usage.input_tokens 和 usage.output_tokens 分别表示输入与输出 token 数,思考内容也计入输出用量;响应包含 usage.output_tokens_details.thinking_tokens 时,可用它查看思考 token 数。
| 字段 | 说明 |
|---|---|
id | 消息唯一标识 |
type | 对象类型,Messages 响应中为 message |
role | 响应角色,通常为 assistant |
model | 实际使用的模型 ID |
content[] | 响应内容块列表,可包含 text、thinking、tool_use 等类型 |
content[].type | 当前内容块类型,应用应根据该字段解析内容 |
stop_reason | 结束原因,例如 end_turn、max_tokens、stop_sequence 或 tool_use |
stop_sequence | 实际命中的自定义停止序列;未命中时通常为 null |
usage.input_tokens | 输入 token 数 |
usage.output_tokens | 输出 token 数,启用思考时包含思考消耗 |
usage.output_tokens_details.thinking_tokens | 平台响应提供该明细时,表示思考 token 数 |
usage.cache_creation_input_tokens | 写入提示缓存的输入 token 数;未使用缓存时通常为 0 |
usage.cache_read_input_tokens | 从提示缓存读取的输入 token 数;未命中缓存时通常为 0 |
Python SDK
from anthropic import Anthropic
client = Anthropic(
base_url="https://token.aiznt.com",
api_key="sk-你的aiznt密钥",
)
msg = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}],
)
text = "".join(
block.text for block in msg.content
if block.type == "text"
)
print(text)客户端接入
Claude Code、CC Switch 等使用 Anthropic 协议的工具,将 Base URL 指向 https://token.aiznt.com(不带 /v1,客户端自行拼接路径)即可,详见 Claude Code 接入指南。