Skip to content

Anthropic 兼容格式

AI通道同时兼容 Anthropic 官方 Messages API。Anthropic 官方 Python / Node.js SDK、Claude Code 客户端都可以直接指向我们的地址使用。

接口地址

https://ai.aitongdao.com

注意 Anthropic 协议不带 /v1 后缀,SDK 会自动拼接 /v1/messagesbase_url 上。

认证方式

支持两种 header,任选其一。

方式一:x-api-key(推荐)

x-api-key: sk-xxxxxxxxxxxxxxxxxxxxxxxx
anthropic-version: 2023-06-01

这是 Anthropic 官方 SDK 默认使用的方式。

方式二:Authorization

Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx
anthropic-version: 2023-06-01

某些工具只能传 Authorization 头,这时也能正常工作。

Messages API

接口说明

Anthropic 对话接口,用于和 Claude 系列模型交互。

请求地址

POST https://ai.aitongdao.com/v1/messages

请求示例

bash
curl https://ai.aitongdao.com/v1/messages \
  -H "x-api-key: sk-xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "介绍一下 Claude 模型"}
    ]
  }'

请求参数

参数类型必填说明
modelstring模型名,如 claude-opus-4-6
messagesarray对话消息
max_tokensinteger最大输出 token 数
systemstring系统提示词
temperaturenumber采样温度,0-1
top_pnumber核采样阈值
top_kintegertop-k 采样
streamboolean是否流式输出

Messages 格式

json
[
  {"role": "user", "content": "第一条用户消息"},
  {"role": "assistant", "content": "模型回复"},
  {"role": "user", "content": "后续消息"}
]

与 OpenAI 不同,Anthropic 的 system 提示词是独立字段,不放在 messages 里。

响应格式

json
{
  "id": "msg_xxx",
  "type": "message",
  "role": "assistant",
  "content": [
    {"type": "text", "text": "模型生成的文本"}
  ],
  "model": "claude-sonnet-4-6",
  "stop_reason": "end_turn",
  "usage": {"input_tokens": 25, "output_tokens": 120}
}

流式输出

stream 设为 true,服务端会用 SSE 推送一串事件,事件类型包括 message_startcontent_block_deltamessage_deltamessage_stop 等。

支持的模型

模型说明上下文最大输出
claude-opus-4-6旗舰推理模型超长按模型规格
claude-sonnet-4-6平衡型超长按模型规格

完整模型列表以后台"可用模型"页面为准。

多模态支持

Claude 支持在消息里附带图片输入。

图片格式

  • 支持格式:JPEG、PNG、GIF、WebP
  • 单张大小上限:5MB

使用 base64 内联:

json
{
  "role": "user",
  "content": [
    {
      "type": "image",
      "source": {
        "type": "base64",
        "media_type": "image/jpeg",
        "data": "<base64 编码>"
      }
    },
    {"type": "text", "text": "描述这张图片"}
  ]
}

代码示例

Python(官方 SDK)

python
import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://ai.aitongdao.com",
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "什么是大语言模型"}],
)

print(message.content[0].text)

Python(流式)

python
import anthropic

client = anthropic.Anthropic(api_key="YOUR_API_KEY", base_url="https://ai.aitongdao.com")

with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "写一首关于秋天的短诗"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

Node.js(官方 SDK)

javascript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: "YOUR_API_KEY",
  baseURL: "https://ai.aitongdao.com",
});

const msg = await client.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  messages: [{ role: "user", content: "你好" }],
});

console.log(msg.content[0].text);

cURL

bash
curl https://ai.aitongdao.com/v1/messages \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-6",
    "max_tokens": 512,
    "messages": [{"role": "user", "content": "你好"}]
  }'

错误处理

错误响应格式

json
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "具体错误描述"
  }
}

常见错误类型

错误类型说明
authentication_errorAPI Key 无效
permission_error分组不允许调用该模型
invalid_request_error请求参数不合法
not_found_error模型不存在
rate_limit_error触发限流
api_error服务端内部错误

带重试的调用

python
from tenacity import retry, stop_after_attempt, wait_exponential
import anthropic

client = anthropic.Anthropic(api_key="YOUR_API_KEY", base_url="https://ai.aitongdao.com")

@retry(stop=stop_after_attempt(3), wait=wait_exponential(min=1, max=10))
def call_claude(prompt: str):
    return client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        messages=[{"role": "user", "content": prompt}],
    )

高级功能

1. 系统提示词

python
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="你是一个专业的技术文档翻译助手,把英文翻译成自然的中文。",
    messages=[{"role": "user", "content": "Hello, world!"}],
)

2. 多轮对话

把历史按顺序放进 messages 数组,userassistant 交替出现。

3. 图片分析

参考上面"多模态支持"一节,把 imagetext 块组合进单条 user 消息。

最佳实践

  • 显式设置 max_tokens:Anthropic 要求必填,建议根据任务合理估计。
  • 善用 system:把人设、风格、格式要求放到 system,避免在每轮 user 消息里重复。
  • 长对话注意上下文:超长对话可以让客户端只保留最近 N 轮,或定期总结前文。
  • 重试用退避:5xx 和 429 错误适合重试,4xx 类参数错误不要重试。

与 OpenAI 格式对比

维度AnthropicOpenAI
Base URLhttps://ai.aitongdao.comhttps://ai.aitongdao.com/v1
认证 headerx-api-keyAuthorization: Bearer
系统提示独立的 system 字段messages 数组里的 system 消息
max_tokens必填可选
响应结构content 是数组choices[0].message.content 是字符串
GPT 流式要求不适用GPT 系列必须流式

速率限制

维度默认值
每分钟请求受分组和账户等级限制
每小时请求受分组和账户等级限制
并发受分组和账户等级限制

触发限流会返回 rate_limit_error,请在客户端做退避重试。

下一步

AI通道 · 让国内开发者直连全球 AI 模型