当你同时接 OpenAI、Claude、DeepSeek、Gemini 时,最麻烦的往往不是选哪个模型,而是每个 SDK 的请求格式、Key 和计费口径都不一样。LiteLLM 就是为解决这件事而生的开源项目:它把多家模型统一成 OpenAI 兼容接口,并提供一个可以自建的网关。
本文讲清楚 LiteLLM 是什么、最小可用配置、路由与 Key 管理、部署方式,以及什么时候该自建、什么时候直接用托管网关。
说明:LiteLLM 是其权利人的开源项目,OpenAI、Anthropic、DeepSeek 等为各自权利人的商标。本文以 2026 年 10 月的常见版本为例,具体参数以官方文档为准。
一、LiteLLM 到底是什么
LiteLLM 有两个形态:
- Python SDK:在代码里用统一的
completion函数调用不同厂商的模型。 - Proxy 网关:一个独立服务,暴露 OpenAI 兼容的
/v1/chat/completions,任何支持自定义 Base URL 的客户端都能接。
它解决的是协议适配、路由和记账三件事,不解决模型本身好不好用。换句话说,它是管道,不是模型。
核心能力包括:
| 能力 | 作用 |
|---|---|
| 统一协议 | 多厂商模型走 OpenAI 格式 |
| 路由与负载均衡 | 同一个模型名分发到多个部署 |
| 故障转移 | 主模型失败时切到备用模型 |
| 虚拟 Key | 给团队或项目发独立 Key 和预算 |
| 用量与成本 | 记录请求、Token 和花费 |
| 日志回调 | 对接 Langfuse、OpenTelemetry 等系统 |
二、最小可用:pip 启动
先建虚拟环境,再安装带 proxy 的包:
python3 -m venv .venv
source .venv/bin/activate
pip install "litellm[proxy]"
写一个最小 config.yaml:
model_list:
- model_name: claude-sonnet
litellm_params:
model: anthropic/claude-sonnet-4-5
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: deepseek-chat
litellm_params:
model: deepseek/deepseek-chat
api_key: os.environ/DEEPSEEK_API_KEY
litellm_settings:
drop_params: true
general_settings:
master_key: os.environ/LITELLM_MASTER_KEY
启动:
export ANTHROPIC_API_KEY="sk-ant-你的密钥"
export DEEPSEEK_API_KEY="sk-你的密钥"
export LITELLM_MASTER_KEY="sk-litellm-本地管理密钥"
litellm --config config.yaml --port 4000
model_name 是对外暴露的名字,litellm_params.model 是真实的上游模型,格式通常是“厂商/模型名”。os.environ/XXX 表示从环境变量读取,不要把 Key 直接写进 yaml 再提交到仓库。
启动后用 OpenAI SDK 指向本地网关:
from openai import OpenAI
client = OpenAI(
api_key="sk-litellm-本地管理密钥",
base_url="http://127.0.0.1:4000",
)
resp = client.chat.completions.create(
model="claude-sonnet",
messages=[{"role": "user", "content": "只回复 OK"}],
)
print(resp.choices[0].message.content)
三、模型路由与故障转移
生产环境很少只挂一个上游。常见配置如下:
router_settings:
routing_strategy: simple-shuffle
num_retries: 2
timeout: 600
fallbacks:
- claude-sonnet: ["deepseek-chat"]
几个参数的含义:
routing_strategy:多个同模型部署之间怎么选,simple-shuffle是常见的起步选择。num_retries:失败重试次数,注意每次重试都会产生真实费用。timeout:单次请求超时,按业务最慢链路设置。fallbacks:主模型不可用时切到备用模型。
故障转移不是免费的。备用模型的输出风格、上下文长度、工具调用能力可能不同,切过去之后业务侧要能接受。对格式要求严格的场景,宁可明确报错,也不要静默降级。
四、虚拟 Key 与预算
团队共用一把 master key 是运维事故的起点。正确做法是给每个项目发虚拟 Key,并限制可用模型和预算:
curl -X POST "http://127.0.0.1:4000/key/generate" \
-H "Authorization: Bearer $LITELLM_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{
"models": ["claude-sonnet"],
"max_budget": 20,
"duration": "30d",
"metadata": {"project": "demo"}
}'
返回的 Key 交给业务方使用,master key 只留在运维手里。预算单位与币种以 LiteLLM 文档为准,这里只演示字段结构,不代表任何定价。
五、Docker 部署与上线检查
单机试用可以直接跑容器:
docker run -d --name litellm \
-p 4000:4000 \
-v "$(pwd)/config.yaml:/app/config.yaml" \
-e ANTHROPIC_API_KEY \
-e DEEPSEEK_API_KEY \
-e LITELLM_MASTER_KEY \
ghcr.io/berriai/litellm:main-latest \
--config /app/config.yaml
上线前至少检查这几项:
- 网关不要直接暴露公网,前面放 Nginx 或 Caddy 做 TLS 和访问控制。
- master key 用强随机值,不写进代码仓库。
- 需要用量入库时接 PostgreSQL,否则重启后部分统计会丢。
- 配好日志轮转和磁盘告警,请求日志增长很快。
- 留一条健康检查:
curl http://127.0.0.1:4000/health。 - 升级前先看 changelog,镜像固定版本标签,不要长期用 latest。
还有一点容易被忽略:网关是新的单点。它挂了,所有模型都挂。至少要做进程守护、自动重启和一条独立的告警链路。
六、日志与成本:别等账单来了才发现
网关的一个隐性价值是把调用记录下来。LiteLLM 可以记录每次请求的模型、Token、延迟和花费,并按 Key、团队、标签聚合。要把这件事做完整,需要三步:
- 配置数据库,让花费记录持久化,而不是只存在内存里。
- 给请求打标签,例如在 metadata 里写项目名,否则月底无法按项目拆分。
- 接一个可观测后端,把链路追踪和日志集中起来。
示例配置:
litellm_settings:
success_callback: ["langfuse"]
failure_callback: ["langfuse"]
general_settings:
database_url: os.environ/DATABASE_URL
注意两点:第一,回调服务自己也要高可用,回调阻塞可能拖慢主请求;第二,日志里可能包含用户原文,保留期限和访问权限要提前定好,不要把生产日志永久保存。
成本上,网关只能让你看见花费,不能自动让花费变少。真正省钱的动作还是选对模型、压缩上下文、控制重试次数。
七、自建还是用托管网关
| 维度 | 自建 LiteLLM | 托管 AI 网关 |
|---|---|---|
| 数据路径 | 完全自己控制 | 经过服务商 |
| 初始成本 | 低,装完就能跑 | 注册即用 |
| 长期运维 | 升级、备份、监控都归你 | 服务商负责 |
| 计费与发票 | 自己对接上游 | 统一人民币账单 |
| 灵活性 | 高,可改源码和路由 | 受平台能力边界 |
| 故障责任 | 自己兜底 | 按服务条款 |
一个实用的判断:
- 有运维、有合规要求、需要深度定制路由,选自建。
- 团队小、只想统一 Key 和账单、不想半夜修容器,选托管。
- 也可以先用托管跑通业务,等调用量稳定后再评估自建。
国内团队还要额外考虑网络。自建网关本身不解决上游可达性,上游访问不稳定时,网关只会把失败放大。这时“自建加国内可达的上游”或“直接使用托管网关”更现实。
如果你不需要改源码,只是想要一个 OpenAI 兼容入口、统一 Key 和人民币账单,托管网关通常注册当天就能跑通;LiteLLM 更适合作为需要长期维护的基础设施。两者也可以并存:内部用 LiteLLM 做路由,对外统一走托管入口。
八、常见问题
LiteLLM 是免费的吗?
开源部分可以自行部署,但上游模型的调用费用照常产生;企业版功能和托管服务的价格以官方为准。
它和 One API、New API 有什么区别?
One API 和 New API 更偏多用户额度分发,LiteLLM 更偏多模型路由和 SDK 统一。两者都能做 OpenAI 兼容入口,选型看你要的是计费分发还是路由能力。
支持 Claude 的原生工具调用吗?
支持程度取决于版本和上游适配。复杂工具调用、缓存等能力建议用真实请求验证,不要只看文档。
自建网关能省钱吗?
不一定。省下的是平台服务费,付出的是服务器、运维和故障时间。调用量很小时,托管通常更划算。
生产环境最少要配什么?
TLS、master key、虚拟 Key、预算上限、日志、数据库备份、健康检查,这几样缺一不可。
下一步
如果你想先验证多模型调用、又不想自己维护容器,可以 注册中商起航 AI 网关,用 OpenAI 兼容入口跑通第一条请求;模型与价格以 模型价格 为准。等调用量和合规要求明确后,再决定是否自建 LiteLLM。
相关阅读:
