直到2025年底,我们所有与聊天相关的内容都直接通过OpenAI运行。一个账户,一个密钥,一张账单。2026年1月,我们迁移到一个多模型聚合器。这是实际发生的情况。

我们曾经拥有的

  • OpenAI企业级——约$8k/月,涵盖所有平台
  • 所有聊天完成使用gpt-4ogpt-4o-mini
  • 一个嵌入模型,一个图像模型(DALL-E 3)
  • 四个服务的直接SDK集成

迁移的触发因素

  • Claude Opus 4.6在我们的代理编码评估中得分明显更高
  • Gemini 3 Pro成为长文本分析的明显赢家
  • 我们希望在不搭建推理基础设施的情况下测试开源模型(DeepSeek, Llama 4)
  • 运行五个供应商意味着五份合同,五个账单周期,五个速率限制仪表板

迁移过程

我们切换到一个兼容OpenAI的聚合器(实际上就是我们自己的产品——我们在生产中使用)。整个更改只需替换SDK中的baseURLapiKey。代码差异在四个服务中共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个供应商。

如果您在单个供应商上运行任何有意义的量,第一个月的切换就能收回成本。