Skip to content

Anthropic格式API

闪电API提供完全兼容Anthropic Messages API的接口,专为Claude系列模型优化。如果你使用Anthropic官方SDK,只需修改base_url即可无缝切换。

接口地址

https://ai.flashapi.top/v1

认证方式

支持两种认证方式:

方式一:x-api-key(推荐)

http
x-api-key: YOUR_API_KEY

方式二:Authorization

http
Authorization: Bearer YOUR_API_KEY

Messages API

接口说明

Claude的核心对话接口

请求地址

POST /v1/messages

请求示例

bash
curl https://ai.flashapi.top/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": "用Python写一个二分查找算法"
      }
    ]
  }'

请求参数

参数类型必填说明
modelstring模型名称
messagesarray对话消息列表
max_tokensinteger最大生成token数
systemstring系统提示词
temperaturenumber温度参数,0-1
top_pnumber核采样参数
streamboolean是否流式输出
stop_sequencesarray停止序列

Messages格式

与OpenAI不同,Anthropic的system提示词是独立参数:

json
{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "system": "你是一个Python编程专家",
  "messages": [
    {
      "role": "user",
      "content": "写一个快速排序"
    },
    {
      "role": "assistant",
      "content": "好的,我来写一个Python的快速排序..."
    },
    {
      "role": "user",
      "content": "加上详细注释"
    }
  ]
}

注意

  • messages中只能有userassistant角色
  • 必须以user消息开始
  • userassistant消息必须交替出现

响应格式

json
{
  "id": "msg_123",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "这是Claude的回复内容"
    }
  ],
  "model": "claude-sonnet-4-6",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 25,
    "output_tokens": 150
  }
}

流式输出

设置stream: true启用:

bash
curl https://ai.flashapi.top/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "你好"}],
    "stream": true
  }'

流式响应事件:

event: message_start
data: {"type":"message_start","message":{"id":"msg_123",...}}

event: content_block_delta
data: {"type":"content_block_delta","delta":{"type":"text_delta","text":"你"}}

event: content_block_delta
data: {"type":"content_block_delta","delta":{"type":"text_delta","text":"好"}}

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

支持的模型

模型说明上下文最大输出
claude-opus-4-6最强性能200K32K
claude-sonnet-4-6平衡版200K64K
claude-haiku-4-5快速版200K8K

多模态支持

Claude支持图片输入:

图片格式

json
{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "image/jpeg",
            "data": "/9j/4AAQSkZJRg..."
          }
        },
        {
          "type": "text",
          "text": "这张图片里有什么?"
        }
      ]
    }
  ]
}

支持的图片格式:

  • JPEG
  • PNG
  • GIF
  • WebP

最大图片大小:5MB

代码示例

Python(官方SDK)

python
from anthropic import Anthropic

client = Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://ai.flashapi.top/v1"
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "写一个Python装饰器"}
    ]
)

print(message.content[0].text)

Python(流式输出)

python
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "写一篇文章"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

Node.js(官方SDK)

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

const client = new Anthropic({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://ai.flashapi.top/v1'
});

const message = await client.messages.create({
  model: 'claude-sonnet-4-6',
  max_tokens: 1024,
  messages: [
    { role: 'user', content: '写一个快速排序' }
  ]
});

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

cURL

bash
curl https://ai.flashapi.top/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello, Claude!"}
    ]
  }'

错误处理

错误响应格式

json
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "错误描述"
  }
}

常见错误类型

错误类型说明
invalid_request_error请求参数错误
authentication_error认证失败
permission_error权限不足
not_found_error资源不存在
rate_limit_error速率限制
api_errorAPI内部错误
overloaded_error服务过载

错误处理示例

python
from anthropic import Anthropic, APIError

client = Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://ai.flashapi.top/v1"
)

try:
    message = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        messages=[{"role": "user", "content": "Hello"}]
    )
except APIError as e:
    print(f"错误类型: {e.type}")
    print(f"错误信息: {e.message}")

高级功能

1. 系统提示词

python
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="你是一个Python专家,擅长数据分析和机器学习。",
    messages=[
        {"role": "user", "content": "如何使用pandas处理缺失值?"}
    ]
)

2. 多轮对话

python
conversation = [
    {"role": "user", "content": "写一个用户类"},
    {"role": "assistant", "content": "好的,我来写一个User类..."},
    {"role": "user", "content": "加上密码加密功能"}
]

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=conversation
)

3. 图片分析

python
import base64

with open("image.jpg", "rb") as f:
    image_data = base64.b64encode(f.read()).decode()

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": "image/jpeg",
                        "data": image_data
                    }
                },
                {
                    "type": "text",
                    "text": "分析这张架构图"
                }
            ]
        }
    ]
)

最佳实践

1. 合理设置max_tokens

不同模型的最大输出不同:

  • Opus: 32K
  • Sonnet: 64K
  • Haiku: 8K

根据需求设置合适的值,避免浪费。

2. 使用system提示词

将角色设定放在system参数中,而不是messages里:

python
# ✅ 推荐
system="你是一个Python专家"
messages=[{"role": "user", "content": "写代码"}]

# ❌ 不推荐
messages=[
    {"role": "user", "content": "你是Python专家。写代码"}
]

3. 处理长对话

Claude有200K上下文,但建议:

  • 定期总结对话
  • 删除不重要的历史
  • 使用缓存机制(如果支持)

4. 错误重试

python
from tenacity import retry, stop_after_attempt, wait_exponential

@retry(
    stop=stop_after_attempt(3),
    wait=wait_exponential(multiplier=1, min=4, max=10)
)
def call_claude():
    return client.messages.create(...)

与OpenAI格式对比

特性Anthropic格式OpenAI格式
system提示词独立参数messages中
角色类型user/assistantsystem/user/assistant
必填参数max_tokens
图片支持原生支持部分模型支持
流式输出SSE事件SSE数据流

速率限制

限制类型限制值
每分钟请求数50
每小时请求数3000
并发请求数5

下一步

闪电API | Flash API - 让全球顶级AI模型触手可达