Claude 原生消息(Messages)
除 OpenAI 兼容格式外,YouQi AI 还提供 Anthropic Claude 原生的 Messages 接口,方便直接使用 Anthropic SDK 或已有的 Claude 集成,无需改写为 OpenAI 格式。
接口地址与认证
| 项目 | 值 |
|---|---|
| 接口 | POST /v1/messages |
| Base URL | https://ai.youqi.tech |
| 认证方式 | x-api-key: <YOUR_API_KEY> |
| 版本头 | anthropic-version: 2023-06-01 |
与 OpenAI 格式的区别
Claude 原生接口使用 x-api-key 头(而非 Authorization: Bearer),且必须携带 anthropic-version 版本头。使用的 API Key 仍是在控制台创建的 sk-... 密钥。
创建消息
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型标识,如 claude-3-5-sonnet-20241022 |
messages | array | 是 | 对话消息列表,每条含 role(user / assistant)与 content |
max_tokens | integer | 是 | 生成的最大 Token 数(Claude 原生接口必填) |
system | string | 否 | 系统提示(独立字段,不放在 messages 中) |
stream | boolean | 否 | 是否流式返回,默认 false |
temperature | number | 否 | 采样温度,0~1 |
top_p | number | 否 | 核采样 |
stop_sequences | array | 否 | 停止序列 |
tools | array | 否 | 可调用的工具(函数)定义 |
请求示例
bash
curl https://ai.youqi.tech/v1/messages \
-H "x-api-key: sk-YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{ "role": "user", "content": "用一句话介绍杭州。" }
]
}'1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
使用官方 Anthropic Python SDK 时,只需将 base_url 指向 YouQi AI:
python
from anthropic import Anthropic
client = Anthropic(
base_url="https://ai.youqi.tech",
api_key="sk-YOUR_API_KEY",
)
resp = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
print(resp.content[0].text)1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
响应示例
json
{
"id": "msg_abc123",
"type": "message",
"role": "assistant",
"model": "claude-3-5-sonnet-20241022",
"content": [
{ "type": "text", "text": "杭州是一座以西湖闻名、兼具历史底蕴与数字经济活力的城市。" }
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 18,
"output_tokens": 22
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
流式输出(SSE)
在请求体中加入 "stream": true,服务端以 Server-Sent Events 逐事件返回。事件类型包括 message_start、content_block_delta、message_delta、message_stop 等:
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"杭"}}1
2
2
工具调用(Tool Use)
在 tools 中声明可调用工具,模型需要调用时会在响应 content 中返回 type: "tool_use" 的块;你执行后将结果以 role: "user" 的 tool_result 内容块回传,继续对话。
json
{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "北京今天天气怎么样?" }],
"tools": [
{
"name": "get_weather",
"description": "查询指定城市的天气",
"input_schema": {
"type": "object",
"properties": { "city": { "type": "string" } },
"required": ["city"]
}
}
]
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
提示
若你使用 OpenAI SDK,也可直接以聊天接口(/v1/chat/completions)调用 Claude 模型,网关会自动完成协议转换。原生 Messages 接口适合已有 Anthropic 集成或需要 Claude 特有字段的场景。