多模型路由网关:用 LiteLLM / One API 在 VPS 上统一 100+ 大模型(2026)
2026-08-16 · DevCraft Studio
2026 年在 VPS 用 LiteLLM(Python,自动容灾与计费)或 One API(Go 单文件,额度管理)搭建 OpenAI 兼容网关,统一 Ollama、vLLM、OpenAI、Claude,含负载均衡、限流与缓存,一行切换模型并降本。
延伸阅读
更多相关攻略推荐:【年付性价比 01】年付 VPS 性价比排行 2026:同配置谁最值、团队知识库别再用在线文档了?BookStack 自托管 Wiki V、【10刀以内VPS系列 01】年付不到70块钱的便宜VPS,到底能用、【支付宝微信 02】支付宝/微信怎么买国外 VPS?2026 支持人、从 Git Push 到秒级上线:CI/CD 流水线与"无中断"发布。
为什么 2026 年你需要一个 LLM 网关
2026 年,大模型早已彻底商品化。OpenAI、Anthropic、Google Gemini、DeepSeek、智谱、通义千问等几十家厂商的模型百花齐放,但几乎所有团队都卡在同一个问题上:每接一家就要写一套调用代码,密钥散落各处,成本完全失控,单模型一挂整个业务就瘫。这正是 LLM 网关(AI Gateway)诞生的原因。
网关就是业务代码和上游模型之间的统一入口层。它把 100+ 家供应商的接口翻译成一套 OpenAI 兼容格式,业务层只写一套代码,用 model 参数一行切换模型。更重要的是,网关原生提供虚拟密钥管理、实时计费、负载均衡、自动故障转移、限流和缓存——这些能力直连 API 时你都得自己手搓,还容易踩坑。
开源社区里最流行的两套自建方案就是 LiteLLM 和 One API。前者是 Python 生态的 AI Gateway,主打自动 failover 和精细化计费;后者是 Go 写的单文件二进制,主打多租户额度分发。下面我们实测两种部署路径,并在一台便宜 VPS 上跑通。
举个真实场景:你的客服 Agent 同时接了 GPT-4o 做复杂意图理解、DeepSeek 做海量工单摘要、Claude 做合规校验。如果直连,三家 SDK 三种错误码,一家限流你就得手写重试和降级;账单更是糊涂账,月底才发现测试环境把 GPT-4o 跑爆了。而有了网关,这三家背后是同一个 /v1/chat/completions 端点,谁贵谁便宜、谁慢谁快,一张面板看全。这正是 2026 年做 AI 应用的基础设施标配。
LiteLLM 与 One API 怎么选
两者都能把模型统一成 OpenAI 格式,但定位不同,简单说:
- LiteLLM:Python 项目,GitHub 星标约 54k,Proxy 形态是生产级网关。强项是策略化智能路由(按成本、延迟、least_busy)、多厂商自动故障转移、虚拟密钥 + 预算上限、Prometheus 指标。适合需要把路由逻辑写进配置、对接 Langfuse / Grafana 的团队。
- One API:Go 单文件二进制,国内开发者社区极流行(songquanpeng/one-api,后续由 westgenesis 维护)。强项是开箱即用的管理后台、多用户与令牌、按分组的倍率计费、兑换码、渠道负载均衡与自动重试。适合要对外 SaaS 化分发 API、做额度售卖的场景。
如果你只是想给自己项目统一密钥和做容灾,LiteLLM 更顺手;如果你要给团队或客户发令牌并按量收费,One API 的后台更省心。两者都能跑在 1 核 2G 的入门 VPS 上。
选一台便宜 VPS 跑网关
网关本身不吃显卡,CPU 和内存够用就行。实测 1 核 2G 跑 LiteLLM Proxy 或 One API 完全没问题,2 核 4G 更从容。如果你还想在自家 VPS 上用 Ollama 或 vLLM 跑本地模型,建议选 4 核 8G、带一点 NVMe 的机型。
预算敏感的话,RackNerd 的入门 KVM 常年有年付几美元的活动机,放一个 One API 网关 + 几个轻量渠道足够;想要亚欧美多机房、按量更稳的可以看 CloudCone 的小内存实例。两者都是纯计算型 VPS,做 API 路由转发而不是训练,性价比很高。注意:网关会持有上游真实密钥,务必用防火墙只放行 4000/3000 端口,并套一层 Nginx + HTTPS。
LiteLLM 部署实战
最稳妥的方式是用官方 Docker 镜像,它锁定了依赖版本,不会踩到 PyPI 的坑(后面安全一节细说)。先写一份 docker-compose.yml:
version: "3.8"
services:
litellm:
image: ghcr.io/berriai/litellm:main-latest
ports:
- "4000:4000"
environment:
- DATABASE_URL=postgresql://llm:llm@db:5432/litellm
- LITELLM_MASTER_KEY=sk-master-替换为你的密钥
- LITELLM_SALT_KEY=替换为随机盐值
volumes:
- ./config.yaml:/app/config.yaml
command: ["--config", "/app/config.yaml"]
db:
image: postgres:16
environment:
- POSTGRES_USER=llm
- POSTGRES_PASSWORD=llm
- POSTGRES_DB=litellm
volumes:
- litellm_db:/var/lib/postgresql/data
volumes:
litellm_db:
主密钥和盐值请用 python -c "import secrets; print(secrets.token_hex(32))" 生成,别写死在文档里。接着写 config.yaml,定义模型列表与路由。注意 LiteLLM 读取环境变量用 os.environ/ 前缀,避免使用 shell 展开:
model_list:
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: os.environ/OPENAI_API_KEY
routing_weight: 2
- model_name: claude-3-7-sonnet
litellm_params:
model: anthropic/claude-3-7-sonnet-20250219
api_key: os.environ/ANTHROPIC_API_KEY
routing_weight: 1
- model_name: deepseek-chat
litellm_params:
model: deepseek/deepseek-chat
api_key: os.environ/DEEPSEEK_API_KEY
router_settings:
routing_strategy: least_busy
enable_fallbacks: true
fallbacks:
- [gpt-4o, claude-3-7-sonnet, deepseek-chat]
cache:
type: redis
redis_url: redis://redis:6379/0
ttl: 3600
general_settings:
master_key: sk-master-替换为你的密钥
port: 4000
启动后访问 http://你的IP:4000/ui 用主密钥登录,就能看到调用量、成本、延迟面板。业务侧只改一行 base_url 即可:
from openai import OpenAI
client = OpenAI(
api_key="sk-master-替换为你的密钥",
base_url="http://你的IP:4000/v1",
)
r = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "用一句话介绍你自己"}],
)
print(r.choices[0].message.content)
把 model 改成 gpt-4o 或 claude-3-7-sonnet,其余代码完全不动——这就是统一网关的价值。配合 fallbacks 配置,主模型超时或报错时网关会自动切到下一个,业务无感。
想给不同团队发独立密钥并设预算,用管理接口一行 curl 即可:给某个 team 发只能源 gpt-4o 和 claude 的密钥,限每分钟 60 次、预算封顶。这样即使前端项目被刷,损失也锁在预算内。LiteLLM 还暴露 Prometheus 指标端点 /metrics,配合 Grafana 能看到每模型请求量、失败率和成本曲线,运维一眼看穿瓶颈。
One API 部署实战
One API 是 Go 单文件,部署更轻。最省事的是 Docker 一条命令(默认 SQLite,数据量不大够用):
docker run -d --name one-api --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v /home/ubuntu/data/one-api:/data \
justsong/one-api
访问 http://你的IP:3000,默认账号 root / 123456,务必第一时间改密码。然后做三件事:
- 加渠道:左侧「渠道」→「添加渠道」,选类型(OpenAI / Anthropic / DeepSeek / Ollama 等),填密钥和可选 Base URL,设权重与分组。多个同类型渠道会自动轮询做负载均衡。
- 建令牌:左侧「令牌」→「新建令牌」,设名称和额度(美元),勾选允许访问的模型。这个令牌就是给业务用的统一 Key。
- 配分组倍率:左侧「用户分组」「渠道分组」可以给不同客户组设置倍率(如 1.5x 加价)和模型白名单,做 SaaS 分发很方便。
One API 的额度公式是:分组倍率 × 模型倍率 ×(提示 token + 补全 token × 补全倍率)。这套设计让你不用改代码就能按量收费、做兑换码充值。调用方式和 LiteLLM 一样,把 openai.api_base 指向 3000 端口即可。
例如给外部客户组设 1.5x 倍率、只允许基础模型,内部运维组设 5x 倍率做压测,免费组初始发 10 美元额度——全部在后台点几下就完成,无需写代码。配合「兑换码管理」批量生成面额卡,销售直接发给客户「扫码立领 5 美元额度」,零摩擦拉新,这是 One API 做 SaaS 分发最香的环节。
统一 Ollama、vLLM、OpenAI、Claude
很多人忽略的一点:网关不只是转发云端模型,也能把自建推理接进来,做混合路由。比如你在同一台 VPS 或内网跑 Ollama,在 One API 里选 Ollama 类型、Base URL 填 http://内网IP:11434 即可;LiteLLM 里写 model: ollama/llama3,并配 api_base: http://内网IP:11434。用 vLLM 起一个 OpenAI 兼容服务后,直接当 openai/ 类型接进网关即可。这样低成本本地模型处理简单任务,云端强模型兜底复杂推理,成本能显著下降。
负载均衡、限流与缓存
三块能力两家都支持,但配置位置不同:
- 负载均衡:LiteLLM 用 routing_weight + routing_strategy(round_robin / least_busy / latency_based);One API 在渠道上设权重,多个同模型渠道自动轮询。
- 限流:LiteLLM 在 /key/generate 时设 rate_limit(requests_per_minute、tokens_per_minute),也可在 server_settings 调 workers、timeout;One API 在令牌上设额度和限速,高并发建议接 Redis 做分布式限流。
- 缓存:LiteLLM 原生支持 Redis 缓存,重复 system prompt 命中缓存直接省 token;One API 通过 Redis 降低数据库访问延迟、提升同步效率。
实测把高频的固定提示词开启缓存后,重复请求成本能省一大截;再配合路由策略把非核心任务导向便宜模型,整体账单下降 50% 以上很常见。
安全:固定版本,别让网关成突破口
重点提醒:2026 年 3 月 24 日发生过 LiteLLM 供应链投毒事件。攻击者通过被攻破的 CI/CD 凭证,在 PyPI 推送了恶意版本 v1.82.7 和 v1.82.8,植入凭据窃取后门(窃取 AWS/GCP 密钥、Kubernetes Token、LLM Key 等),通过伪造域名 models.litellm.cloud 外泄。官方随后隔离了问题包,并发布安全版本 v1.83.0。结论是:千万不要 pip install litellm 不锁版本。自建时务必用官方 Docker 镜像(ghcr.io/berriai/litellm),它在 requirements.txt 里锁定依赖,不受影响;或显式 pip install litellm==1.83.0 之类固定版本。One API 是 Go 静态二进制,镜像 tag 也要固定到稳定版,别用 latest 裸跑生产。网关握着你所有上游密钥,它一旦失守就是全线崩溃,所以升级要走审批、版本要固定、端口要收口。