统一多家 LLM API:一个开源网关的设计思路

一位开发者开源了轻量级LLM网关,通过统一抽象层解决多模型接入的格式碎片化问题。
随着可用大语言模型数量激增,开发者面临一个普遍的工程痛点:每家LLM供应商在请求/响应格式、错误码和鉴权方式上各自为政,多模型项目中的适配代码重复且难以维护。一位独立开发者为此构建了一个轻量级LLM网关,在应用与各家模型之间插入统一抽象层,对外暴露单一标准接口,对内完成格式转换、错误映射和鉴权管理。这使得业务代码无需改动即可切换底层模型。文章同时探讨了自建网关与使用LiteLLM等现成开源工具之间的权衡,认为随着模型数量和路由需求的增加,提前规划这层抽象是提升AI应用可维护性的关键投入。
多模型接入的隐形成本
接入大语言模型(LLM)的开发者几乎都遇到过同一个痛点:每家供应商都有自己的请求与响应格式、错误码体系和鉴权方式。想从一个模型切换到另一个,往往意味着重写一套适配层代码。
一位独立开发者在社区分享了他的解决方案——一个轻量级的 LLM 网关(Gateway),目标很直接:把所有模型调用标准化到同一个接口之下。用他自己的话说,"每换一个厂商,我就在重复写同样的 adapter 代码",这正是促使他动手的原因。

问题到底出在哪
表面看,各家 API 都在做同一件事:发送 prompt、接收补全结果。但细节上差异巨大。
格式与协议的碎片化
不同厂商在三个层面各行其道:
- 请求/响应 Schema:字段命名、消息结构、参数名称各不相同,
messages、prompt、input等命名方式混用。 - 错误码:限流、超时、鉴权失败的返回方式缺乏统一标准,错误处理逻辑难以复用。
- 鉴权设置:有的用 Header 中的 API Key,有的走 OAuth,有的需要额外的组织 ID。
这些差异单独看都不难,但叠加在一个需要同时调用多个模型的项目里,就会演变成大量重复且易错的胶水代码。
值得注意的是,OpenAI 的 Chat Completions API 格式已经事实上成为行业参考基准——许多后起厂商(如 Mistral、Together AI)刻意兼容其 /v1/chat/completions 接口,以降低开发者迁移成本。然而这种"兼容"往往只是浅层的:函数调用(Function Calling)、流式输出(Streaming)的实现细节、工具调用(Tool Use)的字段命名,各家仍存在微妙差异。更麻烦的是,Google Gemini 和 Anthropic Claude 选择了完全不同的 Schema 设计,Gemini 使用 contents + parts 的嵌套结构,Claude 则将 system prompt 单独提取为顶层字段。这意味着即便只接入三家主流模型,适配层就已经需要处理至少三套不同的消息结构转换逻辑。
重复造轮子的代价
当业务需要在不同模型之间做 A/B 测试、成本优化或故障切换时,耦合在业务代码里的适配逻辑会成为负担。每接入一个新供应商,都要重新验证一遍格式转换、错误映射和重试策略,维护成本随供应商数量线性甚至非线性增长。
网关方案的核心价值
这个项目的思路是在应用与各家 LLM 之间插入一层统一网关,对外暴露单一接口,对内负责把标准请求翻译成各厂商的专有格式,并把响应归一化回来。
带来的直接好处是:
- 代码零改动切换模型:业务层只对接一套接口,更换底层模型不需要改调用代码。
- 集中式错误处理:错误码在网关层统一映射,上层逻辑无需为每家供应商写分支。
- 鉴权收敛:各家的 Key 与认证细节集中管理,减少散落在代码各处的密钥配置。
作者强调这只是为自己工作流打造的"side project",但它触及的是一个相当普遍的工程需求——随着可用模型越来越多,抽象层的价值会持续上升。
自建 vs 现成工具
作者在分享结尾抛出了一个值得讨论的问题:大家在项目里是如何处理多 LLM API 的?是自己写适配器,还是使用现成工具?
这其实是每个团队都要做的权衡:
- 自建网关:灵活可控,能精确匹配自己的业务需求,但需要持续维护,跟进各家 API 的变更。
- 现成工具:如一些开源的 LLM 代理/路由方案,开箱即用、社区维护成本低,但可能带来额外的抽象层开销或功能冗余。
对于只需要调用两三家模型的小项目,一个简单的自建网关往往足够;而当供应商数量、路由策略和可观测性需求变复杂时,成熟的开源网关会更省心。
现成的开源 LLM 网关/路由方案已有不少成熟选项,各自定位有所差异。LiteLLM 是目前社区使用最广的 Python 库,支持 100+ 模型,提供统一的 OpenAI 兼容接口,也可作为独立代理服务部署。PortKey 和 OpenRouter 则是托管型网关服务,无需自部署,适合快速验证。Martian 和 Unify 进一步提供智能路由能力,能根据请求特征自动选择性价比最优的模型。对于需要企业级可观测性(日志、计费、限流)的场景,Kong AI Gateway 等方案在传统 API 网关能力之上叠加了 LLM 专属功能。选型时除了功能匹配度,还需评估引入外部依赖对系统延迟的影响,以及供应商锁定的风险。
小结
多模型时代,统一接口层正在从"可选优化"变成"基础设施"。这个开源小网关虽然定位是个人工具,却清晰地说明了一个趋势:把供应商差异封装在一层之内,让业务代码保持与具体模型解耦,是提升 AI 应用可维护性的关键一步。无论是自建还是采用现成方案,提前规划这层抽象,都能在后续扩展模型时省下大量返工成本。
相关推荐

Agent Harness 已死?Cursor 早期工程师拆解 AI 编程代理真实架构
Cursor 早期工程师 Jediah 拆解 agent harness 的真实架构:为何「harness 已死」只对了一半,数据飞轮如何让 harness 自我淘汰,以及 Grokbot、软件工厂和原语设计如何打开 agent 的新前沿。

Python访问者模式与更优替代方案详解
深入解析Python访问者模式及四种替代方案:方法模式、模式匹配、字典映射与functools.singledispatch单分派。从节点与操作的双轴矩阵出发,帮你根据变化频率选择最合适的解耦设计。

357天深度体验:Omarchy为何让我告别发行版跳槽
连续使用 Omarchy 357 天的深度体验:59 秒安装、开箱即用的音频与 GPU 支持、Quattro 版本 QuickShell 重写带来的配置迁移阵痛,以及它为何值得 Arch 用户尝试。