直到2025年底,我们所有与聊天相关的内容都直接通过OpenAI运行。一个账户,一个密钥,一张账单。2026年1月,我们迁移到一个多模型聚合器。这是实际发生的情况。
我们曾经拥有的
- OpenAI企业级——约$8k/月,涵盖所有平台
- 所有聊天完成使用
gpt-4o或gpt-4o-mini - 一个嵌入模型,一个图像模型(DALL-E 3)
- 四个服务的直接SDK集成
迁移的触发因素
- Claude Opus 4.6在我们的代理编码评估中得分明显更高
- Gemini 3 Pro成为长文本分析的明显赢家
- 我们希望在不搭建推理基础设施的情况下测试开源模型(DeepSeek, Llama 4)
- 运行五个供应商意味着五份合同,五个账单周期,五个速率限制仪表板
迁移过程
我们切换到一个兼容OpenAI的聚合器(实际上就是我们自己的产品——我们在生产中使用)。整个更改只需替换SDK中的baseURL和apiKey。代码差异在四个服务中共8行。
// 之前
const openai = new OpenAI({ apiKey: process.env.OPENAI_KEY });
// 之后
const openai = new OpenAI({
apiKey: process.env.AIGEN_KEY,
baseURL: 'https://aimarcus.eu/aigenerate/api/v1',
});
账单的变化
- 聊天(GPT-4o → 基于任务的混合GPT-4o + Claude Sonnet):-22%
- 代理编码(转移到Claude Opus):+8%,但评估提高了15分
- 长文本分析(转移到Gemini 3 Pro):-40%
- 图像生成(从DALL-E 3转移到Nano Banana):-65%
月账单净影响:-28%。每个平台选择更好的模型 + 上游聚合器提供的更低每token费率,我们无需直接协商。
三个出错的地方
- 流式SSE格式差异。Claude的流式传输与OpenAI略有不同。我们的客户端缓冲逻辑中断了约10分钟,直到我们添加了兼容性填充。
- Token计数。不同模型的token化方式不同。我们的内部“每次对话使用的tokens”指标需要根据模型重新校准。
- 基于模型名称的缓存。我们的提示缓存使用
gpt-4o作为键。当我们开始将一些请求路由到Claude时,我们得到了过时的缓存命中。教训:始终在缓存键中包含模型。
我们会再这样做吗?
是的——出于三个与成本无关的原因。
- 选择权。当OpenAI在4月3日发生40分钟的停机时,我们的聊天平台继续运行,因为流量自动切换到Anthropic和Gemini。这本身就值得迁移。
- 模型平价已结束。2026年没有“最佳模型”。每个任务都有最佳模型。聚合是实际利用这一事实的方法。
- 一张账单。财务部门比工程部门更想要这个。一张发票,一个供应商关系,一个合同涵盖12个供应商。
如果您在单个供应商上运行任何有意义的量,第一个月的切换就能收回成本。