多模型 API 统一管理的方案对比:One API vs NewAPI vs LiteLLM
如果你手头同时有 DeepSeek、OpenAI、Claude 的 API Key,团队成员每人一套额度,还要做负载均衡和 Token 计费——这篇文章帮你选出最适合的方案。
一、背景:为什么需要多模型 API 网关
在 2026 年的今天,大模型已进入"多模型混用"时代。开发者和团队面临几个现实问题:
- 多厂商 Key 管理:OpenAI 的 GPT 系列、Anthropic 的 Claude、DeepSeek 的 V4、Google 的 Gemini,每个厂商的 API 格式、鉴权方式都不完全相同
- Token 成本和配额控制:不同模型价格差异很大(DeepSeek 约 ¥1/百万Token vs GPT-4 约 ¥150/百万Token),需要统一计费和控制每个用户的配额
- 负载均衡与高可用:单个 Key 有并发限制,多个 Key 需要轮询,厂商宕机时需要自动切换
- 多租户隔离:团队中不同项目、不同成员需要独立的 API 额度,但共用一个出口
解决方案就是 LLM API 网关——在调用者和各大模型 API 之间架设一层统一代理,对外统一为 OpenAI 格式接口,对内管理 Key、配额和路由。
目前主流的开源方案有三个:One API、NewAPI、LiteLLM。下面逐一分析。
二、三大方案介绍
2.1 One API — 社区经典,久经考验
GitHub: songquanpeng/one-api | Stars: 20k+ | 语言: Go
One API 是国内第一个成熟的开源 LLM API 网关项目。由 songquanpeng 开发维护,2023 年至今已迭代多年。
架构特点:
单进程 Go 应用,自带 SQLite/MySQL/PostgreSQL 存储
Web 管理后台(Vue.js 前端)
纯代理模式:接收 OpenAI 格式请求 → 映射到各厂商渠道 → 转发
核心功能:
| 功能 | 支持情况 |
|------|---------|
| 多模型渠道管理 | ✅ 支持 30+ 厂商 |
| Token 计费 & 配额 | ✅ 按分组/用户设置额度 |
| 负载均衡 | ✅ 同类型渠道按权重轮询 |
| 用户管理 | ✅ 多用户,生成独立 API Key |
| 日志 & 统计 | ✅ 请求日志、Token 消耗统计 |
| 兑换码 | ✅ 支持生成充值码 |
| API 格式兼容 | OpenAI 格式(返回统一转换) |
部署方式:
Docker 一键部署
docker run -d --name one-api
-p 3000:3000
-e SQL_DSN=“root:123456@tcp(localhost:3306)/oneapi”
-e REDIS_CONN_STRING=“redis://localhost:6379”
justsong/one-api:latest
2.2 NewAPI — One API 的进化版
GitHub: Calcium-Ion/new-api | Stars: 5k+ | 语言: Go
NewAPI 是 One API 的 Fork,作者在此基础上做了大量改进,目前更新活跃度已经超过原版。
相比 One API 的增强:
模型价格实时同步:自动从上游获取最新模型列表和价格(不再需要手动填价格)
更细粒度的权限控制:支持按模型、按渠道级别的精细化配额
流式响应优化:修复了原版在流式传输时的若干 Bug
多模型聚合路由:可以定义"虚拟模型"(如 gpt-best),自动路由到当前可用的最优渠道
数据看板:更完善的用量统计和可视化
代码示例 — 渠道配置 API:
// NewAPI 中渠道支持更灵活的配置
type Channel struct {
Type int // 渠道类型
Key string // API Key
BaseURL string // 自定义 Base URL(支持代理)
Models string // 模型列表(逗号分隔,* 表示全部)
Weight int // 权重(负载均衡用)
Group string // 分组
ModelMapping string // 模型名映射规则
}
适合场景:需要更多配置灵活性和更好的模型管理,同时对 NewAPI 社区更新有信心。
2.3 LiteLLM — 国际化的标准方案
官网: litellm.ai | GitHub: BerriAI/litellm | Stars: 20k+ | 语言: Python
LiteLLM 是国际上最流行的 LLM 网关方案,由 BerriAI 团队维护,已被多家企业采用。
架构特点:
Python 应用,基于 FastAPI,部署为一个轻量级 Proxy Server
提供 SaaS 版本(LiteLLM Cloud,付费)和自托管开源版
原生支持 100+ LLM 提供商
对 OpenAI SDK 完全兼容(更换 base_url 即可接入)
核心功能:
| 功能 | 支持情况 |
|---|---|
| 提供商兼容 | ✅ 100+ 厂商(pip install 对应包即可扩展) |
| 负载均衡 | ✅ 多种策略(轮询、最低延迟、自定义) |
| 成本追踪 | ✅ 每个请求的 Token 成本和延迟 |
| Virtual Keys | ✅ 为最终用户生成受限 Key |
| 回调 & 告警 | ✅ Webhook、Slack、Email、Langfuse |
| 预算管理 | ✅ 按 Key/用户/团队设置 Budget |
| Guardrails | ✅ 内容过滤、PII 脱敏 |
| 部署方式: |
pip 安装
pip install ‘litellm[proxy]’
启动 proxy
litellm --config ./config.yaml --port 4000
config.yaml 示例
model_list:
- model_name: gpt-4
litellm_params:
model: azure/gpt-4
api_key: os.environ/AZURE_API_KEY
api_base: os.environ/AZURE_API_BASE - model_name: deepseek-v4
litellm_params:
model: deepseek/deepseek-chat
api_key: os.environ/DEEPSEEK_API_KEY
router_settings:
routing_strategy: “usage-based-routing-v2” # 按用量智能路由
allowed_fails: 3
num_retries: 2
fallbacks:- gpt-4: [“claude-3-opus”] # GPT-4 不可用时 fallback 到 Claude
三、横向对比
| 维度 | One API | NewAPI | LiteLLM |
|---|---|---|---|
| 语言/栈 | Go + Vue.js | Go + React | Python (FastAPI) |
| GitHub Stars | 20k+ | 5k+ | 20k+ |
| 社区活跃度 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 厂商支持数 | 30+ | 40+ | 100+ |
| 部署复杂度 | 低(Docker 一行命令) | 低 | 中(需 Python 环境) |
| 管理后台 | ✅ 基础 | ✅ 增强版 | ✅ 企业级(SaaS 版) |
| 配额管理 | 按用户/分组 | 按用户/分组/模型 | 按 Key/用户/团队 |
| 负载均衡 | 权重轮询 | 权重轮询 + 聚合路由 | 多策略(轮询/最低延迟/智能路由) |
| Fallback | 手动配置 | 自动切换 | 自动 + 配置化 |
| 成本追踪 | 基础统计 | 增强看板 | 企业级(单次请求级) |
| 流式响应 | ⚠️ 偶有 Bug | ✅ 已优化 | ✅ 稳定 |
| 多租户 | ✅ | ✅ | ✅(Virtual Keys) |
| 告警/回调 | 无 | 无 | ✅ Webhook/Slack/Langfuse |
| 文档质量 | 中文为主 | 中文为主 | 英文为主(最详细) |
| 资源占用 | ~50MB 内存 | ~50MB 内存 | ~200MB 内存 |
| 四、选型建议 | |||
| 如果你的团队: | |||
| ├─ 团队 < 5 人,中文优先,快速上手 | |||
| │ → 选 NewAPI(One API 的升级版,社区更新快) | |||
| │ | |||
| ├─ 团队 5-20 人,需要费用核算和告警 | |||
| │ → 选 LiteLLM(成本追踪和回调能力完胜) | |||
| │ | |||
| ├─ 需要对接非主流模型或自定义适配 | |||
| │ → 选 LiteLLM(100+ 厂商,扩展性强) | |||
| │ | |||
| └─ 环境限制只能 Go,不想装 Python | |||
| → 选 NewAPI |
五、踩坑记录
踩坑 1:One API 流式响应偶发截断
现象:使用 One API 转发 DeepSeek 流式请求时,偶尔会丢失最后几个 Token,导致前端收到不完整响应。
原因:原版 One API 对某些 SSE 事件处理不够严谨,data: [DONE] 信号到达前连接被提前关闭。
解决:
迁移到 NewAPI(已修复此问题)
或使用 One API v0.6.5+ 版本,并设置环境变量 STREAM_RESPONSE_BUFFER_SIZE=4096
建议直接用 NewAPI
踩坑 2:LiteLLM 的 Azure OpenAI 模型映射陷阱
现象:LiteLLM 中配置 model: azure/gpt-4 可以工作,但使用 model: gpt-4(不指定 azure 前缀)无法路由到 Azure。
原因:LiteLLM 的模型解析依赖 Provider 前缀。省略前缀时,它默认从 OpenAI 标准 API 查找,不会 Fallback 到 Azure。
解决:在 model_list 中显式指定 model_name 和 litellm_params.model:
model_list:
- model_name: gpt-4 # 对外暴露的名称
litellm_params:
model: azure/gpt-4-turbo # 实际的 provider/model
api_key: …
api_base: …
这样用户调用 model: “gpt-4” 时自动路由到 Azure。
踩坑 3:NewAPI 中模型价格不自动更新
现象:配置 NewAPI 后,发现 Token 消耗统计的金额一直是 0 或错误。
原因:NewAPI 虽然支持"自动同步价格",但在某些网络环境中(如国内服务器访问 GitHub),价格更新请求会超时。
解决:
- 在管理后台 → 渠道 → 点击"同步价格"按钮
- 或手动在渠道设置中填入各模型价格
- 确保服务器能正常访问 https://raw.githubusercontent.com(可能需要代理)
踩坑 4:多网关的 Key 管理混乱
现象:用了 LiteLLM 做生产网关,用 NewAPI 做内部开发测试,导致同一个 DeepSeek Key 在两个网关同时消费,很难对账。
原因:同一把 Key 被多处使用,没有统一的配额控制。
建议:向下游厂商申请多个 Key(DeepSeek 支持创建子 Key),按网关分配不同 Key,方便独立计费。
踩坑 5:Docker 部署时的时区问题
现象:One API / NewAPI Docker 部署后,日志时间显示 UTC,统计报表按天划分的时间和北京时间不对。
解决:
docker run -d -p 3000:3000
-e TZ=Asia/Shanghai
calciumion/new-api:latest
六、总结
三个方案各有定位:
NewAPI 是 One API 的"增强版",适合中文社区、中小团队快速上手,部署最简单
LiteLLM 是企业级选择,成本追踪、告警、多策略路由能力最强,适合有专业运维能力的团队
One API 作为开创者已经足够稳定,但建议新项目直接用 NewAPI
从我个人的实践来看:初期用 NewAPI 快速搭建,跑通"多模型+多用户+配额管理"的 MVP,后续如果团队规模增长到需要精细化成本核算,再考虑迁移到 LiteLLM。两者都兼容 OpenAI 格式,客户端代码不需要改动,迁移成本很低。
最关键的一点:网关不是越复杂越好,能解决你当前问题的就是最好的。如果你的需求只是"让 3 个人共用 DeepSeek + OpenAI",NewAPI 一个 docker-compose.yml 就够,不需要上 LiteLLM 那一套。
本文由 AI 辅助生成,lotusxyhf 的数字分身自动发布。
如有问题,欢迎在评论区留言讨论。
如果对你有帮助,欢迎点赞收藏 👍