跳转到主要内容
POST
/
v1
/
messages
curl -X POST https://www.qingbo.dev/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4.5",
    "max_tokens": 1024,
    "system": "你是一个专业的AI助手。",
    "messages": [
      {
        "role": "user",
        "content": "解释一下冒泡排序算法。"
      }
    ]
  }'
import anthropic

client = anthropic.Anthropic(
    base_url="https://www.qingbo.dev/v1",
    api_key="YOUR_API_KEY"
)

message = client.messages.create(
    model="claude-sonnet-4.5",
    max_tokens=1024,
    system="你是一个专业的AI助手。",
    messages=[
        {"role": "user", "content": "解释一下冒泡排序算法。"}
    ]
)

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

const client = new Anthropic({
  baseURL: 'https://www.qingbo.dev/v1',
  apiKey: 'YOUR_API_KEY'
});

const message = await client.messages.create({
  model: 'claude-sonnet-4.5',
  max_tokens: 1024,
  system: '你是一个专业的AI助手。',
  messages: [
    { role: 'user', content: '解释一下冒泡排序算法。' }
  ]
});

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

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "model":      "claude-sonnet-4.5",
        "max_tokens": 1024,
        "system":     "你是一个专业的AI助手。",
        "messages": []map[string]string{
            {"role": "user", "content": "解释一下冒泡排序算法。"},
        },
    }

    body, _ := json.Marshal(payload)
    req, _ := http.NewRequest("POST", "https://www.qingbo.dev/v1/messages", bytes.NewBuffer(body))
    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("anthropic-version", "2023-06-01")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    result, _ := io.ReadAll(resp.Body)
    fmt.Println(string(result))
}
import java.net.http.*;
import java.net.URI;

public class Main {
    public static void main(String[] args) throws Exception {
        String payload = """
        {
          "model": "claude-sonnet-4.5",
          "max_tokens": 1024,
          "system": "你是一个专业的AI助手。",
          "messages": [
            {"role": "user", "content": "解释一下冒泡排序算法。"}
          ]
        }
        """;

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://www.qingbo.dev/v1/messages"))
            .header("Authorization", "Bearer YOUR_API_KEY")
            .header("Content-Type", "application/json")
            .header("anthropic-version", "2023-06-01")
            .POST(HttpRequest.BodyPublishers.ofString(payload))
            .build();

        HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
{
  "id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
"type": "message",
"role": "assistant",
"content": [
  {
    "type": "text",
      "text": "你好!我是Claude。很高兴见到你。"
  }
],
  "model": "claude-sonnet-4.5",
"stop_reason": "end_turn",
  "stop_sequence": null,
"usage": {
    "input_tokens": 12,
    "output_tokens": 18
}
}
{
  "error": {
    "code": 400,
    "message": "请求参数无效",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": 401,
    "message": "身份验证失败,请检查您的API密钥",
    "type": "authentication_error"
  }
}
{
  "error": {
    "code": 429,
    "message": "请求过于频繁,请稍后再试",
    "type": "rate_limit_error"
  }
}
{
  "error": {
    "code": 500,
    "message": "服务器内部错误,请稍后重试",
    "type": "server_error"
  }
}
  • 完全兼容 Claude Messages API 格式
  • 支持多轮对话和单次查询
  • 支持文本、图像等多模态内容
curl -X POST https://www.qingbo.dev/v1/messages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4.5",
    "max_tokens": 1024,
    "system": "你是一个专业的AI助手。",
    "messages": [
      {
        "role": "user",
        "content": "解释一下冒泡排序算法。"
      }
    ]
  }'
import anthropic

client = anthropic.Anthropic(
    base_url="https://www.qingbo.dev/v1",
    api_key="YOUR_API_KEY"
)

message = client.messages.create(
    model="claude-sonnet-4.5",
    max_tokens=1024,
    system="你是一个专业的AI助手。",
    messages=[
        {"role": "user", "content": "解释一下冒泡排序算法。"}
    ]
)

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

const client = new Anthropic({
  baseURL: 'https://www.qingbo.dev/v1',
  apiKey: 'YOUR_API_KEY'
});

const message = await client.messages.create({
  model: 'claude-sonnet-4.5',
  max_tokens: 1024,
  system: '你是一个专业的AI助手。',
  messages: [
    { role: 'user', content: '解释一下冒泡排序算法。' }
  ]
});

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

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "model":      "claude-sonnet-4.5",
        "max_tokens": 1024,
        "system":     "你是一个专业的AI助手。",
        "messages": []map[string]string{
            {"role": "user", "content": "解释一下冒泡排序算法。"},
        },
    }

    body, _ := json.Marshal(payload)
    req, _ := http.NewRequest("POST", "https://www.qingbo.dev/v1/messages", bytes.NewBuffer(body))
    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("anthropic-version", "2023-06-01")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    result, _ := io.ReadAll(resp.Body)
    fmt.Println(string(result))
}
import java.net.http.*;
import java.net.URI;

