Anthropic Messages 兼容调用
部分模型或接入点使用 Anthropic Messages 协议。Anthropic Messages 与 OpenAI Chat Completions 的字段不同,不能只替换 Endpoint 复用 OpenAI 请求体。
一、请求地址
POST https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/v1/messages
请求头:
x-api-key: <API_KEY>
anthropic-version: 2023-06-01
Content-Type: application/json
<API_KEY>
<API_KEY>
为 AI Gateway API Key。
二、基础请求示例
curl -X POST "https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/v1/messages" \
-H "x-api-key: $API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"system": "你是一个专业、准确、简洁的企业 AI 助手。",
"messages": [
{
"role": "user",
"content": "请说明 AI Gateway 的模型路由能力。"
}
]
}'
Python 示例:
import anthropic
client = anthropic.Anthropic(
base_url="https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/v1",
api_key="<your-api-key>",
)
message = client.messages.create(
model="anthropic/claude-opus-4.6",
max_tokens=1024,
system="你是一个专业、准确、简洁的企业 AI 助手。",
messages=[
{"role": "user", "content": "请说明 AI Gateway 的模型路由能力。"}
],
)
print(message.content[0].text)
三、请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|
model
model | string | 是 | 模型名称。以模型广场详情页展示为准。 |
messages
messages | array | 是 | 对话消息数组。Messages 协议中系统指令通常不放在 messages
messages 中,而是使用顶层 system
system 。 |
max_tokens
max_tokens | integer | 是 | 最大输出 Token 数。Anthropic Messages 通常要求显式传入。 |
system
system | string / array | 否 | 系统指令,用于设置模型身份、约束和输出格式。 |
stream
stream | boolean | 否 | 是否流式输出。 |
temperature
temperature | number | 否 | 采样温度。 |
top_p
top_p | number | 否 | 核采样参数。 |
top_k
top_k | integer | 否 | 候选 Token 采样数量。是否支持取决于模型。 |
stop_sequences
stop_sequences | array | 否 | 停止生成序列。 |
metadata
metadata | object | 否 | 业务元数据。 |
tools
tools | array | 否 | 工具定义列表。 |
tool_choice
tool_choice | object | 否 | 工具选择策略。 |
thinking
thinking | object | 否 | 扩展思考配置。仅在模型和接入点支持时可用。 |
四、messages 写法
Anthropic Messages 的
messages
messages
只包含用户和助手对话。系统指令建议写在顶层
system
system
。
{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"system": "你只输出合法 JSON,不要输出 Markdown。",
"messages": [
{
"role": "user",
"content": "抽取工单信息:客户反馈模型调用 429。"
}
]
}
多轮对话示例:
{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"system": "你是企业知识库助手。",
"messages": [
{
"role": "user",
"content": "AI Gateway 支持哪些能力?"
},
{
"role": "assistant",
"content": "支持统一模型接入、API Key 管理、路由和用量统计。"
},
{
"role": "user",
"content": "请补充权限管理能力。"
}
]
}
五、多模态输入
如果模型支持图片输入,可以在
content
content
中传入数组。
{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "请描述这张图中的内容。"
},
{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/image.png"
}
}
]
}
]
}
是否支持
url
url
、Base64、图片大小和数量限制,以模型详情页为准。
六、流式输出
curl -N -X POST "$AI_GATEWAY_OPENAI_BASE_URL/messages" \
-H "x-api-key: $API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "请分步骤说明如何接入 AI Gateway。"
}
],
"stream": true
}'
流式返回是 SSE 事件,客户端需要按事件类型处理增量文本、工具调用和结束事件。
七、工具调用
{
"model": "anthropic/claude-opus-4.6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "查询订单 202606150001 的物流状态。"
}
],
"tools": [
{
"name": "get_order_status",
"description": "根据订单号查询物流状态",
"input_schema": {
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "订单号"
}
},
"required": ["order_id"]
}
}
],
"tool_choice": {
"type": "auto"
}
}
与 OpenAI 工具调用相比,Anthropic 工具定义使用
input_schema
input_schema
,工具选择字段也不同。
八、响应字段
典型响应:
{
"id": "msg_xxx",
"type": "message",
"role": "assistant",
"model": "anthropic/claude-opus-4.6",
"content": [
{
"type": "text",
"text": "AI Gateway 可以统一管理模型接入、鉴权、路由和用量统计。"
}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 35,
"output_tokens": 26
}
}
| 字段 | 说明 |
|---|
content
content | 输出内容数组。文本内容通常位于 content[0].text
content[0].text 。 |
stop_reason
stop_reason | 停止原因,例如 end_turn
end_turn 、max_tokens
max_tokens 、stop_sequence
stop_sequence 、tool_use
tool_use 。 |
usage.input_tokens
usage.input_tokens | 输入 Token 数。 |
usage.output_tokens
usage.output_tokens | 输出 Token 数。 |
九、与 OpenAI Chat Completions 的差异
| 项目 | OpenAI Chat Completions | Anthropic Messages |
|---|
| Endpoint | /gateway/v1/chat/completions
/gateway/v1/chat/completions | /gateway/v1/messages
/gateway/v1/messages |
| 鉴权 Header | Authorization: Bearer <API_KEY>
Authorization: Bearer <API_KEY> | x-api-key: <API_KEY>
x-api-key: <API_KEY> |
| 系统指令 | messages
messages 中的 role: system
role: system | 顶层 system
system 字段 |
| 最大输出 | max_tokens
max_tokens | max_tokens
max_tokens ,通常必填 |
| 停止序列 | stop
stop | stop_sequences
stop_sequences |
| 工具 Schema | tools[].function.parameters
tools[].function.parameters | tools[].input_schema
tools[].input_schema |