如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
🚅 LiteLLM
LiteLLM AI 网关
开源 AI 网关,支持 100 多种 LLM。可自托管。企业级就绪。以 OpenAI 格式调用任何 LLM。
LiteLLM Proxy Server (AI Gateway) | Hosted Proxy | Enterprise Tier | Website
LiteLLM 是一个开源 AI 网关,为您提供单一、统一的接口,可使用 OpenAI 格式调用 100 多种 LLM 提供商——OpenAI、Anthropic、Gemini、Bedrock、Azure 等。
您可以将其用作 Python SDK 进行直接库集成,或将 AI 网关(代理服务器) 部署为团队或组织的集中式服务。
跳转到 LiteLLM 代理(LLM 网关)文档 跳转到支持的 LLM 提供商
跨提供商管理 LLM 调用很快会变得复杂——每个模型都有不同的 SDK、身份验证模式、请求格式和错误类型。LiteLLM 消除了这种摩擦:
Netflix
LLM - 调用 100 多种 LLM(Python SDK + AI 网关)
所有支持的端点 - /chat/completions、/responses、/embeddings、/images、/audio、/batches、/rerank、/a2a、/messages 等。
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="openai/gpt-4o", messages=[{"role": "user", "content": "Hello!"}])
# Anthropic
response = completion(model="anthropic/claude-sonnet-4-20250514", messages=[{"role": "user", "content": "Hello!"}])
快速入门 - 端到端教程 - 设置虚拟密钥,发出第一个请求
uv tool install 'litellm[proxy]'
litellm --model gpt-4o
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!"}]
)
文档:LLM 提供商
代理 - 调用 A2A 代理(Python SDK + AI 网关)
支持的提供商 - LangGraph、Vertex AI Agent Engine、Azure AI Foundry、Bedrock AgentCore、Pydantic AI
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)
步骤 1. 将您的代理添加到 AI 网关
步骤 2. 通过 A2A SDK 调用代理
from a2a.client import A2ACardResolver, A2AClient
from a2a.types import MessageSendParams, SendMessageRequest
from uuid import uuid4
import httpx
base_url = "http://localhost:4000/a2a/my-agent" # LiteLLM proxy + agent name
headers = {"Authorization": "Bearer sk-1234"} # LiteLLM Virtual Key
async with httpx.AsyncClient(headers=headers) as httpx_client:
resolver = A2ACardResolver(httpx_client=httpx_client, base_url=base_url)
agent_card = await resolver.get_agent_card()
client = A2AClient(httpx_client=httpx_client, agent_card=agent_card)
request = SendMessageRequest(
id=str(uuid4()),
params=MessageSendParams(
message={
"role": "user",
"parts": [{"kind": "text", "text": "Hello!"}],
"messageId": uuid4().hex,
}
)
)
response = await client.send_message(request)
文档:A2A 代理网关
MCP 工具 - 将 MCP 服务器连接到任何 LLM(Python SDK + AI 网关)
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from litellm import experimental_mcp_client
import litellm
server_params = StdioServerParameters(command="python", args=["mcp_server.py"])
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# Load MCP tools in OpenAI format
tools = await experimental_mcp_client.load_mcp_tools(session=session, format="openai")
# Use with any LiteLLM model
response = await litellm.acompletion(
model="gpt-4o",
messages=[{"role": "user", "content": "What's 3 + 5?"}],
tools=tools
)
步骤 1. 将您的 MCP 服务器添加到 AI 网关
步骤 2. 通过 /chat/completions 调用 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"
}]
}'
{
"mcpServers": {
"LiteLLM": {
"url": "http://localhost:4000/mcp/",
"headers": {
"x-litellm-api-key": "Bearer sk-1234"
}
}
}
}
文档:MCP 网关
| 提供商 | /chat/completions | /messages | /responses | /embeddings | /image/generations | /audio/transcriptions | /audio/speech | /moderations | /batches | /rerank |
|---|---|---|---|---|---|---|---|---|---|---|
Abliteration (abliteration) | ✅ | |||||||||
AI/ML API (aiml) | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
AI21 (ai21) | ✅ | ✅ | ✅ | |||||||
AI21 Chat (ai21_chat) | ✅ | ✅ | ✅ | |||||||
| Aleph Alpha | ✅ | ✅ | ✅ | |||||||
| Amazon Nova | ✅ | ✅ | ✅ | |||||||
Anthropic (anthropic) | ✅ | ✅ | ✅ | ✅ | ||||||
Anthropic Text (anthropic_text) | ✅ | ✅ | ✅ | ✅ | ||||||
| Anyscale | ✅ | ✅ | ✅ | |||||||
AssemblyAI (assemblyai) | ✅ | ✅ | ✅ | ✅ | ||||||
Auto Router (auto_router) | ✅ | ✅ | ✅ | |||||||
AWS - Bedrock (bedrock) | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
AWS - Sagemaker (sagemaker) | ✅ | ✅ | ✅ | ✅ | ||||||
Azure (azure) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
Azure AI (azure_ai) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
Azure Text (azure_text) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
Baseten (baseten) | ✅ | ✅ | ✅ | |||||||
Bytez (bytez) | ✅ | ✅ | ✅ | |||||||
Cerebras (cerebras) | ✅ | ✅ | ✅ | |||||||
Clarifai (clarifai) | ✅ | ✅ | ✅ | |||||||
Cloudflare AI Workers (cloudflare) | ✅ | ✅ | ✅ | |||||||
Codestral (codestral) | ✅ | ✅ | ✅ | |||||||
Cohere (cohere) | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
Cohere Chat (cohere_chat) | ✅ | ✅ | ✅ | |||||||
CometAPI (cometapi) | ✅ | ✅ | ✅ | ✅ | ||||||
CompactifAI (compactifai) | ✅ | ✅ | ✅ | |||||||
Custom (custom) | ✅ | ✅ | ✅ | |||||||
Custom OpenAI (custom_openai) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
Dashscope (dashscope) | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
Databricks (databricks) | ✅ | ✅ | ✅ | |||||||
DataRobot (datarobot) | ✅ | ✅ | ✅ | |||||||
Deepgram (deepgram) | ✅ | ✅ | ✅ | ✅ | ||||||
DeepInfra (deepinfra) | ✅ | ✅ | ✅ | |||||||
Deepseek (deepseek) | ✅ | ✅ | ✅ | |||||||
ElevenLabs (elevenlabs) | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
Empower (empower) | ✅ | ✅ | ✅ | |||||||
Fal AI (fal_ai) | ✅ | ✅ | ✅ | ✅ | ||||||
Featherless AI (featherless_ai) | ✅ | ✅ | ✅ | |||||||
Fireworks AI (fireworks_ai) | ✅ | ✅ | ✅ | |||||||
FriendliAI (friendliai) | ✅ | ✅ | ✅ | |||||||
Galadriel (galadriel) | ✅ | ✅ | ✅ | |||||||
GitHub Copilot (github_copilot) | ✅ | ✅ | ✅ | ✅ | ||||||
GitHub Models (github) | ✅ | ✅ | ✅ | |||||||
| Google - PaLM | ✅ | ✅ | ✅ | |||||||
Google - Vertex AI (vertex_ai) | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
Google AI Studio - Gemini (gemini) | ✅ | ✅ | ✅ | |||||||
GradientAI (gradient_ai) | ✅ | ✅ | ✅ | |||||||
Groq AI (groq) | ✅ | ✅ | ✅ | |||||||
Heroku (heroku) | ✅ | ✅ | ✅ | |||||||
Hosted VLLM (hosted_vllm) | ✅ | ✅ | ✅ | |||||||
Huggingface (huggingface) | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
Hyperbolic (hyperbolic) | ✅ | ✅ | ✅ | |||||||
IBM - Watsonx.ai (watsonx) | ✅ | ✅ | ✅ | ✅ | ||||||
Infinity (infinity) | ✅ | |||||||||
Jina AI (jina_ai) | ✅ | |||||||||
Lambda AI (lambda_ai) | ✅ | ✅ | ✅ | |||||||
Lemonade (lemonade) | ✅ | ✅ | ✅ | |||||||
LiteLLM Proxy (litellm_proxy) | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
Llamafile (llamafile) | ✅ | ✅ | ✅ | |||||||
LM Studio (lm_studio) | ✅ | ✅ | ✅ | |||||||
Maritalk (maritalk) | ✅ | ✅ | ✅ | |||||||
| Meta - Llama API | ✅ | ✅ | ✅ |
使用已发布的 Terraform 模块,将 LiteLLM 代理作为生产就绪的组件化堆栈运行(网关、后端、UI 位于独立服务;托管 Postgres + Redis + 对象存储)。两个模块均位于 公共 Terraform Registry — 无需身份验证。
AWS — ECS Fargate + Aurora + ElastiCache + ALB
git clone https://github.com/BerriAI/litellm.git
cd litellm/terraform/litellm/aws/examples/default
cp terraform.tfvars.example terraform.tfvars # 编辑 region/tenant/env
terraform init && terraform apply
模块页面 →
或者从您自己的根配置中调用该模块:
# main.tf
terraform {
required_version = ">= 1.6.0"
required_providers {
aws = { source = "hashicorp/aws", version = "~> 5.60" }
}
}
provider "aws" {
region = "us-west-2"
}
module "litellm" {
source = "BerriAI/litellm/aws"
version = "~> 1.89"
region = "us-west-2"
azs = ["us-west-2a", "us-west-2b"]
tenant = "acme"
env = "prod"
# 生产环境:提供 ACM 证书。若未提供,设置 allow_plaintext_alb = true(仅开发/试用环境)。
# acm_certificate_arn = "arn:aws:acm:us-west-2:111122223333:certificate/..."
allow_plaintext_alb = true
}
output "litellm_url" {
value = module.litellm.alb_dns_name
}
terraform init
terraform apply
提供商 API 密钥存储在 AWS Secrets Manager 中;通过 gateway_extra_secrets 引用 ARN。完整输入列表和架构图请参见 注册表页面。
GCP — Cloud Run + Cloud SQL + Memorystore + HTTPS LB
真正的一键部署。打开 Cloud Shell,克隆此仓库,并通过内置的 DeployStack 教程 引导您完成 terraform apply — 选择项目后,教程会设置 Artifact Registry 远程仓库,根据您的回答编写 terraform.tfvars,并运行 apply。
模块页面 →
若要从您自己的配置中调用模块,由于 Cloud Run 无法直接从 ghcr.io 拉取镜像,因此需先设置一个由 GHCR 支持的一次性 Artifact Registry 远程仓库:
gcloud artifacts repositories create litellm \
--location=us-central1 \
--repository-format=docker \
--mode=remote-repository \
--remote-docker-repo=https://ghcr.io \
--project=my-gcp-project
然后:
# main.tf
terraform {
required_version = ">= 1.6.0"
required_providers {
google = { source = "hashicorp/google", version = "~> 6.10" }
google-beta = { source = "hashicorp/google-beta", version = "~> 6.10" }
}
}
provider "google" { project = "my-gcp-project"; region = "us-central1" }
provider "google-beta" { project = "my-gcp-project"; region = "us-central1" }
module "litellm" {
source = "BerriAI/litellm/google"
version = "~> 1.89"
project_id = "my-gcp-project"
region = "us-central1"
tenant = "acme"
env = "prod"
# 将 my-gcp-project 替换为您的 GCP 项目 ID(与上面的 project_id 值相同)。
image_registry = "us-central1-docker.pkg.dev/my-gcp-project/litellm/berriai"
# 生产环境:提供已指向 LB IP 的 DNS 以使用 Google 托管证书。
# 若未提供,设置 allow_plaintext_lb = true(仅开发/试用环境)。
# lb_domains = ["proxy.example.com"]
allow_plaintext_lb = true
}
output "litellm_url" {
value = module.litellm.load_balancer_url
}
terraform init
terraform apply
提供商 API 密钥存储在 Secret Manager 中;通过 gateway_extra_secrets 引用资源 ID(例如 projects/my-gcp-project/secrets/openai-api-key)。完整输入列表和架构图请参见 注册表页面。
两个堆栈均包含
LITELLM_MASTER_KEYprisma migrate deploy 的一次性迁移作业proxy_config 接口 — 将 YAML 作为类型化映射传递Terraform 模块位于此仓库的 terraform/litellm/aws/ 和 terraform/litellm/gcp/;注册表条目是只读镜像,在每次发布时更新。
提交哈希在加密学上是不可变的,因此这是确保您使用原始签名密钥的最可靠方式:
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
ghcr.io/berriai/litellm:
使用发布标签验证(便捷方式):
标签在本仓库中受到保护,且解析为相同的密钥。此选项更易读,但依赖于标签保护规则:
cosign verify \
--key https://raw.githubusercontent.com/BerriAI/litellm/ /cosign.pub \
ghcr.io/berriai/litellm:
将 `` 替换为您要部署的版本(例如 v1.83.0-stable)。
面向需要更优安全性、用户管理和专业支持的企业
获取企业版许可证 与创始人交流
包含以下内容:
我们欢迎对LiteLLM的贡献!无论是修复漏洞、添加功能还是改进文档,我们都感谢您的帮助。
需要安装uv。
git clone https://github.com/BerriAI/litellm.git
cd litellm
make install-dev # 安装开发依赖
make format # 格式化代码
make lint # 运行所有 lint 检查
make test-unit # 运行单元测试
make format-check # 仅检查格式化
有关详细的贡献指南,请参阅CONTRIBUTING.md。
📖 想要贡献文档? LiteLLM文档已迁移到单独的仓库:https://github.com/BerriAI/litellm-docs%E3%80%82%E8%AF%B7%E5%9C%A8%E8%AF%A5%E4%BB%93%E5%BA%93%E6%8F%90%E4%BA%A4%E6%96%87%E6%A1%A3PR%E3%80%82%E6%96%87%E6%A1%A3%E6%89%98%E7%AE%A1%E4%BA%8Edocs.litellm.ai%E3%80%82
LiteLLM遵循https://google.github.io/styleguide/pyguide.html%E3%80%82
我们的自动化检查包括:
在PR合并前,所有这些检查都必须通过。
来自真实用户的反馈,见证轩辕镜像的优质服务