Cómo construimos un chatbot con IA multiproveedor
Hemos integrado un asistente virtual que utiliza cuatro proveedores de IA diferentes. Te explicamos la arquitectura, el sistema de A/B testing y las decisiones técnicas detrás del proyecto.
Por qué un chatbot propio
Los visitantes de una web tienen preguntas. Algunas son simples, otras requieren contexto sobre tus servicios. Un formulario de contacto funciona, pero introduce fricción. Un chatbot bien implementado puede resolver dudas instantáneamente y capturar leads cualificados en el momento de máximo interés.
Decidimos construir el nuestro en lugar de usar una solución SaaS por tres razones: control total sobre la experiencia, integración nativa con nuestra web y la oportunidad de comparar diferentes proveedores de IA.
Arquitectura multiproveedor
En lugar de apostar por un solo modelo de lenguaje, implementamos soporte para cuatro proveedores: Anthropic (Claude), OpenAI (GPT), xAI (Grok) y Google (Gemini).
Cada proveedor tiene sus fortalezas. Claude destaca en seguir instrucciones complejas. GPT tiene un conocimiento general amplio. Grok ofrece respuestas más directas. Gemini equilibra velocidad y calidad.
La arquitectura abstrae las diferencias entre APIs mediante una interfaz común. Cada proveedor implementa los mismos métodos: verificar disponibilidad, enviar mensajes y transmitir respuestas en streaming.
Sistema de A/B testing
No queríamos elegir un proveedor basándonos en intuiciones. Implementamos un sistema de A/B testing que asigna cada usuario a un proveedor de forma consistente.
El sistema funciona así:
- Cuando un usuario abre el chat, generamos un identificador único
- Combinamos ese ID con el identificador del test y calculamos un hash
- El hash determina un bucket (0-99) que mapea a un proveedor
- Guardamos la asignación en una cookie para mantener consistencia
Actualmente distribuimos el tráfico equitativamente: 25% para cada proveedor. Esto nos permite comparar métricas como latencia, tasa de error, calidad percibida y conversión a leads.
Streaming y fallback
Las respuestas de IA pueden tardar varios segundos en generarse completamente. Esperar a que termine antes de mostrar algo sería una mala experiencia.
Implementamos streaming mediante Server-Sent Events (SSE). El servidor envía fragmentos de texto a medida que el modelo los genera, y el cliente los renderiza progresivamente. El usuario ve la respuesta construyéndose en tiempo real.
Si un proveedor falla, el sistema intenta automáticamente con el siguiente en orden de prioridad. El usuario ve un pequeño retraso, pero obtiene su respuesta.
Captura de leads inteligente
El chatbot no solo responde preguntas. Está entrenado para detectar señales de intención de compra: preguntas sobre precios, plazos o proceso de trabajo.
Cuando detecta interés genuino, sugiere amablemente que el usuario deje sus datos para que podamos contactarle. El formulario aparece integrado en el chat, sin interrumpir la conversación.
Incluimos un campo honeypot invisible para filtrar bots. Si ese campo tiene contenido, sabemos que no es un humano.
Métricas que rastreamos
Para cada proveedor medimos:
- Latencia de respuesta
- Tasa de errores y fallbacks
- Número de mensajes por conversación
- Tasa de conversión a lead
- Feedback positivo/negativo
Estos datos nos permitirán tomar decisiones informadas sobre qué proveedor funciona mejor para nuestro caso de uso específico.
Consideraciones de seguridad
Las claves de API nunca se exponen al cliente. Toda comunicación con los proveedores ocurre en el servidor.
Las cookies de asignación son HttpOnly y Secure. La validación de entrada usa esquemas Zod estrictos con límites de longitud.
No almacenamos conversaciones en base de datos actualmente, aunque es una mejora planificada para poder analizar patrones y mejorar el sistema prompt.
Lo que aprendimos
Construir un chatbot multiproveedor no es trivial, pero tampoco es tan complejo como parece. La clave está en abstraer bien las diferencias entre APIs y diseñar para fallos desde el principio.
El streaming mejora drásticamente la experiencia percibida. Ver texto aparecer progresivamente se siente más natural que esperar una respuesta completa.
Y quizás lo más importante: no asumas qué proveedor es mejor. Mídelo.