Anthropic Messages
Anthropic Messages 接口适用于 Anthropic SDK、Claude Code,以及明确要求 Anthropic 原生请求格式的应用。它与 OpenAI Chat Completions 的消息结构和鉴权请求头不同。
接口信息
| 项目 | 内容 |
|---|---|
| 请求方法 | POST |
| 完整地址 | https://www.bita-api.com/v1/messages |
| 常用根地址 | https://www.bita-api.com |
| API 密钥请求头 | x-api-key: YOUR_BITA_API_KEY |
| 协议版本请求头 | anthropic-version: 2023-06-01 |
| 请求格式 | application/json |
请在模型广场确认目标模型支持 Anthropic 端点,并使用对应分组的 API 密钥。
发送请求
将 YOUR_BITA_API_KEY 和 YOUR_MODEL_ID 替换为自己的信息。示例需要先安装 requests:python -m pip install requests。
import requests
response = requests.post(
"https://www.bita-api.com/v1/messages",
headers={
"x-api-key": "YOUR_BITA_API_KEY",
"anthropic-version": "2023-06-01",
},
json={
"model": "YOUR_MODEL_ID",
"max_tokens": 1024,
"system": "你是一个简洁、准确的助手。",
"messages": [
{
"role": "user",
"content": "请用一句话介绍 Bita API。",
}
],
},
timeout=120,
)
response.raise_for_status()
result = response.json()
for content in result.get("content", []):
if content.get("type") == "text":
print(content.get("text", ""))
请求参数
| 参数 | 是否必填 | 说明 |
|---|---|---|
model | 是 | 支持 Anthropic 端点的模型 ID |
max_tokens | 是 | 本次请求允许生成的最大 Token 数,不代表一定会生成到该长度 |
messages | 是 | 用户与助手消息列表 |
messages[].role | 是 | 通常为 user 或 assistant |
messages[].content | 是 | 字符串或内容块数组 |
system | 否 | 系统指令,位于请求体顶层 |
temperature | 否 | 控制输出随机性,具体支持情况以模型为准 |
system 不放入 messagesAnthropic Messages 格式使用顶层 system 字段。不要把 { "role": "system" } 作为一条消息发送,这与 OpenAI Chat Completions 的写法不同。
读取响应
响应通常类似:
{
"id": "msg_...",
"type": "message",
"role": "assistant",
"model": "YOUR_MODEL_ID",
"content": [
{
"type": "text",
"text": "Bita API 提供统一的模型 API 接入服务。"
}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 0,
"output_tokens": 0
}
}
重点字段:
content:内容块数组,文本、工具调用等内容可能使用不同的type。content[].text:type为text时的回复文本。stop_reason:生成停止原因,正常结束通常为end_turn。usage:输入和输出 Token 用量。
生产代码应先判断内容块的 type,不要假定所有响应都只有一个文本块。
与 OpenAI 格式的主要区别
| 对比项 | Anthropic Messages | OpenAI Chat Completions |
|---|---|---|
| 请求路径 | /v1/messages | /v1/chat/completions |
| API 密钥请求头 | x-api-key | Authorization: Bearer ... |
| 版本请求头 | 需要 anthropic-version | 不需要 |
| 系统指令 | 顶层 system | messages 中的 system 消息 |
| 输出文本 | content[].text | choices[].message.content |
虽然 Bita API 也支持在 Anthropic 接口使用 Bearer 鉴权,但 Anthropic SDK 和 Claude Code 通常使用 x-api-key,因此本页优先采用原生写法。
常见问题
| 现象 | 建议检查 |
|---|---|
401 | x-api-key 是否包含完整密钥 |
| 缺少版本或版本无效 | 是否携带 anthropic-version: 2023-06-01 |
max_tokens 参数错误 | 是否填写了大于零且适合当前模型的数值 |
system 角色无效 | 将系统消息移到顶层 system 字段 |
| 模型不可用 | 模型是否支持 Anthropic 端点,密钥是否属于正确分组 |
下一步:Gemini 原生接口。