Anthropic SDK — GPUShare

用 Anthropic SDK 调用 GPUShare 网关 (Python / TypeScript / curl)

Anthropic SDK 接入 GPUShare

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

端点

Base URLhttps://api.dflop.top (⚠️ 不带 /v1 —— SDK 自动加 /v1/messages)
端点/v1/messages (兼容 Anthropic Messages API)
鉴权x-api-key: sk-gpushare-xxx (Anthropic SDK 自动设置)
协议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-5-20250929",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, Claude"},
    ],
)
print(message.content[0].text)

流式输出

with client.messages.stream(
    model="claude-sonnet-4-5-20250929",
    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.4",
    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-5-20250929",
    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-5-20251101",
    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.GPUSHARE_API_KEY,
  baseURL: "https://api.dflop.top",
});

const message = await client.messages.create({
  model: "claude-sonnet-4-5-20250929",
  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-5-20250929",
  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.4",
  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: $GPUSHARE_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-5-20250929",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello, Claude"}
    ]
  }'

流式

curl https://api.dflop.top/v1/messages \
  -H "x-api-key: $GPUSHARE_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-5-20250929",
    "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": "..."}}
  • 不支持组合:
    • Gemini 系列 (gemini-2.5-*, gemini-3-*) 暂不支持 Anthropic Messages 端点 (T5 在 Phase 9 路线图)
    • 用 Gemini 模型时请改用 OpenAI Chat 或 Gemini Native 端点
  • 配额耗尽 返回 HTTP 412 + Anthropic 风格错误对象

完整模型列表

支持 Anthropic Messages 的所有模型(除 Gemini 全系):

厂商模型
Anthropicclaude-opus-4-5-20251101, claude-sonnet-4-5-20250929 (原生直通)
OpenAIgpt-5.4, gpt-5.5
xAIgrok-4, grok-4.1, grok-4.2, grok-4-fast-reasoning, grok-4-fast-non-reasoning
智谱glm-4.5/-air/-airx/-flash/-x, glm-4.6, glm-4.7, glm-5, glm-5-turbo, glm-5.1
DeepSeekdeepseek-v3.1, deepseek-v3.2, deepseek-v4-flash, deepseek-v4-pro
Moonshotkimi-k2.5, kimi-k2.6
MiniMaxMiniMax-M2.5, MiniMax-M2.7
Alibabaqwen3.5-plus, qwen3.6-plus

完整矩阵: 兼容矩阵