迁移指南从 LiteLLM
从你自己运行的 LiteLLM 代理,迁到不用自己运行的方案
LiteLLM 是两样东西:一个可与 100 多家提供商对话的 Python SDK,以及一个你用 Postgres 和 Redis 部署的代理,后者增加了虚拟密钥、预算、回退和缓存。两者都运行在你自己的提供商密钥上,INFRO 也是如此。改变的是由谁来运行代理。本页把代理的配置对应到 INFRO,并展示如何保留 SDK。
BerriAI 的 MIT 开源项目,另有需要许可证的 Enterprise 版本;自托管
INFRO 账号可自助开通。 模型目录、文档和 API 契约已公开,网关已部署,v1 之后的所有功能都标注为“后续”。 套餐与试用
现状
许可证和版本
enterprise/ 目录之外的一切均为 MIT 许可;Enterprise 是附带许可证密钥的同一个镜像,增加了 SSO、SCIM、审计日志、密钥管理器和支持。
2026 年的安全公告
LiteLLM 自己的博客列出了:2026-03-24 litellm 1.82.7 和 1.82.8 在 PyPI 上遭到入侵(官方 Docker 镜像未受影响;干净的 1.83.0 于 2026-03-30 发布)、代理密钥验证中的 SQL 注入(已在 1.83.7 修复,2026-04-29),以及 Host 头认证绕过(已在 1.84.0 修复,2026-06-01)。运行代理意味着这些都需要你自己跟进。
由谁的账号处理请求
是你,两款产品都一样。LiteLLM 从不持有提供商账号,INFRO 也不持有;你的提供商直接向你收费。
LiteLLM 免费、开放,可在任何地方运行。如果这些正是你选择它的原因,它们依然是好理由。
- 流量不得离开你的网络,或者你必须能阅读并修补网关的代码。INFRO 是托管且闭源的;自托管或混合部署需要企业协议。
- 你使用语义缓存、上下文窗口或内容策略回退、A2A 智能体网关,或回调到特定的日志厂商。INFRO 有精确匹配缓存、路由失败规则、MCP 网关和 OpenTelemetry 导出。
- 你调用 INFRO 没有连接的提供商,或它不提供的端点:批处理、文件、微调、Realtime,以及除 OpenAI、Azure OpenAI、Mistral 或兼容 OpenAI 的端点之外的提供商上的嵌入。
- 运行它几乎不花你什么成本,因为平台团队已经负责 Postgres、Redis 和升级。
需要的修改,每项一行。未在此列出的内容都保持不变。
| LiteLLM | INFRO | |
|---|---|---|
| 基础 URL | 你的代理,例如 http://0.0.0.0:4000。 | https://api.infro.io/v1 |
| 密钥 | 来自 /key/generate 的 LiteLLM 虚拟密钥(sk-...)。 | 在控制台或管理 API 中创建的 INFRO 网关密钥。提供商密钥从 litellm_params 迁移到 INFRO 连接。 |
| 模型 ID | 来自 model_list 的 model_name,例如 gpt-4o。 | 一条同名路由规则,这样调用方可以继续发送它,或者直接使用 vendor/model。 |
| 请求体字段 | metadata { tags, trace_id, trace_user_id, generation_name }, cache { ttl, namespace }, user. | metadata { user_id, session_id, tags },用于响应缓存的 cache,用于追踪 id 的 X-INFRO-Trace-Id。 |
之前 · LiteLLM proxy
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "http://0.0.0.0:4000",
apiKey: process.env.LITELLM_API_KEY, // virtual key
});
await client.chat.completions.create({
model: "claude-default", // model_name in model_list
messages: [{ role: "user", content: "Hello" }],
user: "user-123",
// @ts-expect-error LiteLLM extension
metadata: { tags: ["production"] },
});之后 · INFRO
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.infro.io/v1",
apiKey: process.env.INFRO_API_KEY,
});
await client.chat.completions.create({
model: "claude-default", // an INFRO route, same name
messages: [{ role: "user", content: "Hello" }],
// @ts-expect-error INFRO extension
metadata: { user_id: "user-123", tags: { env: "production" } },
});`model_list` 变成路由
每个拥有多个部署的 model_name 会变成带这些目标的路由;rpm 权重变成加权目标;router_settings.fallbacks 变成路由靠后的目标或 fallbacks。
保留 SDK
LiteLLM 的兼容 OpenAI 的提供商会把 openai/ 之后的全部内容作为模型 id 发送,因此 openai/anthropic/claude-sonnet-5.5 到达 INFRO 时是 anthropic/claude-sonnet-5.5。回退随后在 INFRO 中发生,而不是在 SDK 中。
或者把代理保留在 INFRO 之后
迁移期间,可将代理作为 openai-compatible 连接接入。请注意,此时 INFRO 只会把代理视为一个提供商,因此在你直接连接各提供商之前,按提供商的故障转移和成本仍在 LiteLLM 内部处理。
LiteLLM 的对象与 INFRO 的对照,依据 2026年10月19日 阅读的 LiteLLM 公开文档,并已按网关实际实现的内容核对。 有一行显示 INFRO 没有对应项。
| LiteLLM | 它在那里的作用 | 在 INFRO 中 |
|---|---|---|
| `model_list` 和 `litellm_params`形式相同 | 按模型名称划分的部署,提供商密钥保存在配置中。 | 提供商连接(密钥加密存放,每个提供商可有多个)以及基于它们的路由。 |
| 虚拟密钥形式相同 | 由代理签发的密钥,带允许的模型、预算、tpm 和 rpm、团队和用户。 | 网关密钥可设置允许的模型、提供商、IP 范围、环境、支出限额和请求速率档位;支持轮换和停用开关。 |
| 团队、用户、预算形式相同 | 按密钥、团队或用户的 max_budget 和 budget_duration。 | 按组织、项目、成员、密钥和终端客户设置预算,在并发下依然生效,在调用提供商之前到达上限即返回 402。 |
| tpm 限制不同 | 按密钥或部署的每分钟 token 限制。 | 按密钥划分的请求速率档位和美元预算。没有每分钟 token 限制。 |
| 回退和重试形式相同 | fallbacks、num_retries、冷却、allowed_fails。 | 路由目标和按类型划分的失败规则(重试、故障转移或停止);按请求的 fallbacks。 |
| 上下文窗口和内容策略回退不同 | 当提示词过长或被提供商的策略拒绝时,改用另一个模型。 | moderation 故障规则可以故障转移到下一个目标。没有上下文窗口回退。 |
| 缓存不同 | 基于 Redis、S3、GCS、Qdrant 等的精确缓存和语义缓存。 | 精确匹配,需主动开启,用于聊天补全,托管提供。没有语义缓存。 |
| 护栏不同 | 可插拔的护栏;部分集成需要 Enterprise。 | 会阻断、脱敏或标记的模式规则,以及在决策模型上的检查,包含护栏的每个套餐均可使用。 |
| 日志回调不同 | 回调到 Langfuse 和其他工具;支出日志保存在 Postgres 中。 | 请求日志、导出,以及发往你的 OpenTelemetry 收集器的 span。 |
| 支出追踪不同 | 成本来自 LiteLLM 的模型价格表。 | 按你的协商价或厂商公开价得出的预估提供商费用,未知时为 unpriced,并与 OpenAI 和 Anthropic 的成本 API 对账。 |
| MCP 网关形式相同 | 代理之后的 MCP 服务器。 | 面向你自己 MCP 服务器的 MCP 网关,按密钥设置已批准的工具和授权。 |
| A2A 智能体网关无对应 | 通过代理的智能体间流量。 | 无。 |
| 自行运行不同 | MIT,Docker 或 pip,任何地方都能运行。 | 托管服务。自托管或混合部署通过企业协议提供。Enterprise — 通过企业协议提供,而非自助开通。 |
这是我们对 LiteLLM 已发布文档的理解,而非试用或基准测试。如果我们理解有误,告诉我们,我们会修正那一行。
INFRO 不做的事
- 无需企业协议即可在你自己的基础设施上运行,或让你阅读它的源码。
- 语义缓存、上下文窗口回退、A2A。
- 提供批处理、文件、微调或 Realtime,或除 OpenAI、Azure OpenAI、Mistral 或兼容 OpenAI 的端点之外的提供商上的嵌入。
- 每分钟 token 限制;INFRO 按请求速率和美元限制。
哪些无法迁移过来
- 你的 LiteLLM Postgres 中的支出日志和请求历史。没有导入工具。
- 虚拟密钥。签发 INFRO 网关密钥,并将调用方逐步切换过来。
- 回调和自定义钩子。请使用 OpenTelemetry 导出,或把这部分逻辑保留在你的代码中。
问题
- 我还能继续使用 LiteLLM Python SDK 吗?
- 可以。通过 LiteLLM 的兼容 OpenAI 的提供商调用 INFRO:
model="openai/<INFRO model id>",配合api_base="https://api.infro.io/v1"和你的 INFRO 密钥。 - INFRO 像 LiteLLM 一样是开源的吗?
- 不是。INFRO 是托管服务;自托管或混合部署可在企业协议下提供。
- 谁向模型提供商付费?
- 是你,直接付费,与 LiteLLM 一样。INFRO 是订阅制,对模型支出的加价为 0%。
和我们一起迁移,或自行迁移
迁移计划会在一次通话中把你的 LiteLLM 设置映射为 INFRO 的连接、路由规则和预算,并和你一起迁移第一个服务。你的提供商继续直接向你收费;INFRO 是一项订阅,对模型支出零加价。
来源
本页关于 LiteLLM 的每一项陈述都来自以下来源之一,阅读于 2026年10月19日。没有任何内容是从试用、基准测试或交谈中推断的。
- LiteLLM docs — home阅读于 2026年10月19日
- LiteLLM docs — Proxy: user keys and client usage阅读于 2026年10月19日
- LiteLLM docs — Virtual keys阅读于 2026年10月19日
- LiteLLM docs — Reliability (fallbacks, retries)阅读于 2026年10月19日
- LiteLLM docs — Caching阅读于 2026年10月19日
- LiteLLM docs — Cache controls阅读于 2026年10月19日
- LiteLLM docs — Enterprise阅读于 2026年10月19日
- LiteLLM — LICENSE阅读于 2026年10月19日
- LiteLLM blog — Security update, March 2026阅读于 2026年10月19日
- LiteLLM blog — posts tagged security阅读于 2026年10月19日