Anthropic Messages
Anthropic 原生格式的消息接口,调用 Claude 系模型时可用此格式(也可用 聊天补全 的 OpenAI 格式调用)。
请求REQUEST
POST
https://test.kailin.com.cn/v1/messages响应RESPONSE
填写参数并发送请求,响应会显示在这里
请求
curl https://test.kailin.com.cn/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: sk-你的令牌" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{ "role": "user", "content": "你好,介绍一下你自己" }
]
}'
备注
鉴权同时支持 x-api-key: sk-xxx 和 Authorization: Bearer sk-xxx 两种请求头,anthropic-version 头可传可不传。
请求体参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | Claude 模型名称 |
max_tokens | number | 是 | 最大生成 token 数(Anthropic 格式必填) |
messages | array | 是 | 消息数组,role 仅 user / assistant |
system | string / array | 否 | 系统提示词,独立于 messages 传入 |
stream | boolean | 否 | 流式输出(SSE,事件类型见下文) |
temperature | number | 否 | 0–1,默认 1 |
top_p / top_k | number | 否 | 采样参数 |
stop_sequences | array | 否 | 停止序列 |
tools | array | 否 | 工具定义(name / description / input_schema) |
tool_choice | object | 否 | {"type": "auto"} / {"type": "any"} / {"type": "tool", "name": "..."} |
带系统提示词与图片的示例:
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"system": "你是一个严谨的技术文档助手。",
"messages": [
{
"role": "user",
"content": [
{ "type": "image", "source": { "type": "base64", "media_type": "image/jpeg", "data": "<base64>" } },
{ "type": "text", "text": "描述这张架构图" }
]
}
]
}
响应(非流式)
{
"id": "msg_abc123",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-6",
"content": [
{ "type": "text", "text": "你好!我是 Claude……" }
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 18,
"output_tokens": 45
}
}
| 字段 | 说明 |
|---|---|
content[] | 内容块数组,type 可为 text / tool_use / thinking |
stop_reason | end_turn / max_tokens / stop_sequence / tool_use |
usage.input_tokens / output_tokens | token 计量 |
流式事件
"stream": true 时返回 SSE,每个事件有独立的 event: 类型:
event: message_start
data: {"type":"message_start","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_stop
data: {"type":"content_block_stop","index":0}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":45}}
event: message_stop
data: {"type":"message_stop"}
| 事件 | 说明 |
|---|---|
message_start | 消息开始,含初始 usage |
content_block_start / _delta / _stop | 内容块的开始/增量/结束,增量在 delta.text |
message_delta | 顶层状态更新(stop_reason、最终 usage) |
message_stop | 消息结束 |
ping | 保活心跳 |
error | 流中错误 |
使用 Anthropic SDK
from anthropic import Anthropic
client = Anthropic(
api_key="sk-你的令牌",
base_url="https://test.kailin.com.cn",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}],
)
print(message.content[0].text)
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: 'sk-你的令牌',
baseURL: 'https://test.kailin.com.cn',
});
const message = await client.messages.create({
model: 'claude-sonnet-4-6',
max_tokens: 1024,
messages: [{ role: 'user', content: '你好' }],
});
console.log(message.content[0].text);
提示
SDK 的 base_url 填根地址(不带 /v1),SDK 会自动拼接 /v1/messages。