📌 项目地址:BerriAI/litellm | ⭐ 60,548 颗星 | 🔧 Python | 📜 未标注

项目地址:BerriAI/litellm | ⭐ 60,548 | Python

它解决什么问题

你的应用一旦要同时用 OpenAI、Anthropic、Gemini、Bedrock、Azure 这几家模型,麻烦就来了:每家的 SDK 不一样,鉴权方式不一样,请求格式不一样,连报错的类型都不一样。代码里很快会堆满针对各家 provider 的分支判断。

LiteLLM 把这些全部收进一个接口里。所有模型都用 OpenAI 的格式调用,换 provider 只改参数,不改代码。支持 100 多家 provider。

官方数据:1k RPS 下 P95 延迟 8ms(测试细节见官方 benchmark 文档)。Netflix 是它的开源采用方之一。

两种用法

LiteLLM 有两种形态,看你的需求选。

Python SDK:装成库,直接在代码里调。适合个人项目或单体应用。

Proxy Server(AI Gateway):部署成独立服务,给整个团队当统一的模型入口。它自带一套生产环境需要的东西:虚拟密钥(可以给不同项目发不同的 key)、花费追踪、护栏、负载均衡、管理后台。多团队共用模型、要按项目分摊成本的场景,这四种能力都是刚需,自己从零搭一遍成本不低。

项目还有 Hosted Proxy(托管版)和 Enterprise Tier(企业版)两个商业选项,选型时留意区分哪些是付费功能。

SDK 怎么用

安装(README 用的是 uv):

uv add litellm

调用示例:

from litellm import completion
import os

os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["ANTHROPIC_API_KEY"] = "your-anthropic-key"

# OpenAI
response = completion(model="opena...

README 里这段代码在 model="opena 处被截断了,但意图明确:不同 provider 只换 model 参数的前缀(openai/、anthropic/ 之类),接口本身完全一样。

支持的端点不少:/chat/completions、/responses、/embeddings、/images、/audio、/batches、/rerank、/a2a、/messages。完整列表看官方文档(docs.litellm.ai/docs/supported_endpoints)。

litellm-core:一个容易踩的坑

README 用了不少篇幅讲一个独立发行版 litellm-core。它提供和 litellm 完全相同的 import litellm API 和运行时依赖,但不含可选依赖、CLI 入口和仪表盘。只想用 SDK 的话,装它更干净。

这里有个必须记住的限制:litellm 和 litellm-core 包含重叠的 Python 文件,同一个环境里只能装其中一个。装混了会出问题。我的建议很直接:要用 Proxy 或 CLI 就装完整的 litellm,只当库用就装 litellm-core,别在一个环境里换着装。

从源码构建 core 的命令:

python scripts/build_core_distribution.py --out-dir dist/core
python -m pip install dist/core/litellm_core-*.whl

构建环境需要 Git、uv 和 Rust 工具链。构建脚本从根目录的 pyproject.toml 读版本号,不改动源码文件,产物是 wheel 和一个自包含的 sdist,输出到 dist/core。README 特别强调:安装要在没有装过 litellm 的全新环境里执行。

什么情况下不该用

两点提醒。

一是如果你只调一家模型,也没有成本管控需求,直接用官方 SDK 就够了,中间加一层网关属于多余。

二是 README 没标开源许可证,商用前先去仓库确认;企业级功能走 Enterprise Tier,那是付费产品。

除此之外的场景,比如要在多家模型间做切换、给团队发 key 管预算、统一多个模型服务的入口,LiteLLM 值得认真看。60548 星和 Netflix 的生产使用,已经说明了它在同类项目里的位置。

这篇文章对你有帮助吗?

发表回复