12API logo12API
API 手册

Claude Messages

Anthropic Claude 原生 Messages 接口

Claude Messages 适合已经使用 Anthropic SDK 或需要 Claude 原生消息结构的项目。请求中必须带上 anthropic-version

接口概览

项目说明
方法POST
路径/v1/messages
Base URLhttps://cdn.12ai.org
请求格式application/json
认证x-api-key: $API_KEY
版本头anthropic-version: 2023-06-01

认证写法

Anthropic 官方 Messages API 使用 x-api-key。如果你的客户端只能发送 OpenAI 风格 Header,12API 也兼容 Authorization: Bearer $API_KEY

请求体

参数类型必填说明
modelstringClaude 模型名称
messagesarray对话消息数组
max_tokensinteger最大输出 token 数
systemstring | array系统提示词;Claude 不使用 system 角色消息
streamboolean是否流式返回
temperaturenumber随机性,范围通常为 01
toolsarray工具定义
tool_choiceobject工具选择策略
thinkingobjectExtended Thinking 配置
metadataobject元数据
stop_sequencesarray停止序列

messages

参数类型必填说明
rolestringuserassistant
contentstring | array文本,或由文本、图片等组成的内容块

工具定义

Claude 工具的参数 schema 字段名为 input_schema,不是 OpenAI 的 parameters

{
  "tools": [
    {
      "name": "get_weather",
      "description": "查询天气",
      "input_schema": {
        "type": "object",
        "properties": {
          "city": {"type": "string"}
        },
        "required": ["city"]
      }
    }
  ]
}

请求示例

curl https://cdn.12ai.org/v1/messages \
  -H "x-api-key: $API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-5-20250929",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "用一句话解释 Claude Messages API"}
    ]
  }'
import anthropic

client = anthropic.Anthropic(
    api_key="sk-xxx",
    base_url="https://cdn.12ai.org",
)

message = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "用一句话解释 Claude Messages API"}
    ],
)

print(message.content[0].text)
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: "sk-xxx",
  baseURL: "https://cdn.12ai.org",
});

const message = await client.messages.create({
  model: "claude-sonnet-4-5-20250929",
  max_tokens: 1024,
  messages: [
    { role: "user", content: "用一句话解释 Claude Messages API" },
  ],
});

console.log(message.content[0].text);
import anthropic

client = anthropic.Anthropic(
    api_key="sk-xxx",
    base_url="https://cdn.12ai.org",
)

with client.messages.stream(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "写一段很短的中文欢迎语"}
    ],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

响应结构

字段类型说明
idstring消息 ID
typestring固定为 message
rolestring固定为 assistant
contentarray输出内容块
modelstring实际调用的模型
stop_reasonstring停止原因
usageobjecttoken 用量统计

响应示例

{
  "id": "msg_xxx",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Claude Messages API 是 Anthropic 的原生对话接口。"
    }
  ],
  "model": "claude-sonnet-4-5-20250929",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 18,
    "output_tokens": 16
  }
}

图片输入

Claude 原生格式的图片输入使用 content 数组。图片可以放在 source 中,并用 base64 传入。

import base64
import anthropic

client = anthropic.Anthropic(
    api_key="sk-xxx",
    base_url="https://cdn.12ai.org",
)

with open("image.jpg", "rb") as f:
    image_data = base64.b64encode(f.read()).decode("utf-8")

message = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": "image/jpeg",
                        "data": image_data,
                    },
                },
                {"type": "text", "text": "描述这张图片"},
            ],
        }
    ],
)

print(message.content[0].text)

Extended Thinking

需要深度推理时,可以开启 thinking。开启后应给足 max_tokens,并设置合理的 budget_tokens

{
  "model": "claude-sonnet-4-5-20250929",
  "max_tokens": 16000,
  "thinking": {
    "type": "enabled",
    "budget_tokens": 10000
  },
  "messages": [
    {"role": "user", "content": "解释一个复杂系统的设计取舍"}
  ]
}

max_tokens 仍然必填

Claude Messages 官方接口要求 max_tokens。即使只想让模型短回答,也需要显式传入该字段。

常用模型

模型说明
claude-opus-4-5-20251101更强推理与复杂任务
claude-sonnet-4-5-20250929通用任务首选
claude-haiku-4-5-20251001轻量、低延迟任务

更多参数细节可参考 Anthropic Messages API

On this page