BerriAI / litellm
BerriAI/litellm
最快的轻量级AI网关,Rust核心与Python SDK。以OpenAI(或原生)格式调用100多个LLM API,支持成本追踪、护栏、负载均衡和日志记录(支持Bedrock、Azure、OpenAI、Anthropic、VertexAI、vLLM、Nvidia NIM等)。
项目概览
项目概述
LiteLLM 是一个开源 AI 网关,提供统一的接口来调用 100+ 个 LLM 提供商(如 OpenAI、Anthropic、Gemini、Bedrock、Azure 等),支持 OpenAI 格式。它既可以作为 Python SDK 直接集成,也可以作为集中式 AI 网关(代理服务器)部署,供团队或组织使用。项目采用 Rust 核心与 Python SDK,强调高性能(P95 延迟 8ms @ 1k RPS)和企业级特性。
核心功能
- 统一 API:一个接口调用 100+ LLM,支持
/chat/completions、/responses、/embeddings、/images、/audio、/batches、/rerank、/a2a、/messages等端点。 - OpenAI 兼容:可无缝切换提供商,无需重写代码。
- AI 网关(代理服务器):提供虚拟密钥、成本追踪、护栏、负载均衡、管理仪表盘等生产级功能。
- A2A 智能体支持:支持调用 A2A 协议智能体(如 LangGraph、Vertex AI Agent Engine 等)。
- MCP 网关:连接 MCP 服务器到任意 LLM,支持通过
/chat/completions调用 MCP 工具。 - Python SDK:直接集成到代码中,支持 Router 重试/回退、负载均衡、成本追踪、可观测性回调。
- 多提供商支持:涵盖 Bedrock、Azure、OpenAI、Anthropic、VertexAI、vLLM、Nvidia NIM 等。
适用与不适用场景
适用场景:
- 需要统一管理多个 LLM 提供商的企业或团队。
- 希望以 OpenAI 格式调用不同模型,降低迁移成本。
- 需要集中式 API 网关,实现认证、成本控制、负载均衡和日志记录。
- 构建智能体或 MCP 工具,需要统一接入层。
不适用场景:
- 仅使用单一 LLM 提供商且无扩展需求的小型项目(可能引入额外复杂度)。
- 需要完全离线、无外部依赖的推理场景(LiteLLM 本身是网关,不提供模型推理)。
- 对延迟极度敏感且无法接受网关额外跳转的场景(尽管延迟很低,但仍有开销)。
技术架构与依赖
- 核心语言:Rust(核心)与 Python(SDK)。
- 主要依赖:Python SDK 依赖
openai、anthropic等客户端库;代理服务器依赖 FastAPI、Prisma(数据库 ORM)、Redis 等。 - 部署组件:支持 Docker、Helm、Terraform(AWS/GCP)等。
- 数据库:PostgreSQL(生产环境推荐)、Redis(缓存)。
- 前端:管理仪表盘基于 React(
ui/litellm-dashboard)。 - 签名验证:Docker 镜像使用 cosign 签名。
安装与快速开始
Python SDK 安装
uv add litellm
快速开始(Python SDK)
from litellm import completion
import os
os.environ["OPENAI_API_KEY"] = "your-openai-key"
response = completion(model="openai/gpt-4o", messages=[{"role": "user", "content": "Hello!"}])
AI 网关(代理服务器)安装与启动
uv tool install 'litellm[proxy]'
litellm --model gpt-4o
然后使用 OpenAI 客户端调用:
import openai
client = openai.OpenAI(api_key="anything", base_url="http://0.0.0.0:4000")
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}]
)
Docker 部署
仓库资料未提供具体的 Docker 运行命令,但提供了 Dockerfile(如 docker/Dockerfile.non_root)和镜像签名验证方法。
典型使用方法
调用 A2A 智能体(Python SDK)
from litellm.a2a_protocol import A2AClient
from a2a.types import SendMessageRequest, MessageSendParams
from uuid import uuid4
client = A2AClient(base_url="http://localhost:10001")
request = SendMessageRequest(
id=str(uuid4()),
params=MessageSendParams(
message={
"role": "user",
"parts": [{"kind": "text", "text": "Hello!"}],
"messageId": uuid4().hex,
}
)
)
response = await client.send_message(request)
通过网关调用 MCP 工具
curl -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Summarize the latest open PR"}],
"tools": [{
"type": "mcp",
"server_url": "litellm_proxy/mcp/github",
"server_label": "github_mcp",
"require_approval": "never"
}]
}'
使用 Router 进行负载均衡
仓库资料未提供具体 Router 代码示例,但文档提到支持 Router 重试/回退。
配置与部署要点
- 环境变量:需要设置各提供商 API 密钥(如
OPENAI_API_KEY)。 - 代理服务器配置:通过 YAML 配置文件(如
proxy_config.yaml)或环境变量配置模型、密钥、数据库等。 - 生产部署:推荐使用 Terraform 模块(AWS/GCP)或 Helm chart,组件化部署(网关、后端、UI 分离),使用托管 Postgres + Redis + 对象存储。
- 数据库迁移:部署时需运行
prisma migrate deploy。 - 安全:生产环境建议配置 ACM 证书(AWS)或 DNS 域名(GCP),避免明文 HTTP。
- 镜像签名验证:使用 cosign 验证镜像签名,推荐使用固定 commit hash 的密钥。
- 稳定版本:使用
-stable标签的 Docker 镜像,经过 12 小时负载测试。
限制、风险与许可证
- 许可证:仓库许可证字段为
NOASSERTION,但 README 提到存在 LiteLLM Commercial License(企业版),开源部分可能采用 MIT 或 Apache 2.0,具体需查看仓库 LICENSE 文件(仓库资料未提供)。 - 风险:作为网关,可能引入单点故障;依赖外部 LLM 提供商,其 API 变更可能影响兼容性;企业版功能可能受商业许可限制。
- 限制:不支持模型推理本身;需要网络连接访问 LLM 提供商;部分高级功能(如 SSO)可能仅限企业版。
官方链接
- GitHub 仓库:https://github.com/BerriAI/litellm
- 官方文档:https://docs.litellm.ai
- 官方网站:https://www.litellm.ai
- 模型支持列表:https://models.litellm.ai
- 最新版本:v1.96.0
信息来源和分析时间
- 信息来源:GitHub 仓库 README、CONTRIBUTING.md、最新 Release 信息。
- 分析时间:2026-08-10(基于最新 Release 发布时间)。