Api Reference

Claude API

Claude 兼容 API 端点

Claude API

ProxyCast 提供 Anthropic Claude Messages API 兼容。

/v1/messages

请求

POST /v1/messages
Content-Type: application/json
x-api-key: your-api-key
anthropic-version: 2023-06-01

请求体

{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 1024,
  "messages": [
    {"role": "user", "content": "Hello!"}
  ]
}

参数说明

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

消息格式

{
  "role": "user",
  "content": "Hello!"
}

或带图片:

{
  "role": "user",
  "content": [
    {"type": "text", "text": "What's in this image?"},
    {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "..."}}
  ]
}

响应

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

流式响应

设置 stream: true 启用流式响应:

curl http://127.0.0.1:9090/v1/messages \
  -H "x-api-key: your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": true
  }'

响应格式(SSE):

event: message_start
data: {"type":"message_start","message":{"id":"msg_xxx"}}

event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Hello"}}

event: message_stop
data: {"type":"message_stop"}

/v1/messages/count_tokens

请求

POST /v1/messages/count_tokens
Content-Type: application/json
x-api-key: your-api-key
anthropic-version: 2023-06-01

请求体

{
  "model": "claude-sonnet-4-20250514",
  "messages": [
    {"role": "user", "content": "Hello!"}
  ]
}

响应

{
  "input_tokens": 10
}

工具调用

定义工具

{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 1024,
  "messages": [{"role": "user", "content": "What's the weather in Tokyo?"}],
  "tools": [
    {
      "name": "get_weather",
      "description": "Get weather information",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": {"type": "string"}
        },
        "required": ["location"]
      }
    }
  ]
}

工具调用响应

{
  "content": [
    {
      "type": "tool_use",
      "id": "toolu_xxx",
      "name": "get_weather",
      "input": {"location": "Tokyo"}
    }
  ],
  "stop_reason": "tool_use"
}

示例代码

Python

import anthropic

client = anthropic.Anthropic(
    base_url="http://127.0.0.1:9090",
    api_key="your-api-key"
)

message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}]
)

print(message.content[0].text)

Node.js

import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
  baseURL: 'http://127.0.0.1:9090',
  apiKey: 'your-api-key'
});

const message = await client.messages.create({
  model: 'claude-sonnet-4-20250514',
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'Hello!' }]
});

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