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_KEYMessages 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写一个二分查找算法"
}
]
}'请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称 |
| messages | array | 是 | 对话消息列表 |
| max_tokens | integer | 是 | 最大生成token数 |
| system | string | 否 | 系统提示词 |
| temperature | number | 否 | 温度参数,0-1 |
| top_p | number | 否 | 核采样参数 |
| stream | boolean | 否 | 是否流式输出 |
| stop_sequences | array | 否 | 停止序列 |
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中只能有
user和assistant角色 - 必须以
user消息开始 user和assistant消息必须交替出现
响应格式
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 | 最强性能 | 200K | 32K |
| claude-sonnet-4-6 | 平衡版 | 200K | 64K |
| claude-haiku-4-5 | 快速版 | 200K | 8K |
多模态支持
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_error | API内部错误 |
| 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/assistant | system/user/assistant |
| 必填参数 | max_tokens | 无 |
| 图片支持 | 原生支持 | 部分模型支持 |
| 流式输出 | SSE事件 | SSE数据流 |
速率限制
| 限制类型 | 限制值 |
|---|---|
| 每分钟请求数 | 50 |
| 每小时请求数 | 3000 |
| 并发请求数 | 5 |
下一步
- 查看OpenAI格式API - 通用格式
- 查看定价 - 了解费用
- 获取帮助 - 遇到问题