从 OpenAI 直连迁移
用 OpenAI SDK 切到本平台 —— 你只需改 2 行代码,立刻可调 90+ 个模型
已经在用 OpenAI SDK?切到本平台只需改 2 行代码,然后立刻可以调 90+ 个模型 (不只是 GPT)。
还没有
sk-gpushare-*Key?在 model.dflop.top/dashboard/keys 创建,注册即送 $0.30 体验额度,足够跑通本页全部示例。
改动点 (Python)#
from openai import OpenAI
# 原 OpenAI 直连
client = OpenAI(
- api_key="sk-...",
+ api_key="sk-gpushare-xxx",
+ base_url="https://api.dflop.top/v1",
)
就这两处。client.chat.completions.create(...) 之后的代码一行都不动。
改动点 (TypeScript)#
import OpenAI from "openai";
const client = new OpenAI({
- apiKey: process.env.OPENAI_API_KEY,
+ apiKey: process.env.PLATFORM_API_KEY,
+ baseURL: "https://api.dflop.top/v1",
});
改动点 (curl)#
- curl https://api.openai.com/v1/chat/completions \
+ curl https://api.dflop.top/v1/chat/completions \
- -H "Authorization: Bearer sk-..." \
+ -H "Authorization: Bearer sk-gpushare-xxx" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.4","messages":[{"role":"user","content":"Hello"}]}'
拿到的新能力#
切完 base URL,你的代码立刻能调用不只是 GPT:
# 同一个 client, 同一份代码, 不同 model
client.chat.completions.create(model="gpt-5.4", ...) # 还能调
client.chat.completions.create(model="claude-sonnet-4-6", ...) # 新增!
client.chat.completions.create(model="gemini-2.5-pro", ...) # 新增!
client.chat.completions.create(model="glm-5.1", ...) # 新增!
client.chat.completions.create(model="grok-4-fast-reasoning", ...) # 新增!
模型 ID 完整列表见 模型列表。
价格透明#
本平台公开透明定价(详见 模型广场 页面),GPT 系列与原厂同价 (截至 2026-06):
| Model | OpenAI 直连 ($/1M in/out) | 本平台 ($/1M in/out) |
|---|---|---|
gpt-5.4 | $2.50 / $15.00 | $2.50 / $15.00 |
gpt-5.5 | $5.00 / $30.00 | $5.00 / $30.00 |
每次调用账单完整记在 model.dflop.top/dashboard/usage,跟原厂账单一致;Key 管理在 model.dflop.top/dashboard/keys。
计费是预付费账户钱包:所有 Key 共享同一账户余额,余额耗尽时所有 Key 同时失效 (HTTP 402)。充值入口在主站 dflop.top/dashboard/billing (Stripe,最低 $1,与 model.dflop.top 同账号共享余额)。
改完之后必看#
1. tools 行为略有不同#
function工具完全兼容,行为跟 OpenAI 直连一致web_search工具支持gpt-5.4/gpt-5.5及部分 Claude / Gemini 型号 (完整清单见 兼容矩阵 与 模型列表 的能力列),必须配合stream=trueimage_generation工具同上,必须stream=true- 混用注意: 一旦
tools里混入web_search或image_generation,请求会走另一条翻译路径,此时多轮历史里 assistant 消息的tool_calls字段不回放 (gateway 只保留 assistant 文本;tool角色消息的tool_call_id仍透传)。纯function工具不受影响;重度多轮 function-call 场景建议不要混用内置工具 - 详见 工具调用
2. 流式响应跟原 OpenAI 一致#
stream=true + 同样的 SSE 协议。客户端解析代码不用改。详见 流式响应。
3. 错误格式一致#
本网关在 /v1/chat/completions 端点返回的错误保持 OpenAI 协议格式:
{"error": {"message": "...", "type": "...", "code": "..."}}
4. OpenAI endpoint 支持情况#
| 端点 | 状态 |
|---|---|
POST /v1/chat/completions | ✅ 完整支持 |
POST /v1/completions (legacy 补全) | ❌ 不支持 |
POST /v1/embeddings | ❌ 平台已于 2026-07 下架 embedding SKU,当前无可用模型(调用返回 404 model_not_found) |
POST /v1/audio/transcriptions (Whisper) | ❌ 不支持 |
POST /v1/audio/speech (TTS) | ❌ 不支持 |
POST /v1/images/generations | ✅ 支持,模型限 doubao-seedream-* / grok-imagine-* (按张计费,返回 URL 24h 过期);DALL-E / gpt-image-* 等 OpenAI 图像 id 不可用 —— GPT 风格出图用 chat.completions + tools=[{"type":"image_generation"}]。详见 图像 / 视频 / Embedding API |
POST /v1/responses | ✅ GPT-5.x / Claude / 多数第三方模型 —— 内置 web_search / image_generation;无 previous_response_id (gateway 无服务端会话状态),多轮请重发完整 input,gateway 会自动剥离历史里的 reasoning item |
GET /v1/models | ✅ —— 返回平台目录 (注意: 该端点仅支持 Authorization: Bearer / x-api-key 两种 header 鉴权,不支持 ?key=) |
如果你的应用强依赖 TTS / 语音转录,这部分需要继续走原厂。
另外本平台还提供 OpenAI 没有的端点: 异步视频生成 (按秒计费,见 图像 / 视频 / Embedding API) 与知识库检索 REST + MCP (见 知识库 API & MCP)。
完整 diff 示例#
原 OpenAI 直连#
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
resp = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Write a haiku"}],
)
print(resp.choices[0].message.content)
本平台#
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["PLATFORM_API_KEY"],
base_url="https://api.dflop.top/v1",
)
# 同样调 GPT
resp = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Write a haiku"}],
)
# 也能调 Claude
resp_claude = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Write a haiku"}],
)
常见问题#
Q: 我应该删 OPENAI_API_KEY 环境变量吗?#
不必。建议平行保留:
export OPENAI_API_KEY=sk-... # 原 OpenAI 直连
export PLATFORM_API_KEY=sk-gpushare-...
代码里显式指定用哪把:
# 关键时刻 fallback 回原厂
client = OpenAI(
api_key=os.environ.get("PLATFORM_API_KEY") or os.environ["OPENAI_API_KEY"],
base_url=os.environ.get("OPENAI_BASE_URL", "https://api.openai.com/v1"),
)
Q: 速率限制跟原 OpenAI 一样吗?#
不一样。本平台不强制 QPS 上限 (偶发 429 为上游限流透传),计费是预付费账户钱包: 所有 Key 共享同一账户余额,余额耗尽时所有 Key 同时返回 HTTP 402 (type insufficient_quota,code quota_exceeded)——新建 Key 不会带来新额度,充值才会 (dflop.top/dashboard/billing)。详见 鉴权 与 错误码。
Q: 重试逻辑要改吗?#
不用。OpenAI SDK 内置的指数退避对本平台同样有效。状态码语义跨服务保持一致 (错误码)。
Q: Function tools 的 tool_call_id 跨次会变吗?#
纯 function 工具路径下,本网关透传上游 ID,不重写,你的多轮工具回填代码不需改。但若同一请求混入了 web_search / image_generation 内置工具,历史中的 assistant tool_calls 不回放,见上文 tools 行为略有不同。
下一步#
- 选用什么模型最划算? 见 模型列表 §按用途速选
- 用 Anthropic SDK 还是 OpenAI SDK 调 Claude? 个人偏好。两个都跑通,选你熟的
- 客户端集成见 Cursor / Cline / Continue