Hasta finales de 2025, gestionábamos todo lo relacionado con chat directamente a través de OpenAI. Una cuenta, una clave, una factura. En enero de 2026 migramos a un agregador multi-modelo. Esto es lo que realmente ocurrió.
Lo que teníamos
- Nivel empresarial de OpenAI — ~$8k/mes en todas las superficies
- Todas las completaciones de chat en
gpt-4oogpt-4o-mini - Un modelo de embeddings, un modelo de imágenes (DALL-E 3)
- Integración directa del SDK en cuatro servicios
Qué motivó el cambio
- Claude Opus 4.6 obtenía puntuaciones notablemente mejores en nuestras evaluaciones de codificación agentiva
- Gemini 3 Pro se convirtió en el claro ganador para el análisis de documentos de contexto largo
- Queríamos probar modelos de código abierto (DeepSeek, Llama 4) sin implementar infraestructura de inferencia
- Trabajar con cinco proveedores significaba cinco contratos, cinco ciclos de facturación, cinco paneles de límites de tasa
La migración
Cambiamos a un agregador compatible con OpenAI (este, de hecho — usamos nuestro propio producto en producción). El cambio completo consistió en reemplazar baseURL y apiKey en el SDK. La diferencia en el código fue de 8 líneas en los cuatro servicios.
// Antes
const openai = new OpenAI({ apiKey: process.env.OPENAI_KEY });
// Después
const openai = new OpenAI({
apiKey: process.env.AIGEN_KEY,
baseURL: 'https://aimarcus.eu/aigenerate/api/v1',
});
Qué cambió en la factura
- Chat (GPT-4o → mezcla de GPT-4o + Claude Sonnet según la tarea): -22%
- Codificación agentiva (movido a Claude Opus): +8%, pero las evaluaciones mejoraron 15 puntos
- Análisis de contexto largo (movido a Gemini 3 Pro): -40%
- Generación de imágenes (de DALL-E 3 a Nano Banana): -65%
Efecto neto en la factura mensual: -28%. Mejor elección de modelos en cada superficie + tarifas por token más bajas de agregadores upstream que no tenemos que negociar directamente.
Tres cosas que salieron mal
- Diferencias en el formato de transmisión SSE. Claude transmite ligeramente diferente a OpenAI. Nuestra lógica de buffer del lado del cliente falló durante unos 10 minutos hasta que añadimos un shim de compatibilidad.
- Conteo de tokens. Los diferentes modelos tokenizan de manera diferente. Nuestra métrica interna de "tokens usados por conversación" tuvo que ser recalibrada por modelo.
- Caché basado en el nombre del modelo. Nuestra caché de prompts usaba
gpt-4ocomo clave. Cuando comenzamos a enrutar algunas solicitudes a Claude, obtuvimos resultados de caché obsoletos. Lección: siempre incluye el modelo en las claves de caché.
¿Lo haríamos de nuevo?
Sí — por tres razones no relacionadas con el costo.
- Opcionalidad. Cuando OpenAI tuvo una interrupción de 40 minutos el 3 de abril, nuestra superficie de chat siguió funcionando porque el tráfico pasó automáticamente a Anthropic y Gemini. Solo eso vale la migración.
- La paridad de modelos ha terminado. No hay "el mejor modelo" en 2026. Hay un mejor modelo para cada tarea. La agregación es la forma de aprovechar ese hecho.
- Una sola factura. Finanzas quería esto más que ingeniería. Una factura, una relación con el proveedor, un contrato para 12 proveedores.
Si estás manejando cualquier volumen significativo con un solo proveedor, el cambio se paga solo en el primer mes.