Ori联系我们

文档OriHub

Anthropic Messages API

平台直接兼容 Anthropic 的 Messages API —— POST /v1/messages,官方 SDK 只是把它包了一层。用 SDK 就看Anthropic SDK,自己发 HTTP 请求就看这页。

消息生成

POST /v1/messages —— 生成一条消息。

鉴权两个头都行:x-api-key(Anthropic SDK 的默认行为)或 Authorization: Bearer,两者等价。

curl https://api.lk888.ai/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sn-5",
    "max_tokens": 1024,
    "messages": [{ "role": "user", "content": "你好" }]
  }'

请求参数

  • model —— 模型名(必填)
  • messages —— 消息数组,每条带 role(user / assistant)和 content(必填)
  • max_tokens —— 最大输出 token 数(必填,Anthropic 格式要求,建议 1024 以上)
  • system —— system 提示词,独立字段,不放进 messages(可选)
  • stream —— 是否流式输出(可选)

响应

{
  "id": "msg-xxx",
  "type": "message",
  "role": "assistant",
  "model": "sn-5",
  "content": [{ "type": "text", "text": "你好!有什么可以帮助你的?" }],
  "stop_reason": "end_turn",
  "usage": { "input_tokens": 10, "output_tokens": 15 }
}
  • content[0].text —— 回复正文
  • usage.input_tokens / usage.output_tokens —— token 用量
  • stop_reason —— 结束原因,end_turn 是正常结束

流式

stream: true 返回 SSE,每行 data: {JSON},事件顺序是 message_start → content_block_start → content_block_delta → content_block_stop → message_delta → message_stop。

推理模型会先来 content_block_start(type=thinking)、thinking_delta、signature_delta,文本可能几秒到几十秒后才到 —— 客户端超时从第一个事件开始算,别等首个 text。

特别注意

  • 错了返回 {"error": {"message": "错误描述", "type": "错误类型"}}
  • max_tokens 必填,省略直接报错
  • system 提示词必须放顶层 system,塞进 messages 里是错的 —— 这是 Anthropic 格式跟 OpenAI 最大的差别
  • 分组路由由密钥的调度策略决定,请求体里的 channel_group 和请求头 X-Channel-Group 都不改路由
  • 这次调用花了多少:响应头 X-Task-Id 是本平台的任务号(流式非流式都带,响应体里的 id 是上游生成的、不能用来查),拿它调 GET /v1/skills/task-status?task_id={X-Task-Id},is_final = true 时的 cost 就是结算金额