Anthropic 兼容接口

智脑实现了 Anthropic Messages 协议,可直接承接 Anthropic 官方 SDK、Claude Code 以及任何支持自定义 base_url 的 Anthropic 客户端。

基础地址与鉴权

客户端 base_urlhttps://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 协议的差异

项目OpenAIAnthropic
端点/v1/chat/completions/v1/messages
鉴权头Authorization: Bearerx-api-key
系统提示messages 中的 system 角色顶层 system 字段
max_tokens可选必填
输出位置choices[0].message.contentcontent[0].text
用量字段usage.prompt_tokens / completion_tokensusage.input_tokens / output_tokens

两套协议在平台内统一计费:无论走哪个端点,扣费规则一致,均可在用量日志中核对。