Anthropic 兼容接口
智脑实现了 Anthropic Messages 协议,可直接承接 Anthropic 官方 SDK、Claude Code 以及任何支持自定义 base_url 的 Anthropic 客户端。
基础地址与鉴权
| 客户端 base_url | https://zhinao.75zs.com |
| 消息接口 | https://zhinao.75zs.com/v1/messages |
| Token 估算 | https://zhinao.75zs.com/v1/messages/count_tokens |
| 鉴权头 | x-api-key: sk-zn-xxxx |
| 协议版本 | anthropic-version: 2023-06-01 |
注意两点:Anthropic 客户端通常在 base_url 之后自动追加 /v1/messages, 因此 base_url 只填站点根地址(https://zhinao.75zs.com),不要带 /v1;鉴权使用 x-api-key 而不是 Authorization(两种头平台都接受,但建议按协议规范使用)。
消息接口 POST /v1/messages
bash
curl https://zhinao.75zs.com/v1/messages \
-H "x-api-key: sk-zn-xxxx" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 512,
"system": "你是一位简洁的技术编辑。",
"messages": [{ "role": "user", "content": "用两句话解释什么是 API 网关" }]
}'Python(anthropic 官方 SDK)
python
from anthropic import Anthropic
client = Anthropic(
api_key="sk-zn-xxxx",
base_url="https://zhinao.75zs.com",
)
msg = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=512,
messages=[{"role": "user", "content": "用两句话解释什么是 API 网关"}],
)
print(msg.content[0].text)Node.js(原生 fetch)
javascript
const res = await fetch("https://zhinao.75zs.com/v1/messages", {
method: "POST",
headers: {
"x-api-key": process.env.ZN_API_KEY,
"anthropic-version": "2023-06-01",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "claude-sonnet-4-5",
max_tokens: 512,
messages: [{ role: "user", content: "用两句话解释什么是 API 网关" }],
}),
});
const data = await res.json();
console.log(data.content[0].text);常用参数
| 参数 | 说明 |
|---|---|
| model | 必填,智脑模型 slug,例如 claude-sonnet-4-5。 |
| max_tokens | 必填(Anthropic 协议要求),限制输出长度。 |
| system | 顶层字段(不在 messages 内),字符串或内容块数组。 |
| messages | 必填,content 可为字符串或内容块数组(text / image / tool_use / tool_result)。 |
| stream | 为 true 时返回 SSE 事件流。 |
| tools | 工具定义,使用 Anthropic 的 input_schema 格式。 |
Token 估算 POST /v1/messages/count_tokens
在长文本场景下先估算输入长度,避免超出上下文窗口或预估扣费。
bash
curl https://zhinao.75zs.com/v1/messages/count_tokens \
-H "x-api-key: sk-zn-xxxx" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"messages": [{ "role": "user", "content": "统计这段文本的 token 数" }]
}'流式输出
bash
curl -N https://zhinao.75zs.com/v1/messages \
-H "x-api-key: sk-zn-xxxx" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 512,
"stream": true,
"messages": [{ "role": "user", "content": "分三点介绍流式输出" }]
}'流式响应为 Anthropic 事件流,主要事件包括 message_start、content_block_delta、message_delta 与 message_stop。SDK 已封装解析,一般无需手动处理。
Claude Code 接入
Claude Code 通过环境变量指定网关地址与密钥,配置一次即可长期使用:
bash
# 写入 ~/.zshrc 或 ~/.bashrc,然后重启终端
export ANTHROPIC_BASE_URL="https://zhinao.75zs.com"
export ANTHROPIC_AUTH_TOKEN="sk-zn-xxxx"
export ANTHROPIC_MODEL="claude-sonnet-4-5"
# 验证:进入任意项目目录后运行
claude "帮我读一下这个仓库的结构"- ANTHROPIC_BASE_URL:站点根地址,不要带 /v1。
- ANTHROPIC_AUTH_TOKEN:你的智脑 API Key。
- ANTHROPIC_MODEL:默认模型 slug,可换成任意在售 Claude 或其它模型。
更多客户端(Cursor、cc-switch 等)的配置方式见客户端配置。
与 OpenAI 协议的差异
| 项目 | OpenAI | Anthropic |
|---|---|---|
| 端点 | /v1/chat/completions | /v1/messages |
| 鉴权头 | Authorization: Bearer | x-api-key |
| 系统提示 | messages 中的 system 角色 | 顶层 system 字段 |
| max_tokens | 可选 | 必填 |
| 输出位置 | choices[0].message.content | content[0].text |
| 用量字段 | usage.prompt_tokens / completion_tokens | usage.input_tokens / output_tokens |
两套协议在平台内统一计费:无论走哪个端点,扣费规则一致,均可在用量日志中核对。