DeepSeek Anthropic Messages 兼容调用
本文说明腾讯 TokenHub DeepSeek 模型在 AI Gateway 中的 Anthropic Messages 兼容调用方式。该方式适合已经使用 Anthropic SDK、Claude Code 或 Messages 协议的业务。
如果是新接入业务,且需要 DeepSeek 思考模式、JSON 模式或 Function Calling,建议优先使用 OpenAI Chat Completions。
一、请求地址
POST https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/v1/messages
请求头:
x-api-key: <API_KEY>
Content-Type: application/json
anthropic-version: 2023-06-01
说明:
x-api-key
x-api-key
使用 AI Gateway API Key。
- TokenHub 官方说明中,
anthropic-version
anthropic-version
头会被忽略;为了兼容 Anthropic SDK 和常见客户端,建议仍保留该 Header。
二、基础调用
curl -X POST "https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/v1/messages" \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "deepseek-v4-pro",
"max_tokens": 1000,
"system": "你是一个专业、准确、简洁的企业 AI 助手。",
"messages": [
{
"role": "user",
"content": "请解释 OpenAI Chat Completions 和 Anthropic Messages 的区别。"
}
],
"stream": false
}'
三、Python SDK
import anthropic
client = anthropic.Anthropic(
api_key="<your-api-key>",
base_url="https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/v1",
)
message = client.messages.create(
model="deepseek-v4-pro",
max_tokens=1000,
system="你是一个专业、准确、简洁的企业 AI 助手。",
messages=[
{"role": "user", "content": "请介绍 AI Gateway 的模型路由能力。"}
],
)
print(message.content[0].text)
四、流式输出
curl -N -X POST "$AI_GATEWAY_BASE_URL/messages" \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "deepseek-v4-pro",
"max_tokens": 1000,
"system": [
{
"type": "text",
"text": "You are a helpful assistant."
}
],
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Hi, how are you?"
}
]
}
],
"stream": true
}'
Python 流式示例:
import anthropic
client = anthropic.Anthropic(
api_key="<your-api-key>",
base_url="https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/v1",
)
with client.messages.stream(
model="deepseek-v4-pro",
max_tokens=1000,
system="You are a helpful assistant.",
messages=[{"role": "user", "content": "Hi, how are you?"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
五、请求字段
| 字段 | 支持情况 | 说明 |
|---|
model
model | 支持 | 模型名称,例如 deepseek-v4-flash
deepseek-v4-flash 、deepseek-v4-pro
deepseek-v4-pro 。 |
messages
messages | 支持 | 对话消息数组。 |
max_tokens
max_tokens | 完全支持 | 最大输出 Token 数。 |
system
system | 完全支持 | 系统指令。 |
stream
stream | 完全支持 | 流式响应。 |
temperature
temperature | 完全支持 | 温度参数,常见范围 0.0
0.0 到 2.0
2.0 。 |
top_p
top_p | 完全支持 | Top-p 采样。 |
stop_sequences
stop_sequences | 完全支持 | 停止序列。 |
thinking
thinking | 忽略 | TokenHub Anthropic 协议中不处理此字段。 |
top_k
top_k | 忽略 | 不处理此字段。 |
metadata
metadata | 忽略 | 不处理此字段。 |
service_tier
service_tier | 忽略 | 不处理此字段。 |
六、消息字段支持
| 消息内容 | 支持情况 | 说明 |
|---|
content
content 为字符串 | 完全支持 | 适合纯文本输入。 |
content
content 为数组,type="text"
type="text" | 完全支持 | 适合 Anthropic 标准多段文本结构。 |
content
content 为数组,type="image"
type="image" | 部分模型支持 | 当前 DeepSeek 文本模型不建议使用图片输入。 |
content
content 为数组,type="document"
type="document" | 不支持 | 不建议使用。 |
content
content 为数组,type="search_result"
type="search_result" | 不支持 | 不建议使用。 |
cache_control
cache_control | 忽略 | 传入不会生效。 |
七、工具调用
Anthropic Messages 的工具定义与 OpenAI Chat Completions 不同,使用
input_schema
input_schema
。
{
"model": "deepseek-v4-pro",
"max_tokens": 1000,
"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"
}
}
TokenHub Anthropic 协议中:
八、与 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 |
| 思考模式 | OpenAI 协议可通过 thinking
thinking 控制 | Anthropic 协议中 thinking
thinking 会被忽略 |
九、使用建议
- 新接入业务优先使用 OpenAI Chat Completions。
- 已经使用 Anthropic SDK、Claude Code 或 Messages 协议的业务,可以使用 Anthropic Messages 兼容接口降低迁移成本。
- 如果需要 DeepSeek
thinking
thinking
控制,优先使用 OpenAI Chat Completions。
- 如果模型详情页没有展示 Messages 示例,请优先使用 Chat Completions。