AI

LiteLLM:支持 100+ LLM 供应商的开源 AI 网关

LiteLLM 是一个热门的开源 Python SDK 和 AI 网关,为调用 100+ 个 LLM 供应商提供统一的 API,并附有成本追踪和负载均衡功能。

LiteLLM:支持 100+ LLM 供应商的开源 AI 网关

大型语言模型供应商的快速增长为开发者带来了新的挑战:每个供应商都有自己的 API 格式、认证方法、定价模型和功能集。与多个供应商集成——甚至是在它们之间切换——传统上需要重写大量的集成代码。LiteLLM 通过提供一个统一的、OpenAI 兼容的接口来解决这个问题,该接口可与超过 100 个 LLM 供应商协同工作。

由 BerriAI 开发,LiteLLM 已成为 AI 基础设施生态系统中最广泛采用的工具之一。它扮演双重角色:作为程序化访问的轻量级 Python SDK,以及作为可部署为团队和组织中央路由层的代理服务器(AI 网关)。

该项目的增长令人瞩目,这得益于一个实际情况:大多数生产级 AI 系统需要与多个 LLM 供应商交互——无论是为了冗余、成本优化,还是访问特定模型的能力。LiteLLM 将这种多供应商的复杂性简化为单一、一致的 API 调用。


LiteLLM 的统一 API 模型是如何工作的?

LiteLLM 的核心抽象概念出奇地简单:它提供一个单一的 completion() 函数,该函数接受一组标准化的参数并返回一个标准化的响应对象,无论哪个底层供应商处理请求。

graph LR
    A[你的应用程序] --> B[LiteLLM SDK / 代理]
    B --> C[OpenAI]
    B --> D[Anthropic]
    B --> E[Google Gemini]
    B --> F[Mistral / Together]
    B --> G[通过 Ollama/vLLM/TGI<br>的开源模型]
    B --> H[通过 OpenRouter / Bedrock<br>的 70+ 个供应商]
    C --> I[标准化响应]
    D --> I
    E --> I
    F --> I
    G --> I
    H --> I
from litellm import completion

# 相同的函数,不同的模型——只需更改字符串
response = completion(
    model="claude-3-5-sonnet-20241022",
    messages=[{"role": "user", "content": "Hello!"}]
)
# 或:model="gpt-4o"
# 或:model="gemini/gemini-1.5-pro"
# 或:model="mistral/mistral-large-latest"
# 或:model="ollama/llama3"

print(response.choices[0].message.content)

在底层,LiteLLM 处理供应商特定的认证、请求格式化、流式传输(SSE)、错误处理和重试、token 计数,以及响应标准化。响应对象始终遵循 OpenAI 格式,使得在不更改应用程序代码的情况下切换供应商变得轻而易举。


LiteLLM 支持哪些供应商和模型?

LiteLLM 的供应商支持是任何集成库中最广泛的之一,涵盖云 API、托管服务和自托管模型服务器。

供应商类别供应商示例模型集成方式
主要云服务OpenAI、Anthropic、Google、CohereGPT-4o、Claude 3.5 Sonnet、Gemini 1.5 Pro、Command R+直接 API 密钥
托管 AITogether AI、Fireworks、Groq、PerplexityLlama 3 70B、Mixtral 8x22B、DeepSeek R1API 密钥
聚合器OpenRouter、AWS Bedrock、GCP Vertex AI通过单一密钥访问 200+ 模型供应商 SDK
开源服务器Ollama、vLLM、TGI、LMI任何开放权重模型本地端点
企业Azure OpenAI、Watsonx、SageMakerGPT-4o (Azure)、Llama (Watsonx)云特定认证

列表随着新供应商进入市场而不断增长。LiteLLM 的社区积极贡献供应商实现,而 BerriAI 团队则维护与每个供应商不断演进的 API 的兼容性。


LiteLLM 代理(AI 网关)提供哪些功能?

除了 SDK 之外,LiteLLM 的代理模式是一个功能完整的 AI 网关,可以部署为组织中所有 LLM 使用的中央路由和管理层。

