LLM routing multi-modelo en bots WhatsApp: reduce costos 80% sin perder calidad
El LLM routing multi-modelo es el patrón de usar el modelo de IA adecuado para cada tipo de tarea en lugar del más capaz para todas. Stack típico: Gemini Flash 2.5 para clasificación de intent (~$0.0001 USD/msg), Claude Haiku para FAQ (~$0.001), Claude Sonnet 4.5 para conversación natural (~$0.01), GPT-4o para razonamiento con function calling (~$0.02). Reduce costos 70-90% vs usar GPT-4o para todo. Implementación: ~50 líneas Python adicional, ROI primer mes.
El error que sangra costos: usar GPT-4o para todo
Cuando una empresa implementa su primer bot WhatsApp con IA, el patrón más común es conectarlo a GPT-4o (o Claude Sonnet 4.5) y usar ese mismo modelo para CADA interacción. Resultado: factura mensual 10-50x más alta de lo necesario, sin diferencia perceptible en calidad para 80% de las conversaciones.
La solución es LLM routing multi-modelo: usar el modelo adecuado para cada tipo de tarea, en lugar de usar el más capaz para todas. Esto reduce costo operacional 70-90% sin sacrificar experiencia del usuario.
Los modelos disponibles en 2026 vía OpenRouter
| Modelo | Costo input (1M tokens) | Costo output (1M tokens) | Latencia típica | Mejor para |
|---|---|---|---|---|
| Gemini Flash 2.5 | $0.0625 USD | $0.25 USD | 500-800ms | Clasificación intent, extracción entidad, respuestas cortas |
| Claude Haiku 4.5 | $0.25 USD | $1.25 USD | 600-1000ms | Conversación natural ligera, FAQs |
| GPT-4o-mini | $0.15 USD | $0.60 USD | 700-1200ms | Razonamiento simple, function calling básico |
| Claude Sonnet 4.5 | $3.00 USD | $15.00 USD | 1000-2000ms | Conversación natural en español MX, manejo de tono |
| GPT-4o | $2.50 USD | $10.00 USD | 1200-2500ms | Razonamiento estructurado, integración multi-fuente |
| Claude Opus 4.7 | $15.00 USD | $75.00 USD | 2000-4000ms | Solo casos enterprise complejos, code generation |
Diferencia de costo entre Gemini Flash y Claude Opus para procesar 1 millón de tokens: 48× más caro Opus. Para tareas simples (90% del bot), Flash es suficiente.
El stack de routing típico
Tier 0 — Clasificación de intent (Gemini Flash)
Cada mensaje entrante pasa primero por un clasificador rápido que determina: (a) ¿es FAQ conocida?, (b) ¿requiere data lookup?, (c) ¿es conversación libre?, (d) ¿es escalación humana?, (e) ¿es spam/fuera de scope?. Este step usa Gemini Flash con prompt de 200-300 tokens. Costo: ~$0.0001 USD por mensaje.
Tier 1 — FAQ y respuestas directas (Claude Haiku o cache)
Si intent = FAQ y respuesta está cacheada (vector store con embeddings), retorna respuesta cacheada sin pasar por LLM. Si no, usa Claude Haiku para generar. Costo: ~$0.001 USD por respuesta.
Tier 2 — Conversación natural (Claude Sonnet)
Si intent = conversación libre o respuesta tonal compleja, usa Claude Sonnet 4.5. Mantiene mejor el tono mexicano y maneja regionalismos. Costo: ~$0.01 USD por respuesta de 200 tokens output.
Tier 3 — Razonamiento + function calling (GPT-4o)
Si intent = requiere combinar múltiples fuentes (CRM lookup + cálculo + decisión), usa GPT-4o. Mejor en function calling estructurado. Costo: ~$0.02 USD por respuesta.
Tier 4 — Casos enterprise complejos (Claude Opus, raro)
Solo para conversaciones donde la complejidad lo justifica (consultas legales, recomendaciones técnicas multi-variable). Usar <1% de las veces. Costo: ~$0.10-0.30 USD por respuesta.
Ejemplo: estructura del router en código
def route_message(user_msg, context):
# Tier 0: Classify intent
intent = gemini_flash.classify(
user_msg=user_msg,
intents=["faq", "lookup", "free_chat", "escalate", "spam"]
)
if intent == "spam":
return None # Silently drop
if intent == "escalate":
notify_human(user_msg, context)
return "Te pongo con una persona del equipo, en breve te responde."
if intent == "faq":
# Tier 1: Try cache first, then Haiku
cached = vector_lookup(user_msg)
if cached.score > 0.85:
return cached.answer
return claude_haiku.generate(user_msg, context)
if intent == "lookup":
# Tier 3: needs function calling
return gpt_4o_with_tools.generate(user_msg, context, tools=CRM_TOOLS)
if intent == "free_chat":
# Tier 2: best for natural conversation
return claude_sonnet.generate(user_msg, context)
Resultados típicos del routing optimizado
Para bot con 5,000 conversaciones únicas mensuales mix típico (60% FAQ, 25% conversación libre, 10% lookup, 5% escalamiento):
| Estrategia | Costo LLM/mes |
|---|---|
| Todo GPT-4o (anti-pattern) | $80-150 USD |
| Todo Claude Sonnet (anti-pattern) | $60-120 USD |
| LLM routing optimizado | $15-30 USD |
| Ahorro | 70-85% |
La inversión inicial extra para implementar el router (4-8 horas dev) se paga en el primer mes.
OpenRouter como puerta única
En lugar de gestionar 5 API keys (OpenAI + Anthropic + Google + xAI + DeepSeek), usar OpenRouter como single point of access simplifica:
- 1 sola API key
- 1 sola factura
- Fallback automático si un modelo no está disponible
- Pricing transparente y unificado
- Métricas de uso por modelo
Costo OpenRouter: 5% markup sobre tarifa nativa de cada modelo. Justificado por la simplificación operacional.
Preguntas frecuentes
¿Vale la pena la complejidad del routing?
Sí, después del primer mes. Setup inicial: 4-8 horas dev. Ahorro mensual: $50-120 USD para bot 5K conversaciones. ROI primer mes. Plus, modelos rápidos (Gemini Flash) tienen latencia menor que GPT-4o, mejorando UX. La complejidad del código es ~50 líneas extra Python — trivial vs ahorro.
¿Cuándo usar Claude Opus 4.7 en bot WhatsApp?
Casi nunca. Claude Opus es overkill para 99% de las conversaciones WhatsApp. Casos justificados: (a) consultas legales que requieren razonamiento extendido, (b) recomendaciones de productos enterprise B2B con 20+ variables, (c) análisis de problemas técnicos complejos. Para esos casos, usar tier 4 con max_tokens limitado y validación de salida. Costo $0.10-0.30 USD por respuesta — aceptable si justifica el caso comercial.
¿El routing afecta calidad de respuesta?
Solo si está mal calibrado. Bien calibrado, el usuario no nota la diferencia — Gemini Flash es excelente para FAQ y respuestas cortas; Claude Sonnet brilla para conversación natural; GPT-4o destaca en function calling. Mal calibrado (usar Gemini Flash para conversación tonal compleja), el bot suena seco. Validar con CSAT post-conversación.
¿Puedo usar modelos open-source self-hosted?
Sí, viable para empresas con infraestructura GPU. Llama 3.3 70B o Mistral Large local pueden reemplazar Tier 1-2. Costo: ~$300-500 USD/mes GPU + ops, comparable a Claude Sonnet a 5K conversaciones. Vale la pena solo si: (a) volumen >50K conversaciones/mes, (b) requisitos de privacidad extremos (no enviar datos a APIs públicas), (c) tienes equipo MLOps interno. Para mayoría de PyMEs MX, API hosted es más eficiente.
¿Tu PyME necesita una solución de IA medible?
Conversación de 30 min, sin compromiso. Cotizamos en menos de 24 horas. Precios públicos en pesos mexicanos.
Agenda conversación →