跳转至

Claude Messages API

使用 Anthropic Claude 原生 Messages API 格式创建对话。需要在请求头中包含 anthropic-version

POST /v1/messages

Authorizations

参数 类型 位置 必填 说明
Authorization string header 身份验证标头格式为 Bearer <API_KEY>,其中 <API_KEY> 是您的API令牌。
anthropic-version string header Anthropic API 版本,例如:2023-06-01
x-api-key string header Anthropic API Key(可选,也可使用 Bearer Token)

Body

application/json

参数 类型 必填 说明
model string 要使用的模型的 ID。例如:"claude-opus-4-5-20251101""claude-sonnet-4-5-20250929"
messages array 消息数组,包含对话历史
max_tokens integer 最大生成令牌数,至少为 1
system string | array 系统提示词(字符串或对象数组)
temperature number 温度参数,控制输出的随机性。范围:01
top_p number 核采样参数
top_k integer Top-K 采样参数
stream boolean 是否流式输出。默认:false
stop_sequences array 停止序列数组
tools array 工具定义数组(用于 Function Calling)
tool_choice object 工具选择配置
thinking object Extended Thinking 配置(用于深度思考模式)
metadata object 元数据对象

messages 子属性

参数 类型 必填 说明
role string 角色。可选值:userassistant
content string | array 文本内容(字符串)或内容块数组(用于多模态)

content 数组元素(多模态)

参数 类型 必填 说明
type string 内容类型:textimage
text string 条件 文本内容(当 type 为 text 时)
source object 条件 图片来源(当 type 为 image 时)

thinking 配置(Extended Thinking)

参数 类型 必填 说明
type string 固定值:enabled
budget_tokens integer 思考预算令牌数

Response

200 - 成功响应

参数 类型 说明
id string 消息 ID
type string 固定值:message
role string 固定值:assistant
content array 内容块数组
model string 使用的模型
stop_reason string 停止原因:end_turnmax_tokensstop_sequencetool_use
usage object 用量统计

content 子属性

参数 类型 说明
type string 内容类型:texttool_use
text string 文本内容(当 type 为 text 时)

usage 子属性

参数 类型 说明
input_tokens integer 输入令牌数
output_tokens integer 输出令牌数
cache_creation_input_tokens integer 缓存创建输入令牌数(可选)
cache_read_input_tokens integer 缓存读取输入令牌数(可选)

请求示例

curl --request POST \
  --url https://cdn.12ai.org/v1/messages \
  --header 'anthropic-version: 2023-06-01' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "claude-sonnet-4-5-20250929",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": "Hello, how are you?"
      }
    ]
  }'
import anthropic

client = anthropic.Anthropic(
    api_key="<token>",
    base_url="https://cdn.12ai.org"
)

message = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, how are you?"}
    ]
)

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

const client = new Anthropic({
    apiKey: '<token>',
    baseURL: 'https://cdn.12ai.org'
});

const message = await client.messages.create({
    model: 'claude-sonnet-4-5-20250929',
    max_tokens: 1024,
    messages: [
        { role: 'user', content: 'Hello, how are you?' }
    ]
});

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

client = anthropic.Anthropic(
    api_key="<token>",
    base_url="https://cdn.12ai.org"
)

with client.messages.stream(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, how are you?"}
    ]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

响应示例

{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello! I'm doing well, thank you for asking. How can I assist you today?"
    }
  ],
  "model": "claude-sonnet-4-5-20250929",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 12,
    "output_tokens": 19
  }
}

Extended Thinking 示例

Extended Thinking(深度思考)模式允许模型在回答前进行更深入的推理。

curl --request POST \
  --url https://cdn.12ai.org/v1/messages \
  --header 'anthropic-version: 2023-06-01' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "claude-sonnet-4-5-20250929",
    "max_tokens": 16000,
    "thinking": {
      "type": "enabled",
      "budget_tokens": 10000
    },
    "messages": [
      {
        "role": "user",
        "content": "请解释量子纠缠的原理"
      }
    ]
  }'
import anthropic

client = anthropic.Anthropic(
    api_key="<token>",
    base_url="https://cdn.12ai.org"
)

message = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[
        {"role": "user", "content": "请解释量子纠缠的原理"}
    ]
)

# 思考内容
for block in message.content:
    if block.type == "thinking":
        print("思考过程:", block.thinking)
    elif block.type == "text":
        print("回答:", block.text)

多模态示例(图片输入)

import anthropic
import base64

client = anthropic.Anthropic(
    api_key="<token>",
    base_url="https://cdn.12ai.org"
)

# 读取图片并转换为 base64
with open("image.jpg", "rb") as f:
    image_data = base64.standard_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)

可用模型

  • claude-opus-4-5-20251101
  • claude-opus-4-5-20251101-c
  • claude-sonnet-4-5-20250929
  • claude-sonnet-4-5-20250929-c
  • claude-haiku-4-5-20251001

更多资源