文本

创建消息

使用 Anthropic Messages API 格式创建消息

POST
/v1/messages

该接口使用 Anthropic Messages 请求和响应格式,适合 Claude 的文本、图片、工具和扩展思考功能。

messages 只接受 user 和 assistant;系统指令放在顶层 system,并且必须提供 max_tokens。如果消息中使用 OpenAI 的 system、developer 或 tool role,请改用 /v1/chat/completions。

Anthropic SDK 的 Base URL:https://api.tokenlab.sh(不带 /v1 后缀)

请求头

x-api-keystringheader

您的 TokenLab API 密钥。通过 x-api-key 或 Authorization: Bearer <API_KEY> 任选其一发送。

anthropic-versionstringheader必填

Anthropic API 版本。请使用 2023-06-01。

请求体

可选参数的支持情况、取值和默认值取决于所选模型。设置采样、推理或工具选项前,请查看其模型详情。

modelstring必填

支持 anthropic_messages 格式的模型 ID。请查看其模型详情确认当前能力。

messagesarray必填

包含 role 和 content 的消息对象数组。

对于支持视觉能力的 Claude 模型,content 可以是纯字符串,也可以是内容块数组。传图片时请使用结构化内容块,而不是把图片 URL 或 Base64 直接写进纯文本里。

内容块示例:

  • 文本块:{ "type": "text", "text": "请描述这张图片" }
  • URL 图片块:{ "type": "image", "source": { "type": "url", "url": "https://example.com/image.jpg" } }
  • Base64 图片块:{ "type": "image", "source": { "type": "base64", "media_type": "image/png", "data": "iVBORw0KGgoAAA..." } }
max_tokensinteger必填

要生成的最大 token 数。

systemstring | array

系统提示词,可以是字符串或内容块数组,单独放在顶层,不放入 messages 数组。

temperaturenumber

采样温度。是否支持、允许的取值和默认值取决于所选模型;省略此字段即可使用模型默认值。

streamboolean默认值: false

启用流式响应。

thinkingobject

原生 thinking 配置。支持的模式、预算以及与其他参数的组合取决于所选模型。

toolsarray

模型可用的工具。

tool_choiceobject

原生工具选择对象,例如 {"type":"auto"}。支持的类型取决于所选模型。

top_pnumber

Top P 采样参数。建议只调整 temperature 或 top_p 其中一个。

top_kinteger

每个 token 仅从前 K 个选项中进行采样。

stop_sequencesarray

自定义停止序列,当命中时模型将停止生成。

metadataobject

与请求一起保存的自定义信息。

响应

idstring

唯一的消息标识符。

typestring

始终为 message。

rolestring

始终为 assistant。

contentarray

内容块数组,例如 text、thinking 或 tool_use。

modelstring

使用的模型。

stop_reasonstring

停止生成的原因,例如 end_turn、max_tokens、stop_sequence 或 tool_use。

usageobject

token 使用情况,包含 input_tokens 和 output_tokens。

请求

curl -X POST "https://api.tokenlab.sh/v1/messages" \
  -H "x-api-key: sk-your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "system": "You are a helpful assistant.",
    "messages": [
      {"role": "user", "content": "Hello, Claude!"}
    ]
  }'

响应

Response
{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello! How can I help you today?"
    }
  ],
  "model": "claude-sonnet-5",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 15,
    "output_tokens": 10
  }
}

图片输入示例

对于支持视觉能力的 Claude 模型,请将图片放在 messages[].content 中,作为结构化图片内容块传入。

{
  "model": "claude-sonnet-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "请描述这张图片。"
        },
        {
          "type": "image",
          "source": {
            "type": "url",
            "url": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}
{
  "model": "claude-sonnet-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "请描述这张图片。"
        },
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

扩展思考示例

将 TOKENLAB_THINKING_MODEL 设为支持 type: "enabled" 和 budget_tokens 手动思考配置的模型。按该模型限制调整两个 token 预算;其他模型可能需要不同的 thinking 配置。

import os
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-your-api-key",
    base_url="https://api.tokenlab.sh"
)

message = client.messages.create(
    model=os.environ["TOKENLAB_THINKING_MODEL"],
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{"role": "user", "content": "Solve this math problem..."}]
)

for block in message.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Response: {block.text}")

Anthropic Message Batches

TokenLab 也支持 Anthropic Message Batches API。

可用接口:

  • POST /v1/messages/batches
  • GET /v1/messages/batches
  • GET /v1/messages/batches/:message_batch_id
  • GET /v1/messages/batches/:message_batch_id/results
  • POST /v1/messages/batches/:message_batch_id/cancel
  • DELETE /v1/messages/batches/:message_batch_id

使用说明:

  • 使用同一枚 TokenLab API 密钥和 Anthropic 请求头。
  • 如果 batch item 引用了 file_id,还需要加上 anthropic-beta: files-api-2025-04-14。
  • 请求与响应保持 Anthropic Message Batches 格式,费用可以在 TokenLab Usage 中查询。

授权

BearerAuth
AuthorizationBearer <token>

API Key 身份验证。在 Dashboard > API > API Keys 中创建或管理 API Key。

位置: header

请求头

X-TokenLab-Delivery-Policy?string

单次请求的交付策略。覆盖 API 密钥和 Workspace 的默认设置。自动优先尝试 TokenLab Verified,并在输出、请求接受或持久资源创建之前,可能会切换一次至仅限 Official。

可选值

  • "auto"
  • "verified"
  • "official"

请求体

application/json

响应

application/json

application/json

application/json

application/json

application/json

application/json