Claude API Examples
本页面提供Agentsflare Claude API的使用示例,帮助您快速集成和使用Claude AI服务。
基础配置
在开始使用API之前,请确保您已经获取了API Key。如果还没有,请参考创建API Key。
基础信息
- API Base URL:
https://api.agentsflare.com/anthropic/v1/messages - 认证方式: Bearer Token
- 内容类型:
application/json
请求示例
bash
curl --location --request POST 'https://api.agentsflare.com/anthropic/v1/messages' \
--header 'Content-Type: application/json' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'anthropic-version: 2023-06-01' \
--data-raw '{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "你好,请介绍一下你自己"
}
]
}'python
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.agentsflare.com/anthropic"
)
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "你好,请介绍一下你自己"
}
]
)
print(message.content[0].text)python
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.agentsflare.com/anthropic"
)
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "你好,请介绍一下你自己"
}
],
stream=True
)
for event in message:
if event.type == "content_block_delta":
delta = event.delta
if delta.type == "text_delta":
print(delta.text, end="", flush=True)javascript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.AGENTSFLARE_API_KEY,
baseURL: "https://api.agentsflare.com/anthropic"
});
async function main() {
try {
const message = await client.messages.create({
model: "claude-sonnet-4-5-20250929",
max_tokens: 1024,
messages: [
{
role: "user",
content: "你好,请介绍一下你自己"
}
]
});
console.log(message.content[0].text);
} catch (err) {
console.error(err?.response?.data ?? err);
}
}
main();javascript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.AGENTSFLARE_API_KEY,
baseURL: "https://api.agentsflare.com/anthropic"
});
async function main() {
try {
const stream = await client.messages.create({
model: "claude-sonnet-4-5-20250929",
max_tokens: 1024,
messages: [
{
role: "user",
content: "你好,请介绍一下你自己"
}
],
stream: true
});
for await (const event of stream) {
if (event.type === 'content_block_delta') {
if (event.delta.type === 'text_delta') {
process.stdout.write(event.delta.text);
}
}
}
} catch (err) {
console.error(err?.response?.data ?? err);
}
}
main();javascript
const Anthropic = require("@anthropic-ai/sdk");
const client = new Anthropic({
apiKey: process.env.AGENTSFLARE_API_KEY,
baseURL: "https://api.agentsflare.com/anthropic"
});
async function main() {
try {
const message = await client.messages.create({
model: "claude-sonnet-4-5-20250929",
max_tokens: 1024,
messages: [
{
role: "user",
content: "你好,请介绍一下你自己"
}
]
});
console.log(message.content[0].text);
} catch (err) {
console.error(err?.response?.data ?? err);
}
}
main();go
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/anthropics/anthropic-sdk-go"
"github.com/anthropics/anthropic-sdk-go/option"
)
func main() {
apiKey := os.Getenv("AGENTSFLARE_API_KEY")
if apiKey == "" {
log.Fatal("missing env AGENTSFLARE_API_KEY")
}
client := anthropic.NewClient(
option.WithAPIKey(apiKey),
option.WithBaseURL("https://api.agentsflare.com/anthropic"),
)
ctx := context.Background()
message, err := client.Messages.New(ctx, anthropic.MessageNewParams{
Model: anthropic.F("claude-sonnet-4-5-20250929"),
MaxTokens: anthropic.F(int64(1024)),
Messages: anthropic.F([]anthropic.MessageParam{
anthropic.NewUserMessage(anthropic.NewTextBlock("你好,请介绍一下你自己")),
}),
})
if err != nil {
log.Fatalf("message creation failed: %v", err)
}
fmt.Println(message.Content[0].Text)
}响应示例
非流式响应
json
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "你好!我是Claude,是由Anthropic开发的AI助手。我的特点是能够进行深入、细致的对话,帮助用户解决各种问题。我可以协助你完成写作、分析、编程、学习等多种任务。有什么我可以帮助你的吗?"
}
],
"model": "claude-sonnet-4-5-20250929",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 15,
"output_tokens": 89
}
}流式响应
json
event: message_start
data: {"type":"message_start","message":{"id":"msg_123","type":"message","role":"assistant","content":[],"model":"claude-sonnet-4-5-20250929","stop_reason":null,"usage":{"input_tokens":15,"output_tokens":0}}}
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":"你好"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"!"}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"output_tokens":89}}
event: message_stop
data: {"type":"message_stop"}请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,如 claude-sonnet-4-5-20250929 |
| messages | array | 是 | 消息数组,包含 role 和 content |
| max_tokens | integer | 是 | 最大生成token数 |
| stream | boolean | 否 | 是否启用流式响应,默认为false |
| temperature | float | 否 | 采样温度,范围0-1,默认为1 |
| top_p | float | 否 | 核采样参数,默认为1 |
| top_k | integer | 否 | Top-k采样参数 |
| system | string | 否 | 系统提示词 |
特性说明
流式输出
Claude API 支持流式输出(SSE),通过设置 stream: true 启用。流式响应可以实时获取生成内容,提供更好的用户体验。
系统提示词
Claude 支持通过 system 参数设置系统级提示词,用于定义助手的角色和行为。
Prompt Caching(提示缓存)
Claude API 支持 Prompt Caching 功能,允许缓存 system 或 messages 中的大段上下文(如项目规范、参考文档等),后续请求可复用缓存内容,显著降低 token 消耗和响应延迟。
使用限制
| 项目 | 限制 |
|---|---|
| 最小缓存 token 数 | 1024 tokens(缓存内容不足 1024 tokens 不会被缓存) |
| 单次缓存有效期 | 300 秒(5 分钟),每次被命中后自动刷新过期时间 |
使用方式
在 system 中使用数组格式,对需要缓存的内容块添加 cache_control 字段。
建议
在缓存的 text 开头添加项目名称标识(如 [Project: project-alpha]),可以有效实现不同项目之间的缓存资源隔离,避免缓存内容混用。
bash
curl -s https://api.agentsflare.com/anthropic/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-5-20250929",
"max_tokens": 1024,
"system": [
{
"type": "text",
"text": "[Project: project-alpha]\n\n这里放置需要缓存的大段上下文内容,例如项目规范、技术文档、代码标准等...",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [
{
"role": "user",
"content": "基于上述规范,帮我review这段代码。"
}
]
}'响应示例
首次请求(创建缓存):
json
{
"usage": {
"input_tokens": 29,
"cache_creation_input_tokens": 2480,
"cache_read_input_tokens": 0,
"output_tokens": 655
}
}后续请求(命中缓存):
json
{
"usage": {
"input_tokens": 33,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 2480,
"output_tokens": 1024
}
}返回字段说明
| 字段 | 说明 |
|---|---|
cache_creation_input_tokens | 本次新创建缓存的 token 数。大于 0 表示缓存创建成功 |
cache_read_input_tokens | 本次从缓存读取的 token 数。大于 0 表示缓存命中成功 |
input_tokens | 未被缓存的常规输入 token 数(如 messages 中的用户消息) |
注意事项
- API Key 安全:请勿在代码中硬编码 API Key,建议使用环境变量
- 请求频率:请遵守 API 调用频率限制
- 错误处理:建议实现完善的错误处理机制
- Token 限制:注意不同模型的上下文窗口限制