Anthropic SDK — GPUShare
用 Anthropic SDK 调用 GPUShare 网关 (Python / TypeScript / curl)
Anthropic SDK 接入 GPUShare
适用场景: 已经在用 Anthropic SDK 的项目可直接切换 base URL,代码零改动。 也可以用 Anthropic SDK 调用非 Claude 模型 (GPT / GLM / Grok / DeepSeek 等)。
端点
| 项 | 值 |
|---|---|
| Base URL | https://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-versionheader 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 端点
- Gemini 系列 (
- 配额耗尽 返回 HTTP 412 + Anthropic 风格错误对象
完整模型列表
支持 Anthropic Messages 的所有模型(除 Gemini 全系):
| 厂商 | 模型 |
|---|---|
| Anthropic | claude-opus-4-5-20251101, claude-sonnet-4-5-20250929 (原生直通) |
| OpenAI | gpt-5.4, gpt-5.5 |
| xAI | grok-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 |
| DeepSeek | deepseek-v3.1, deepseek-v3.2, deepseek-v4-flash, deepseek-v4-pro |
| Moonshot | kimi-k2.5, kimi-k2.6 |
| MiniMax | MiniMax-M2.5, MiniMax-M2.7 |
| Alibaba | qwen3.5-plus, qwen3.6-plus |
完整矩阵: 兼容矩阵