Claude Messages
通过 Anthropic Messages API 原生协议调用 Claude 模型,完全兼容 Claude SDK、Claude Code 和 Anthropic 原生请求格式。
在线体验
快速开始
第 1 步: 获取您的 API Key(在 控制台 创建)。
第 2 步: 发送请求:
bash
curl -X POST "https://open.dieyuyun.com/v1/messages" \
-H "Content-Type: application/json" \
-H "x-api-key: sk-xxx" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "你好,请介绍一下自己"}
]
}'python
import anthropic
client = anthropic.Anthropic(
base_url="https://open.dieyuyun.com",
api_key="sk-xxx"
)
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[
{"role": "user", "content": "你好,请介绍一下自己"}
]
)
print(message.content[0].text)javascript
import Anthropic from '@anthropic-ai/sdk'
const client = new Anthropic({
baseURL: 'https://open.dieyuyun.com',
apiKey: 'sk-xxx',
})
const message = await client.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages: [{ role: 'user', content: '你好,请介绍一下自己' }],
})
console.log(message.content[0].text)第 3 步: 从响应的 content[0].text 获取 Claude 的回复。
请求端点
| 项目 | 值 |
|---|---|
| 方法 | POST |
| 路径 | /v1/messages |
| Base URL | https://open.dieyuyun.com |
| 兼容协议 | Anthropic Messages API |
认证
Claude Messages API 使用以下认证方式:
| 请求头 | 值 | 说明 |
|---|---|---|
| x-api-key | sk-xxx | API Key 认证 |
| anthropic-version | 2023-06-01 | Anthropic API 版本 |
| Content-Type | application/json | 请求体格式 |
TIP
使用 Anthropic SDK 时,SDK 会自动添加 anthropic-version 请求头,您只需配置 base_url 和 api_key。
支持模型
| 模型 | 上下文长度 | 说明 |
|---|---|---|
| claude-sonnet-4-20250514 | 200K | Claude 4 Sonnet,均衡型模型 |
| claude-opus-4-20250514 | 200K | Claude 4 Opus,最强推理模型 |
| claude-3-5-sonnet-20241022 | 200K | Claude 3.5 Sonnet |
| claude-3-5-haiku-20241022 | 200K | Claude 3.5 Haiku,快速模型 |
| claude-3-opus-20240229 | 200K | Claude 3 Opus |
TIP
完整模型列表请在 控制台 查看。
标准请求字段
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| model | string | 是 | — | 模型标识符,如 claude-sonnet-4-20250514 |
| messages | array | 是 | — | 消息列表,支持 user 和 assistant 角色 |
| max_tokens | integer | 是 | — | 最大输出 Token 数(Anthropic 协议中为必填) |
| system | string / array | 否 | — | 系统提示词,独立于 messages 参数 |
| stream | boolean | 否 | false | 是否启用流式输出 |
| temperature | number | 否 | 1.0 | 控制输出随机性,范围 0~1 |
| top_p | number | 否 | — | 核采样参数 |
| top_k | integer | 否 | — | Top-K 采样 |
| stop_sequences | array | 否 | — | 停止生成的字符串序列 |
| tools | array | 否 | — | 工具定义列表(函数调用) |
| tool_choice | object | 否 | — | 工具调用策略 |
| thinking | object | 否 | — | 扩展思考配置(Extended Thinking) |
| metadata | object | 否 | — | 请求元数据,如 user_id |
消息格式
Claude Messages API 中的消息结构与 OpenAI 有所不同:
json
{
"role": "user",
"content": "你好"
}也支持多模态内容:
json
{
"role": "user",
"content": [
{ "type": "text", "text": "这张图片里有什么?" },
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": "/9j/4AAQ..."
}
}
]
}请求示例
带系统提示词的对话
bash
curl -X POST "https://open.dieyuyun.com/v1/messages" \
-H "Content-Type: application/json" \
-H "x-api-key: sk-xxx" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-20250514",
"system": "你是一个专业的 Python 开发助手。回答要简洁明了。",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Python 的装饰器是什么?请举例说明。"}
]
}'python
import anthropic
client = anthropic.Anthropic(
base_url="https://open.dieyuyun.com",
api_key="sk-xxx"
)
message = client.messages.create(
model="claude-sonnet-4-20250514",
system="你是一个专业的 Python 开发助手。回答要简洁明了。",
max_tokens=1024,
messages=[
{"role": "user", "content": "Python 的装饰器是什么?请举例说明。"}
]
)
print(message.content[0].text)javascript
import Anthropic from '@anthropic-ai/sdk'
const client = new Anthropic({
baseURL: 'https://open.dieyuyun.com',
apiKey: 'sk-xxx',
})
const message = await client.messages.create({
model: 'claude-sonnet-4-20250514',
system: '你是一个专业的 Python 开发助手。回答要简洁明了。',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Python 的装饰器是什么?请举例说明。' }],
})
console.log(message.content[0].text)流式输出
python
import anthropic
client = anthropic.Anthropic(
base_url="https://open.dieyuyun.com",
api_key="sk-xxx"
)
with client.messages.stream(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[
{"role": "user", "content": "写一个快速排序算法"}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)工具调用(Function Calling)
json
{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "北京今天天气怎么样?" }],
"tools": [
{
"name": "get_weather",
"description": "获取指定城市的天气信息",
"input_schema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称"
}
},
"required": ["city"]
}
}
]
}响应格式
成功响应
json
{
"id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "你好!我是 Claude,由 Anthropic 开发的 AI 助手。很高兴为您服务。"
}
],
"model": "claude-sonnet-4-20250514",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 12,
"output_tokens": 32
}
}响应字段说明
| 字段 | 说明 |
|---|---|
| id | 消息唯一标识 |
| type | 固定为 message |
| role | 固定为 assistant |
| content | 回复内容数组,可能包含 text 和 tool_use 类型 |
| model | 实际使用的模型 ID |
| stop_reason | 结束原因:end_turn、max_tokens、tool_use、stop_sequence |
| usage.input_tokens | 输入 Token 数 |
| usage.output_tokens | 输出 Token 数 |
流式 SSE 事件
流式输出返回 Claude 原生 SSE 事件流:
event: message_start
data: {"type":"message_start","message":{"id":"msg_01...","type":"message",...}}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"你好"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"!我是"}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":32}}
event: message_stop
data: {"type":"message_stop"}错误响应
json
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "max_tokens: field required"
}
}详见 错误码。
兼容性说明
| 特性 | 本平台 | Anthropic 原生 API |
|---|---|---|
| Messages 协议格式 | 完全兼容 | 原生协议 |
| 系统提示词 | 独立 system 参数 | 独立 system 参数 |
| 多模态(图片) | 支持 base64 | 支持 base64 / URL |
| 工具调用 | 支持透传 | 原生支持 |
| 流式 SSE | Claude 原始事件流 | 原生协议 |
| Extended Thinking | 支持透传 | 原生支持 |
| 认证方式 | x-api-key | x-api-key |
| anthropic-version | 需要 | 需要 |
TIP
平台保持与 Anthropic Messages API 的完全兼容,成功响应直接返回 Claude 原始格式,不会额外包裹 code / data 字段。您可以直接使用 Anthropic SDK 接入,只需修改 base_url。
最佳实践
- 必须设置
max_tokens:与 OpenAI 协议不同,Anthropic Messages API 要求必须提供max_tokens参数。 - 使用
system参数:Claude 的系统提示词是独立参数,不要放在messages中。 - 利用 Claude Code:本平台支持 Claude Code 直连,只需配置
base_url即可使用。 - 注意 Token 计算差异:Anthropic 的 Token 计算方式与 OpenAI 略有不同,同样的文本可能产生不同的 Token 数。
- 合理使用工具调用:Claude 的工具调用使用
input_schema(而非 OpenAI 的parameters),注意字段名称差异。
速率限制
详见 速率限制。
相关文档
- 通用对话接口(流式) - 使用 OpenAI 兼容协议
- Gemini 原生格式 - 使用 Gemini 原生协议
- OpenAI Responses - 使用 OpenAI Responses API
- 管理 API Key - 创建和配置 API Key