Anthropic SDK — 本平台
用 Anthropic SDK 调用本网关——Claude 全系与跨厂商模型 (Python / TypeScript / curl)
适用场景: 已经在用 Anthropic SDK 的项目可直接切换 base URL,代码零改动。 也可以用 Anthropic SDK 调用非 Claude 模型 (GPT / Gemini / GLM / Grok / DeepSeek 等)。
前置条件#
- 在 model.dflop.top 控制台创建 API Key (
sk-gpushare-前缀;创建后可在 Key 详情页随时重新查看) - 注册即送 $0.30 体验额度,足够跑通本页全部示例;用完后在主站 dflop.top/dashboard/billing 充值 (Stripe,最低 $1,与 model.dflop.top 同账号共享余额)
- 所有 Key 共享账户余额 —— 余额耗尽时所有 Key 同时返回 402,新建 Key 不能解决额度问题。详见鉴权与快速开始
端点#
| 项 | 值 |
|---|---|
| Base URL | https://api.dflop.top (⚠️ 不带 /v1 —— SDK 自动加 /v1/messages) |
| 端点 | /v1/messages (兼容 Anthropic Messages API) |
| 鉴权 | x-api-key: sk-gpushare-xxx (Anthropic SDK 自动设置;curl 直调时用 Authorization: Bearer sk-gpushare-xxx 亦可) |
| 协议 | Anthropic Messages (HTTP / SSE 流式) |
安装#
pip install anthropic # Python
npm install @anthropic-ai/sdk # TypeScript
Python#
基础调用#
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.dflop.top",
api_key="sk-gpushare-xxx",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello, Claude"},
],
)
print(message.content[0].text)
流式输出#
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Stream a haiku"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
跨厂商调用 (重点)#
Anthropic SDK 可以调用任何支持 Anthropic Messages 协议的模型 —— 不只是 Claude:
# 用 Anthropic SDK 调 GPT
message = client.messages.create(
model="gpt-5.5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
# 调 Gemini
message = client.messages.create(
model="gemini-3-flash",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
# 调 GLM
message = client.messages.create(
model="glm-5.1",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
# 调 Grok
message = client.messages.create(
model="grok-4-fast-reasoning",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
# 调 DeepSeek
message = client.messages.create(
model="deepseek-v3.2",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
Tool Use#
跟 Anthropic 原生 API 完全一致:
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=[{
"name": "get_weather",
"description": "Get the current weather",
"input_schema": {
"type": "object",
"properties": {
"city": {"type": "string"},
},
"required": ["city"],
},
}],
messages=[{"role": "user", "content": "Weather in Tokyo?"}],
)
for block in message.content:
if block.type == "tool_use":
print(block.name, block.input)
System Prompt#
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
system="You are a terse expert. Answer in one sentence.",
messages=[{"role": "user", "content": "Why is the sky blue?"}],
)
print(message.content[0].text)
TypeScript#
基础调用#
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.PLATFORM_API_KEY,
baseURL: "https://api.dflop.top",
});
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello" }],
});
console.log(message.content[0].type === "text" ? message.content[0].text : "");
流式输出#
const stream = client.messages.stream({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{ role: "user", content: "Stream a haiku" }],
});
stream.on("text", (text) => process.stdout.write(text));
await stream.finalMessage();
跨厂商调用#
// 用 Anthropic SDK 调 GPT
await client.messages.create({
model: "gpt-5.5",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello" }],
});
// 调 GLM
await client.messages.create({
model: "glm-4.7",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello" }],
});
curl#
非流式#
curl https://api.dflop.top/v1/messages \
-H "x-api-key: $PLATFORM_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, Claude"}
]
}'
流式#
curl https://api.dflop.top/v1/messages \
-H "x-api-key: $PLATFORM_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"stream": true,
"messages": [
{"role": "user", "content": "Stream a haiku"}
]
}' \
--no-buffer
注意事项#
- 必填字段
max_tokens—— Anthropic Messages 协议要求 (跟 OpenAI 不同) anthropic-versionheader SDK 自动设置;curl 直调时手动加2023-06-01- 错误格式 统一返回 Anthropic 风格:
{"type": "error", "error": {"type": "...", "message": "..."}}—— 错误体只有type+message,没有code字段。完整真值表见错误码参考 - 余额耗尽 返回 HTTP 402 +
{"type": "error", "error": {"type": "billing_error", "message": "..."}}。收到 402 应提示用户充值,不要重试 —— 余额是账户级的,新建 Key 也无济于事 - 模型白名单 Key 创建时若设置了
allowed_models,调用白名单外的模型返回 HTTP 400 (type: "invalid_request_error") - 超时与长输出 上游请求总时长上限约 180 秒(流式同样受此约束,只是更早拿到首 token)。大
max_tokens的长输出请用messages.stream/stream: true;超时表现为 HTTP 504 (type: "api_error")。建议客户端 SDK timeout 设为 ≥ 200 秒 - 模型 × 协议覆盖 模型存在但当前协议没有可用通道时返回 HTTP 503,换 OpenAI Chat 端点或换模型即可;权威覆盖见兼容矩阵
- 图像 / 视频 / Embedding 不走
/v1/messages,走独立端点,见图像 / 视频 / Embedding API
完整模型列表#
支持 Anthropic Messages 端点的模型 (截至 2026-07):
| 厂商 | 模型 | 说明 |
|---|---|---|
| Anthropic | claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5-20251001 | X1,协议原生透传 |
| Anthropic | claude-opus-4-5-thinking, claude-opus-4-6-thinking | best-effort 通道:上游每轮注入约 400 token system prompt 开销,稳定性弱于直连 |
gemini-2.5-flash-lite, gemini-2.5-flash-thinking, gemini-3-flash, gemini-3.1-pro-low | 已在本端点实测可用 (同上 best-effort 通道) | |
| OpenAI | gpt-5.4, gpt-5.5 | |
| 智谱 | glm-4.7, glm-5-turbo, glm-5.1 | 直连通道声明 Anthropic 协议 |
上表为常用组合;权威覆盖以兼容矩阵与
GET /v1/models(见 API 参考) 为准。不可用的「模型 × 协议」组合返回 HTTP 503,换端点或换模型即可。