Messages API(Anthropic 兼容)
Messages API(Anthropic 兼容)
兼容 Anthropic Messages API,适用于 Anthropic 官方 SDK 或 Claude Code 类工具。
端点
POST /v1/messages
端点:https://aiservice.jellytoken.com/v1/messages
Anthropic SDK 的 base_url 填根域名:https://aiservice.jellytoken.com。SDK 会自行拼接 /v1/messages。
请求头
| Header | 说明 |
|---|---|
Authorization | Bearer uas_xxx 或 x-api-key: uas_xxx |
Content-Type | application/json |
anthropic-version | 可选;GET /v1/models 时影响列表形态 |
请求体
{
"model": "qwen3.6-plus",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello"
}
],
"system": "你是一个简洁的助手",
"stream": false,
"temperature": 0.7
}
主要参数
| 参数 | 必填 | 说明 |
|---|---|---|
model | 是 | 模型 ID(Anthropic 兼容请求字段名) |
max_tokens | 是 | 最大输出 token |
messages | 是 | 对话消息(不含 system,system 单独字段) |
system | 否 | 系统提示 |
stream | 否 | SSE 流式 |
temperature / top_p / top_k | 否 | 采样参数 |
stop_sequences | 否 | 停止序列 |
thinking | 否 | {"type":"enabled","budget_tokens":1024} 启用思维链 |
多模态 content
{
"role": "user",
"content": [
{"type": "text", "text": "描述图片"},
{"type": "image", "source": {"type": "url", "url": "https://example.com/a.jpg"}}
]
}
支持 text / image / video 块;audio / document 当前返回 400。
同步响应
{
"id": "msg_550e8400-e29b-41d4-a716-446655440000",
"type": "message",
"role": "assistant",
"model": "qwen3.6-plus",
"content": [
{"type": "thinking", "thinking": "...", "signature": ""},
{"type": "text", "text": "Hello! How can I help you?"}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 10,
"output_tokens": 15
}
}
流式响应(SSE)
stream: true 时典型事件:
message_startcontent_block_startcontent_block_delta(delta.text或 thinking)content_block_stopmessage_deltamessage_stop[DONE]
模型列表
curl -s https://aiservice.jellytoken.com/v1/models \
-H "Authorization: Bearer uas_xxx" \
-H "anthropic-version: 2023-06-01"
带 anthropic-version 时返回 Anthropic 分页形态;否则为 OpenAI 形态。
Python 示例(anthropic SDK)
pip install anthropic
import anthropic
import os
client = anthropic.Anthropic(
api_key=os.environ["API_KEY"],
base_url=os.environ.get("ANTHROPIC_BASE_URL", "https://aiservice.jellytoken.com"),
)
message = client.messages.create(
model="qwen3.6-plus",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
print(message.content[0].text)