功能描述效益
OpenAI 兼容 API/v1/chat/completions/v1/embeddings可无缝替代 OpenAI SDK
负载均衡跨模型/密钥/供应商分配请求成本优化、冗余
速率限制每个用户、密钥、模型的速率限制成本控制、防止滥用
成本追踪每次请求的成本记录与预算警报支出可见性、费用分摊
缓存重复查询的语义缓存降低延迟、节省成本
日志记录详细的请求/响应日志记录至数据库审计、调试
护栏LLM 调用前后的内容过滤安全、合规
密钥管理具有使用限制的虚拟密钥团队管理

代理可以以 Docker 容器或 Kubernetes 服务的形式部署,使其易于集成到现有基础设施中。许多组织将其部署为所有 LLM 调用的唯一入口点,无需修改应用程序代码即可实现集中治理。

# 启动 LiteLLM 代理
docker run -p 4000:4000 \
  -e OPENAI_API_KEY=$OPENAI_API_KEY \
  -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
  ghcr.io/berriai/litellm:main-latest \
  --config ./proxy_config.yaml

# 像使用 OpenAI 一样使用它
curl http://localhost:4000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet-20241022",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

公司如何在生产环境中使用 LiteLLM?

生产环境的使用模式差异很大,但常见的部署架构揭示了 LiteLLM 如何融入 AI 基础设施堆栈。

使用场景架构使用的关键功能
多供应商冗余SDK 故障转移从主要供应商回退到次要供应商
团队成本管理具有虚拟密钥的代理每个团队的预算、使用仪表板
模型评估用于比较模型的 SDK切换模型字符串、比较输出
生产 LLM 服务具有负载均衡的代理高可用性、缓存、速率限制
离线开发具有本地模型的 SDK用于隐私的 Ollama/vLLM 后端

典型的企业部署模式是 LiteLLM 代理位于应用层和上游 LLM 供应商之间。开发者使用标准的 OpenAI SDK 与代理交互,无论哪个供应商最终处理请求,都能体验一致的 API。运维团队通过代理配置管理供应商密钥、成本限制和速率限制,无需更改应用程序。


常见问题

什么是 LiteLLM? LiteLLM 是由 BerriAI 开发的开源 Python SDK 和 AI 网关,为调用超过 100 个大型语言模型供应商提供统一的接口。它标准化不同供应商的输入和输出、支持成本追踪和预算管理、提供跨模型和密钥的负载均衡,并且可以部署为具有 OpenAI 兼容 API 的代理服务器。

LiteLLM 的统一 API 是如何工作的? LiteLLM 在标准化输入格式和每个供应商的原生 API 之间进行转换。你指定模型名称(例如 claude-3-5-sonnet-20241022),LiteLLM 会处理认证、请求格式化、流式传输、错误处理和响应解析。这意味着你可以通过更改一个字符串参数来切换供应商。

LiteLLM 支持成本追踪和预算管理吗? 是的,LiteLLM 有内置的成本追踪功能,记录每次请求的 token 使用量和相关成本。它支持每个用户和每个密钥的支出限制、预算警报,以及超出预算时的自动请求阻止。成本数据可以导出到 Datadog、Prometheus 或自定义 webhook 等监控工具。

LiteLLM 可以部署为代理服务器吗? 是的,LiteLLM 可以部署为代理服务器,公开一个 OpenAI 兼容的 API 端点。此代理处理所有上游供应商的认证、速率限制、负载均衡、缓存和日志记录。它可以通过 Docker、Kubernetes 或直接在 VM 上部署,使其适用于团队使用和生产环境。

LiteLLM 适合生产环境使用吗? 是的,LiteLLM 已被许多公司用于生产环境。它通过跨多个 API 密钥和供应商的负载均衡支持高可用性、缓存以降低成本与延迟、速率限制以防止滥用、详细日志记录以进行审计追踪,并且在代理模式下每分钟可处理数千个请求。


延伸阅读

TAG
CATEGORIES