Anthropic SDK — 本平台

用 Anthropic SDK 调用本网关——Claude 全系与跨厂商模型 (Python / TypeScript / curl)

适用场景: 已经在用 Anthropic SDK 的项目可直接切换 base URL,代码零改动。 也可以用 Anthropic SDK 调用非 Claude 模型 (GPT / Gemini / GLM / Grok / DeepSeek 等)。

前置条件#

  1. model.dflop.top 控制台创建 API Key (sk-gpushare- 前缀;创建后可在 Key 详情页随时重新查看)
  2. 注册即送 $0.30 体验额度,足够跑通本页全部示例;用完后在主站 dflop.top/dashboard/billing 充值 (Stripe,最低 $1,与 model.dflop.top 同账号共享余额)
  3. 所有 Key 共享账户余额 —— 余额耗尽时所有 Key 同时返回 402,新建 Key 不能解决额度问题。详见鉴权快速开始

端点#

Base URLhttps://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-version header 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):

厂商模型说明
Anthropicclaude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5-20251001X1,协议原生透传
Anthropicclaude-opus-4-5-thinking, claude-opus-4-6-thinkingbest-effort 通道:上游每轮注入约 400 token system prompt 开销,稳定性弱于直连
Googlegemini-2.5-flash-lite, gemini-2.5-flash-thinking, gemini-3-flash, gemini-3.1-pro-low已在本端点实测可用 (同上 best-effort 通道)
OpenAIgpt-5.4, gpt-5.5
智谱glm-4.7, glm-5-turbo, glm-5.1直连通道声明 Anthropic 协议

上表为常用组合;权威覆盖以兼容矩阵GET /v1/models (见 API 参考) 为准。不可用的「模型 × 协议」组合返回 HTTP 503,换端点或换模型即可。