Skip to main content
如果你已经在用 OpenAI 的 API,切到 ByteSpike 就是改三个东西然后 发版。OpenAI SDK 不动;请求结构一样;只有 endpoint、key 和 model id 不同。

三处修改

就这些。你代码里剩下的部分 —— 工具定义、结构化输出、流式、重试 —— 原样跑。

Model id 映射

ByteSpike 的目录里 model id 基本和 OpenAI 一致,外加非 OpenAI provider 的 id: 完整的实时目录在 GET /v1/modelsbytespike.ai/pricing

你能多拿到什么

不变的东西

  • OpenAI SDK —— Python、TypeScript、Go,所有官方客户端。只改 base_url
  • 请求体结构 —— messagestoolstool_choiceresponse_formatstream 等等 —— 完全一致。
  • 响应结构 —— choices[].message.contenttool_callsusage —— 完全一致。
  • 流式协议 —— SSE 的 data: {json} + data: [DONE] —— 逐字节兼容。
  • 工具调用 —— 带 function 对象的 tools 数组 + tool_choice —— 完全一致。
  • 结构化输出 —— response_format: {type: "json_schema", ...} —— 完全一致(GPT 原生路径上;走 Claude/Gemini 路径时会翻译成该模型的原生形状)。

具体例子

聊天补全

工具调用

图像生成

Responses API(o-系列 + GPT-5 + agents)

对目录里所有模型都生效 —— ByteSpike 在背后会把 Responses 翻译成 非 GPT id 各模型的原生协议。

需要再确认的点

每把 ByteSpike key 绑到一个路由分组。挑包含你要调的模型的 分组。如果同一个客户端里要既调 GPT-5 又调 Claude,要么建两把 key(每个分组一把),要么挑一个多分组的 key 套餐。详见 模型
token 计数算法一致(OpenAI 模型用 OpenAI 的 tokenizer)。价格可能 不同 —— 非 OpenAI provider 在 ByteSpike 这边通常更便宜,OpenAI 透传则持平。实时费率:bytespike.ai/pricing
OpenAI 的 organizationproject 头会被接受但忽略 —— ByteSpike 自己有一套组织模型。要按项目归因消费,每个项目建一把 key 配独立的 quota
ByteSpike 不提供 OpenAI 的有状态 API(/files/assistants/vector_stores)。如果你依赖它们,那部分继续直连 OpenAI;chat completions 可以照常走 ByteSpike。两个客户端并存没问题。
同上 —— ByteSpike 没有 fine-tuning 接口。直连 fine-tune、直连 部署,chat 走 ByteSpike。

分步操作

  1. console.bytespike.ai 注册账号 —— 详见 注册账号
  2. 充值 至少 $5 用于真实测试 —— 详见 充值 credits
  3. 在匹配你所需模型的分组(default / claude-default / 等等)下创建一把 key
  4. 在代码里改一处 base_url + api_key
  5. 先打 gpt-5-4(直接替换)确认接线没问题,再去换模型。
  6. 逐个换上非 OpenAI idclaude-sonnet-4-6gemini-3-5-flashdeepseek-v4-pro)。
  7. 在一份代表性样本上对比 token 计数 + 延迟。非 OpenAI id 通常 ByteSpike 更有优势;OpenAI 透传持平。

反向迁移

要回到 OpenAI 直连,把上面三处修改反过来即可。想 A/B 路由就把两个 客户端一起留在代码里 —— 唯一不同的点只在 SDK 构造函数。

下一步

从 Anthropic 迁移

同样思路,Anthropic 那一边。

配置你的客户端

各 SDK 完整配置细节。

/chat/completions 参考

请求 / 响应 / 流式协议。

Models

迁移完后能调用的完整目录。