Guías de migraciónDesde LiteLLM
De un proxy de LiteLLM que operas a uno que no operas
LiteLLM son dos cosas: un SDK de Python que habla con más de 100 proveedores y un proxy que despliegas con Postgres y Redis y que agrega claves virtuales, presupuestos, respaldos y caché. Ambos se ejecutan con tus propias claves de proveedor, como INFRO. Lo que cambia es quién opera el proxy. Esta página traslada la configuración del proxy a INFRO y muestra cómo conservar el SDK.
Código abierto MIT de BerriAI, más una edición Enterprise con licencia; autoalojado
Las cuentas de INFRO son de autoservicio. El catálogo, la documentación y el contrato de la API son públicos, el gateway está desplegado, y todo lo que va más allá de v1 está marcado como Más adelante. Planes y prueba
Dónde están las cosas
Licencia y ediciones
Todo lo que está fuera del directorio enterprise/ es MIT; Enterprise es la misma imagen con una clave de licencia, que añade SSO, SCIM, registros de auditoría, gestores de secretos y soporte.
Avisos de seguridad de 2026
El propio blog de LiteLLM enumera una vulneración en PyPI de litellm 1.82.7 y 1.82.8 el 2026-03-24 (la imagen oficial de Docker no se vio afectada; la versión limpia 1.83.0 salió el 2026-03-30), una inyección SQL en la verificación de claves del proxy corregida en 1.83.7 (2026-04-29) y una omisión de autenticación mediante el encabezado Host corregida en 1.84.0 (2026-06-01). Operar el proxy implica hacer tú mismo el seguimiento de estos problemas.
En qué cuenta se sirve la solicitud
Tuyas, en ambos productos. LiteLLM nunca tiene una cuenta de proveedor, ni INFRO tampoco; tus proveedores te facturan directamente.
LiteLLM es gratuito, abierto y se ejecuta en cualquier lugar. Si esas son las razones por las que lo elegiste, siguen siendo buenas razones.
- El tráfico no debe salir de tu red, o debes poder leer y parchear el código del gateway. INFRO es alojado y de código cerrado; el autoalojado o híbrido requiere un acuerdo enterprise.
- Usas caché semántica, respaldos por ventana de contexto o por política de contenido, el gateway de agentes A2A o callbacks hacia un proveedor de registro concreto. INFRO tiene caché de coincidencia exacta, reglas de fallo de ruta, un gateway MCP y exportación de OpenTelemetry.
- Llamas a proveedores que INFRO no conecta, o a endpoints que no sirve: batches, archivos, fine-tuning, Realtime, embeddings en proveedores distintos de OpenAI, Azure OpenAI, Mistral o un endpoint compatible con OpenAI.
- Operarlo te cuesta poco porque un equipo de plataforma ya se encarga de Postgres, Redis y las actualizaciones.
Los cambios, uno por fila. Todo lo que no aparece aquí queda como está.
| LiteLLM | INFRO | |
|---|---|---|
| URL base | Tu proxy, por ejemplo http://0.0.0.0:4000. | https://api.infro.io/v1 |
| Clave | Una clave virtual de LiteLLM (sk-...) de /key/generate. | Una clave de gateway de INFRO, creada en la consola o en la API de gestión. Las claves de proveedor pasan de litellm_params a conexiones de INFRO. |
| Id del modelo | Un model_name de model_list, como gpt-4o. | Una ruta con el mismo nombre, para que quienes llaman sigan enviándolo, o vendor/model directamente. |
| Campos del cuerpo | metadata { tags, trace_id, trace_user_id, generation_name }, cache { ttl, namespace }, user. | metadata { user_id, session_id, tags }, cache para la caché de respuestas, X-INFRO-Trace-Id para un id de traza. |
Antes · 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"] },
});Después · 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` pasa a ser rutas
Cada model_name con varios deployments pasa a ser una ruta con esos destinos; los pesos rpm pasan a ser destinos ponderados; router_settings.fallbacks pasan a ser los destinos posteriores de la ruta o fallbacks.
Conserva el SDK
El proveedor compatible con OpenAI de LiteLLM envía todo lo que va después de openai/ como id de modelo, así que openai/anthropic/claude-sonnet-5.5 llega a INFRO como anthropic/claude-sonnet-5.5. Los respaldos ocurren entonces en INFRO, no en el SDK.
O conserva el proxy detrás de INFRO
Conecta el proxy como una conexión openai-compatible mientras haces la migración. Ten en cuenta que INFRO verá entonces solo el proxy como un único proveedor, así que el failover y el costo por proveedor seguirán ocurriendo dentro de LiteLLM hasta que conectes los proveedores directamente.
Los objetos de LiteLLM frente a los de INFRO, según la documentación pública de LiteLLM leída el 19 de octubre de 2026 y comprobados contra lo que implementa el gateway. Una fila dice que INFRO no tiene nada.
| LiteLLM | Qué hace allí | En INFRO |
|---|---|---|
| `model_list` y `litellm_params`misma forma | Deployments por nombre de modelo, con las claves de proveedor en la configuración. | Conexiones de proveedor (claves selladas, varias por proveedor) y rutas sobre ellas. |
| Claves virtualesmisma forma | Claves emitidas por el proxy con modelos permitidos, presupuesto, tpm y rpm, equipo y usuario. | Claves de gateway con modelos, proveedores y rangos de IP permitidos, un entorno, un límite de gasto y un nivel de tasa de solicitudes; rotación y un interruptor de apagado. |
| Equipos, usuarios, presupuestosmisma forma | max_budget y budget_duration por clave, equipo o usuario. | Presupuestos por organización, proyecto, miembro, clave y cliente final, respetados bajo concurrencia, con 402 en el tope antes de la llamada al proveedor. |
| Límites de tpmdistinto | Límites de tokens por minuto por clave o deployment. | Niveles de tasa de solicitudes por clave y presupuestos en dólares. Sin límite de tokens por minuto. |
| Respaldos y reintentosmisma forma | fallbacks, num_retries, tiempos de enfriamiento, allowed_fails. | Destinos de ruta y reglas de fallo por tipo (reintentar, hacer failover o detenerse); fallbacks por solicitud. |
| Respaldos por ventana de contexto y por política de contenidodistinto | Otro modelo cuando el prompt es demasiado largo o la política de un proveedor lo rechaza. | Una regla de fallo moderation puede hacer failover al siguiente destino. Sin respaldo por ventana de contexto. |
| Cachédistinto | Cachés exactas y semánticas en Redis, S3, GCS, Qdrant y otros. | Coincidencia exacta, opcional, para chat completions, alojada. Sin caché semántica. |
| Barreras de proteccióndistinto | Guardrails conectables; varias integraciones requieren Enterprise. | Reglas de patrones que bloquean, redactan o marcan, y comprobaciones con un modelo de decisión, en todos los planes que incluyen guardrails. |
| Callbacks de registrodistinto | Callbacks a Langfuse y otras herramientas; registros de gasto en Postgres. | El registro de solicitudes, las exportaciones y los spans a tu colector de OpenTelemetry. |
| Seguimiento del gastodistinto | Costo a partir del mapa de precios de modelos de LiteLLM. | Costo estimado del proveedor con tus tarifas negociadas o la tarifa de lista del fabricante, unpriced cuando se desconoce, conciliado con las APIs de costos de OpenAI y de Anthropic. |
| Gateway MCPmisma forma | Servidores MCP tras el proxy. | Un gateway MCP para tus propios servidores MCP, con herramientas aprobadas y permisos por clave. |
| Gateway de agentes A2Anada | Tráfico de agente a agente a través del proxy. | Nada. |
| Operarlo tú mismodistinto | MIT, Docker o pip, en cualquier lugar. | Alojado. Lo autoalojado o híbrido es un acuerdo empresarial.Empresas — Disponible con un acuerdo enterprise, no en autoservicio. |
Nuestra lectura de la documentación publicada de LiteLLM, no una prueba ni un benchmark. Si leímos algo mal, dínoslo y corregiremos la fila.
Lo que INFRO no hace
- Ejecutarse en tu propia infraestructura sin un acuerdo enterprise, o permitirte leer su código fuente.
- Caché semántica, respaldos por ventana de contexto, A2A.
- Servir batches, archivos, fine-tuning o Realtime, o embeddings en proveedores distintos de OpenAI, Azure OpenAI, Mistral o un endpoint compatible con OpenAI.
- Límites de tokens por minuto; INFRO limita por tasa de solicitudes y por dólares.
Lo que no se traslada
- Registros de gasto e historial de solicitudes en tu Postgres de LiteLLM. No hay importador.
- Claves virtuales. Emite claves de gateway de INFRO y rota a quienes llaman hacia ellas.
- Callbacks y hooks personalizados. Usa la exportación de OpenTelemetry, o conserva esa lógica en tu código.
Preguntas
- ¿Puedo seguir usando el SDK de Python de LiteLLM?
- Sí. Llama a INFRO a través del proveedor compatible con OpenAI de LiteLLM:
model="openai/<INFRO model id>"conapi_base="https://api.infro.io/v1"y tu clave de INFRO. - ¿INFRO es de código abierto como LiteLLM?
- No. INFRO es un servicio alojado; hay un despliegue autoalojado o híbrido disponible con un acuerdo enterprise.
- ¿Quién paga a los proveedores de modelos?
- Tú, directamente, como con LiteLLM. INFRO es una suscripción y añade 0% al gasto en modelos.
Migra con nosotros o por tu cuenta
El programa de migración traslada en una llamada tu configuración de LiteLLM a conexiones, rutas y presupuestos de INFRO, y migra contigo el primer servicio. Tus proveedores te siguen facturando directamente; INFRO es una suscripción y agrega 0% al gasto en modelos.
Fuentes
Cada afirmación de esta página sobre LiteLLM proviene de una de estas fuentes, leídas el 19 de octubre de 2026. Nada se deduce de una prueba, un benchmark o una conversación.
- LiteLLM docs — homeleído el 19 oct 2026
- LiteLLM docs — Proxy: user keys and client usageleído el 19 oct 2026
- LiteLLM docs — Virtual keysleído el 19 oct 2026
- LiteLLM docs — Reliability (fallbacks, retries)leído el 19 oct 2026
- LiteLLM docs — Cachingleído el 19 oct 2026
- LiteLLM docs — Cache controlsleído el 19 oct 2026
- LiteLLM docs — Enterpriseleído el 19 oct 2026
- LiteLLM — LICENSEleído el 19 oct 2026
- LiteLLM blog — Security update, March 2026leído el 19 oct 2026
- LiteLLM blog — posts tagged securityleído el 19 oct 2026