El Off-Ramp de Proveedores: Cómo le ahorré $60K/mes a un cliente
El vendor lock-in en IA es existencial. Así diseñé una capa de abstracción que redujo el gasto en IA de un cliente de $78K/mes a $18K/mes — y blindó su infraestructura en el proceso.
El Off-Ramp de Proveedores: Cómo le ahorré $60K/mes a un cliente
El vendor lock-in en IA no es solo molesto. Es existencial.
He visto equipos construir productos increíbles sobre un solo proveedor de modelos, lanzar rápido, celebrar — y luego abrir la siguiente factura. Ese número reescribe toda tu economía unitaria. Un cambio de precios, un ajuste de rate-limit, y tus márgenes desaparecen.
Esta es la historia de cómo encontré $78,000/mes fluyendo a un solo proveedor de IA sin alternativas, y diseñé el off-ramp que bajó esa cifra a $18K. No en un año. En doce semanas.
El momento en que supe que había un problema
Me contrataron para revisar la arquitectura de una fintech Series B. Catorce microservicios de compliance impulsados por IA. El producto funcionaba. Los clientes lo amaban. Luego abrí su dashboard de facturación: $78,000 al mes, todo a un solo proveedor. Cada servicio tenía el mismo patrón:
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
});
async function classifyTransaction(text: string) {
const response = await client.chat.completions.create({
model: 'gpt-4',
messages: [
{ role: 'user', content: `Classify this transaction: ${text}` },
],
});
return response.choices[0].message.content;
}
GPT-4 para tareas de clasificación que un modelo diez veces más barato podría manejar. Sin capa de cache. Sin proveedor de respaldo. Sin lógica de enrutamiento. Llamadas crudas al modelo más caro disponible, catorce servicios de ancho.
Le pregunté al líder de ingeniería: "¿Qué pasa si OpenAI cambia sus precios mañana o tiene una caída de varias horas?" Silencio total.
El patrón Off-Ramp: tres capas
Capa 1: El Model Gateway
Pon un gateway entre tu código y tus proveedores. En lugar de que cada servicio importe un SDK directamente, todos hablan con tu gateway, que maneja selección de proveedor, failover, reintentos y tracking de costos. Tu código de negocio nunca debe saber qué proveedor está atendiendo una solicitud.
Capa 2: Portabilidad de embeddings
El error que veo repetidamente: equipos generan embeddings con un proveedor, guardan solo los vectores y descartan el texto fuente. Cuando quieren cambiar de modelo, no pueden re-embeber sin recolectar todos los datos originales. La solución: siempre almacena el texto crudo junto a los vectores. Trata los embeddings como cache regenerable.
Capa 3: Abstracción de almacenamiento
Pinecone, Weaviate, Qdrant, pgvector — el mercado se mueve rápido. Diseñé un patrón adaptador con interfaz mínima: store, query, delete. Estas tres capas forman el Vendor Off-Ramp: abstracciones que te dan libertad para moverte entre proveedores según costo, calidad y confiabilidad.
La implementación
El contrato del gateway define tres niveles de tarea — reasoning, standard, classification — y cada servicio habla con una interfaz unificada (ModelGateway) en lugar de importar SDKs de proveedor directamente. Aquí es donde está el dinero: en lugar de enviar todo al modelo más caro, enrutas por complejidad:
const ROUTING_TABLE: Record<TaskTier, ModelConfig[]> = {
reasoning: [
{ provider: 'anthropic', model: 'claude-sonnet-4-5', priority: 1,
costPer1kInput: 0.003, costPer1kOutput: 0.015 },
{ provider: 'openai', model: 'gpt-4-turbo', priority: 2,
costPer1kInput: 0.01, costPer1kOutput: 0.03 },
],
standard: [
{ provider: 'anthropic', model: 'claude-haiku-4-5', priority: 1,
costPer1kInput: 0.001, costPer1kOutput: 0.005 },
{ provider: 'openai', model: 'gpt-4o-mini', priority: 2,
costPer1kInput: 0.00015, costPer1kOutput: 0.0006 },
],
classification: [
{ provider: 'google', model: 'gemini-2.0-flash', priority: 1,
costPer1kInput: 0.0001, costPer1kOutput: 0.0004 },
{ provider: 'anthropic', model: 'claude-haiku-4-5', priority: 2,
costPer1kInput: 0.001, costPer1kOutput: 0.005 },
],
};
Cada nivel de tarea tiene proveedor primario y secundario. Si Anthropic cae, el tráfico se enruta automáticamente a OpenAI. Sin intervención humana. El sistema está blindado contra fallas de un solo proveedor.
Los números
Antes (Mes 0):
| Categoría | Modelo | Costo mensual | |---|---|---| | 14 servicios (100%) | GPT-4 | $78,000 |
Ocho millones de solicitudes al mes, ~1,000 tokens de entrada y ~500 de salida por solicitud. Todo a GPT-4. Sin cache. Sin niveles.
Después (Mes 3):
| Categoría | Tráfico | Modelo | Costo mensual | |---|---|---|---| | Razonamiento complejo | 12% | Claude Sonnet 4.5 | $5,400 | | Tareas estándar | 35% | Claude Haiku 4.5 | $4,200 | | Clasificación | 53% | Gemini 2.0 Flash | $680 | | Cache semántico | ~30% reducción | — | -$3,100 | | Prompt caching | Contextos repetidos | — | -$2,800 | | Total | | | $4,380 |
El número final fue $18K/mes porque la migración fue incremental. Al mes tres, seis de catorce servicios estaban en el gateway. La migración completa terminó en el mes cinco.
Resultado: de $78K a $18K. Sesenta mil dólares al mes devueltos al presupuesto operativo. Eso es $720K anualizados. Para una Series B, eso es runway — cuatro ingenieros más o no.
Y durante una degradación de OpenAI en la semana ocho, los servicios en el gateway hicieron failover automático a Anthropic. Cero impacto al cliente. Los servicios aún en OpenAI directo: errores por cuarenta minutos.
Cuándo NO abstraer
- Antes del product-market fit. Si aún validas si los clientes quieren tu producto, no construyas un gateway. Envía con un solo proveedor. La abstracción puede venir después.
- Cuando compliance exige un proveedor específico. En salud y defensa, a veces el lock-in es la funcionalidad — satisface un requisito de auditoría.
- Cuando el costo de la abstracción excede el ahorro. Si tu gasto en IA es $2K/mes, un gateway es sobre-ingeniería. El punto de equilibrio está alrededor de $15-20K/mes.
- Cuando solo usas una capacidad. Si toda tu integración es un solo endpoint de resumen, empieza con una interfaz simple de proveedor.
La pregunta siempre es la misma: ¿el costo de la abstracción es menor que el costo de la dependencia?
El principio de fondo
El off-ramp no se trata realmente de proveedores. Se trata de opcionalidad.
El mejor modelo hoy no será el mejor en seis meses. Si tu arquitectura no puede absorber ese cambio sin un rewrite, tu economía unitaria depende de fuerzas que no controlas. Tres preguntas que hago en cada proyecto:
- ¿Cuál es tu costo por inferencia, desglosado por tarea? Si no conoces este número, no puedes optimizarlo.
- ¿Cuánto tardarías en cambiar de proveedor para tu endpoint de mayor volumen? Si la respuesta es "semanas", tienes una dependencia, no una relación con tu proveedor.
- ¿Estás almacenando texto crudo junto a tus embeddings? Si no, tu activo de datos más valioso está bloqueado al modelo que elegiste el día uno.
Construir infraestructura de IA sostenible significa diseñar para el ecosistema que tendrás en dos años, no el de hoy. El off-ramp no es desconfianza. Es rentabilidad. Y a veces, son $60K/mes que vuelven a construir el producto real.
Si estás mirando tus propios costos de infraestructura de IA y te preguntas si hay un off-ramp, escríbeme. He hecho esto suficientes veces para saber dónde se esconde el dinero.