Skip to content

Claude 原生消息(Messages)

除 OpenAI 兼容格式外,YouQi AI 还提供 Anthropic Claude 原生的 Messages 接口,方便直接使用 Anthropic SDK 或已有的 Claude 集成,无需改写为 OpenAI 格式。

接口地址与认证

项目
接口POST /v1/messages
Base URLhttps://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-... 密钥。

创建消息

请求参数

参数类型必填说明
modelstring模型标识,如 claude-3-5-sonnet-20241022
messagesarray对话消息列表,每条含 roleuser / assistant)与 content
max_tokensinteger生成的最大 Token 数(Claude 原生接口必填
systemstring系统提示(独立字段,不放在 messages 中)
streamboolean是否流式返回,默认 false
temperaturenumber采样温度,0~1
top_pnumber核采样
stop_sequencesarray停止序列
toolsarray可调用的工具(函数)定义

请求示例

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": "用一句话介绍杭州。" }
    ]
  }'

使用官方 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)

响应示例

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
  }
}

流式输出(SSE)

在请求体中加入 "stream": true,服务端以 Server-Sent Events 逐事件返回。事件类型包括 message_startcontent_block_deltamessage_deltamessage_stop 等:

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"杭"}}

工具调用(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"]
      }
    }
  ]
}

提示

若你使用 OpenAI SDK,也可直接以聊天接口/v1/chat/completions)调用 Claude 模型,网关会自动完成协议转换。原生 Messages 接口适合已有 Anthropic 集成或需要 Claude 特有字段的场景。