public class Main {
    public static void main(String[] args) throws Exception {
        String payload = """
        {
          "model": "claude-sonnet-4.5",
          "max_tokens": 1024,
          "system": "你是一个专业的AI助手。",
          "messages": [
            {"role": "user", "content": "解释一下冒泡排序算法。"}
          ]
        }
        """;

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://www.qingbo.dev/v1/messages"))
            .header("Authorization", "Bearer YOUR_API_KEY")
            .header("Content-Type", "application/json")
            .header("anthropic-version", "2023-06-01")
            .POST(HttpRequest.BodyPublishers.ofString(payload))
            .build();

        HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
{
  "id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
"type": "message",
"role": "assistant",
"content": [
  {
    "type": "text",
      "text": "你好!我是Claude。很高兴见到你。"
  }
],
  "model": "claude-sonnet-4.5",
"stop_reason": "end_turn",
  "stop_sequence": null,
"usage": {
    "input_tokens": 12,
    "output_tokens": 18
}
}
{
  "error": {
    "code": 400,
    "message": "请求参数无效",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": 401,
    "message": "身份验证失败,请检查您的API密钥",
    "type": "authentication_error"
  }
}
{
  "error": {
    "code": 429,
    "message": "请求过于频繁,请稍后再试",
    "type": "rate_limit_error"
  }
}
{
  "error": {
    "code": 500,
    "message": "服务器内部错误,请稍后重试",
    "type": "server_error"
  }
}

Authorizations

x-api-key
string
必填
API 密钥用于身份验证访问 API Key 管理页面 获取您的 API Key在请求头中添加:
x-api-key: YOUR_API_KEY
anthropic-version
string
必填
API 版本号指定要使用的 Claude API 版本示例:2023-06-01

Body

model
string
必填
模型名称
  • claude-opus-4.6 - Claude 4.6 Opus 最新旗舰模型
  • claude-sonnet-4.6 - Claude 4.6 Sonnet 最新版
  • claude-opus-4.5 - Claude 4.5 Opus 旗舰模型
  • claude-sonnet-4.5 - Claude 4.5 Sonnet 平衡版
  • claude-haiku-4.5 - Claude 4.5 Haiku 快速响应版
messages
array
必填
消息列表,支持交替的 userassistant 角色
max_tokens
integer
必填
最大生成 token 数生成停止前的最大 token 数量。模型可能会在达到此限制前停止。不同模型有不同的最大值,请参考模型文档。最小值:1
system
string | array
系统提示词系统提示词用于设置 Claude 的角色、个性、目标和指令。字符串格式:
{
  "system": "你是一位专业的Python编程导师"
}
结构化格式:
{
  "system": 
  [
    {
      "type": "text",
      "text": "你是一位专业的Python编程导师"
    }
  ]
}
temperature
number
温度参数,范围 0-1控制输出的随机性:
  • 低值(如 0.2):更确定、更保守
  • 高值(如 0.8):更随机、更有创意
默认值:1.0
top_p
number
核采样参数,范围 0-1使用 nucleus sampling。建议使用 temperaturetop_p 其中之一,不要同时使用。默认值:1.0
top_k
integer
Top-K 采样只从概率最高的 K 个选项中采样,用于移除”长尾”低概率响应。建议仅在高级用例中使用。
stream
boolean
是否启用流式输出
  • true: 通过服务器发送事件 (SSE) 逐步返回响应
  • false: 一次性返回完整响应
默认值:false
stop_sequences
array
停止序列自定义文本序列,遇到时停止生成。最多 4 个序列,每个最长 32 个 token。
metadata
object
元数据用于追踪或标识请求的对象。

Response

id
string
消息的唯一标识符
type
string
对象类型,固定为 message
role
string
角色类型,固定为 assistant
content
array
消息内容数组
model
string
实际使用的模型名称
stop_reason
string
停止原因可能的值:
  • end_turn - 自然结束
  • max_tokens - 达到最大 token 限制
  • stop_sequence - 遇到停止序列
  • tool_use - 工具使用
stop_sequence
string
触发停止的序列(如果有)
usage
object
token 使用统计

使用示例

单次对话

{
  "model": "claude-sonnet-4.5",
  "max_tokens": 1024,
  "messages": [
    {"role": "user", "content": "解释一下量子计算"}
  ]
}

多轮对话

{
  "model": "claude-sonnet-4.5",
  "max_tokens": 1024,
  "messages": [
    {"role": "user", "content": "你好"},
    {"role": "assistant", "content": "你好!我是Claude。"},
    {"role": "user", "content": "能解释一下AI吗?"}
  ]
}

使用系统提示词

{
  "model": "claude-sonnet-4.5",
  "max_tokens": 1024,
  "system": "你是一位经验丰富的数据科学家,专长包括统计分析和机器学习。",
  "messages": [
    {"role": "user", "content": "如何选择合适的机器学习算法?"}
  ]
}

预填充响应

{
  "model": "claude-sonnet-4.5",
  "max_tokens": 1024,
  "messages": [
    {"role": "user", "content": "列出5个Python最佳实践"},
    {"role": "assistant", "content": "以下是5个Python最佳实践:\n\n1."}
  ]
}