LiteLLM 是一个 开源的 LLM 统一接口与网关软件**,可以用 OpenAI 的 API 格式调用上百家大模型,并提供代理网关、负载均衡、成本追踪、密钥管理等生产级能力。
一、LiteLLM 是什么?
LiteLLM 是由 BerriAI 开发的 开源 Python 库 + 自托管 LLM 网关,目标是让开发者只用一套 OpenAI 风格的 API,就能调用来自不同厂商的模型,包括 OpenAI、Anthropic、Google Gemini、AWS Bedrock、Azure、Ollama、本地 vLLM、自托管模型等。
它本质上是一个 “大模型通用翻译器 + 统一网关”。
二、 LiteLLM 的核心功能
统一 API 接口:所有模型都用 OpenAI 的
/chat/completions格式调用。支持 100+~140+ 模型供应商、2500+ 模型(2026 年数据)。
代理服务器(LLM Gateway):提供 UI、虚拟密钥、预算、速率限制、路由、日志等。
负载均衡与故障切换:自动在多个模型间重试、fallback。
成本追踪与预算管理:可限制每个 key 的费用、TPM/RPM。
支持本地模型:如 Ollama、vLLM、自托管 Qwen/GLM。
三、LiteLLM 的两种使用方式
1) 作为 Python SDK
适合本地脚本、小型项目。
python
from litellm import completion
response = completion( model="openai/gpt-4o", messages=[{"role": "user", "content": "Hello"}]
)
2) 作为自托管 LLM 网关(推荐生产环境)
提供 Web UI(默认端口 4000)
管理 API Key、预算、模型路由
类似 OneAPI,但功能更强
四、LiteLLM 的典型用途
统一管理多个模型供应商
在 OpenAI、Claude、Gemini、DeepSeek 等之间自动切换
企业内部搭建统一 LLM 网关
为应用提供统一的 API 接入点
本地模型 + 云模型混合部署**
五、LiteLLM 与其他网关的对比(简表)
| 网关 | 覆盖模型 | 优势 | 适用场景 |
|---|---|---|---|
| LiteLLM | 140+ 供应商 / 2500+ 模型 | 功能最全、OpenAI 兼容、UI、预算、路由 | 需要统一管理多模型的团队 |
| Bifrost (Go) | 200+ | 超低延迟 | 高并发、极低延迟场景 |
| Cloudflare AI Gateway | 中等 | 边缘部署 | 全球边缘推理 |
六、ECS + Docker 的标准部署架构
代码
ECS
│
├── Docker
│ ├── LiteLLM Proxy(4000)
│ ├── Postgres(5432)
│ └── Redis(可选)
│
└── Nginx(监听 80/443)
↓
https://api.yourdomain.com
↓
http://127.0.0.1:4000 → LiteLLM
关键点:
4000 端口不暴露公网(安全组关闭)
Nginx 提供 HTTPS 域名
Postgres 提供虚拟密钥、日志、预算支持
七. docker-compose(生产可用)
yaml
services:
litellm:
image: ghcr.io/berriai/litellm:main-stable
container_name: litellm
ports:
- "4000:4000"
volumes:
- ./config.yaml:/app/config.yaml:ro
environment:
- DATABASE_URL=postgresql://litellm:${DB_PASSWORD}@postgres:5432/litellm
- LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY}
depends_on:
postgres:
condition: service_healthy
command: --config /app/config.yaml --port 4000
postgres:
image: postgres:14-alpine
container_name: litellm-db
environment:
- POSTGRES_DB=litellm
- POSTGRES_USER=litellm
- POSTGRES_PASSWORD=${DB_PASSWORD}
volumes:
- ./pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U litellm"] interval: 5s
retries: 5
八. 完整 config.yaml(GLM + MiniMax + Kimi + fallback + 路由)
yaml
#######################################################################
# LiteLLM 生产环境配置(GLM + MiniMax + Kimi + fallback + 路由)
#######################################################################
model_list:
# --- GLM 主模型 ---
- model_name: glm-4
litellm_params:
model: zhipu/glm-4
api_key: os.environ/ZHIPU_API_KEY
rpm: 200
tpm: 200000
# --- MiniMax ---
- model_name: minimax-6.5s
litellm_params:
model: minimax/abab6.5s
api_key: os.environ/MINIMAX_API_KEY
rpm: 200
tpm: 200000
# --- Kimi ---
- model_name: kimi-8k
litellm_params:
model: moonshot-v1-8k
api_key: os.environ/KIMI_API_KEY
rpm: 200
tpm: 200000
# ===========================
# 路由(按模型名自动转发)
# ===========================
router:
- model_name: glm
routing_strategy: simple
models:
- glm-4
- model_name: minimax
routing_strategy: simple
models:
- minimax-6.5s
- model_name: kimi
routing_strategy: simple
models:
- kimi-8k
# ===========================
# Fallback(多级容灾)
# ===========================
fallbacks:
glm-4:
- kimi-8k
minimax-6.5s:
- glm-4
- kimi-8k
kimi-8k:
- glm-4
# ===========================
# 全局设置
# ===========================
general_settings:
master_key: ${LITELLM_MASTER_KEY}
telemetry: false
timeout: 60
# ===========================
# 数据库(虚拟密钥 / 日志 / 预算)
# ===========================
database_url: ${DATABASE_URL}
# ===========================
# 安全设置(限制可用模型)
# ===========================
security_settings:
allowed_model_names:
- glm-4
- minimax-6.5s
- kimi-8k
- glm
- minimax
- kimi
九. 如何添加代理商模型(myproxy 示例)
LiteLLM 支持三类代理商:
① OpenAI 兼容代理商(最常见)
yaml
- model_name: myproxy
litellm_params:
model: openai/myproxy
api_base: https://api.myproxy.com/v1
api_key: os.environ/MYPROXY_API_KEY
rpm: 200
tpm: 200000
② LiteLLM 内置模型(如 Qwen/GLM/Kimi)
yaml
- model_name: myproxy
litellm_params:
model: qwen/qwen-max
api_key: os.environ/MYPROXY_API_KEY
③ 完全自定义 API(custom_openai)
yaml
- model_name: myproxy
litellm_params:
model: custom_openai
api_base: https://api.myproxy.com
api_key: os.environ/MYPROXY_API_KEY
十. rpm / tpm 的含义
| 字段 | 含义 | 示例 |
|---|---|---|
| rpm | requests per minute,每分钟最大请求数 | rpm: 200 → 每分钟最多 200 次请求 |
| tpm | tokens per minute,每分钟最大 Token 数 | tpm: 200000 → 每分钟最多 20 万 token |
LiteLLM 会自动节流,不会把超量请求打到代理商 API。
十一. 调用示例
bash
curl -X POST https://api.yourdomain.com/chat/completions \ -H "Authorization: Bearer sk-1234" \ -H "Content-Type: application/json" \ -d '{ "model": "glm", "messages": [{"role": "user", "content": "你好"}] }'