跳转到主要内容

Claude 原生格式

POST /v1/messages
Crazyrouter 支持 Anthropic 原生的 Messages API 格式。你可以使用 x-api-keyAuthorization 头传入 API Key。

认证

支持两种认证方式(二选一):
x-api-key: YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY

基本对话

curl https://crazyrouter.com/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "用简单的语言解释量子计算"}
    ]
  }'

请求参数

参数类型必填说明
modelstring模型名称
max_tokensinteger最大输出 Token 数
messagesarray消息列表
systemstring|array系统提示
temperaturenumber采样温度,0-1
top_pnumber核采样参数
top_kintegerTop-K 采样
stop_sequencesarray停止序列列表
streamboolean是否流式输出
toolsarray工具定义列表
tool_choiceobject工具选择策略
thinkingobjectExtended Thinking 配置

流式对话

curl https://crazyrouter.com/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      {"role": "user", "content": "写一首关于编程的诗"}
    ]
  }'

Function Calling

import anthropic
import json

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://crazyrouter.com"
)

tools = [
    {
        "name": "get_stock_price",
        "description": "获取指定股票的当前价格",
        "input_schema": {
            "type": "object",
            "properties": {
                "symbol": {
                    "type": "string",
                    "description": "股票代码,如 AAPL、GOOGL"
                }
            },
            "required": ["symbol"]
        }
    }
]

# 第一次调用
message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    tools=tools,
    messages=[
        {"role": "user", "content": "苹果公司的股价是多少?"}
    ]
)

# 处理工具调用
if message.stop_reason == "tool_use":
    tool_block = next(b for b in message.content if b.type == "tool_use")

    # 执行函数
    result = {"symbol": "AAPL", "price": 198.50, "currency": "USD"}

    # 第二次调用,返回函数结果
    final = client.messages.create(
        model="claude-sonnet-4-20250514",
        max_tokens=1024,
        tools=tools,
        messages=[
            {"role": "user", "content": "苹果公司的股价是多少?"},
            {"role": "assistant", "content": message.content},
            {
                "role": "user",
                "content": [
                    {
                        "type": "tool_result",
                        "tool_use_id": tool_block.id,
                        "content": json.dumps(result)
                    }
                ]
            }
        ]
    )
    print(final.content[0].text)

Extended Thinking

启用 Extended Thinking 让 Claude 在回答前进行深度思考:
curl https://crazyrouter.com/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 16000,
    "thinking": {
      "type": "enabled",
      "budget_tokens": 10000
    },
    "messages": [
      {"role": "user", "content": "分析以下代码的时间复杂度并提出优化方案:\ndef fib(n):\n    if n <= 1: return n\n    return fib(n-1) + fib(n-2)"}
    ]
  }'

Extended Thinking 响应

{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "thinking",
      "thinking": "让我用数学归纳法来证明...\n基础情况:当 n=1 时..."
    },
    {
      "type": "text",
      "text": "我来用数学归纳法证明这个公式。\n\n**基础情况**:..."
    }
  ],
  "model": "claude-sonnet-4-20250514",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 30,
    "output_tokens": 500
  }
}
使用 Extended Thinking 时,max_tokens 必须大于 budget_tokens。思考 Token 也会计入费用。
Crazyrouter 的 Claude 原生格式端点完全兼容 Anthropic 官方 SDK。只需修改 base_url 即可无缝切换。