chatIA
Asistente Corporativo con RAG Híbrido, Tools y WhatsApp Desacoplado
Asistente fullstack de inteligencia artificial que combina búsqueda semántica (RAG) sobre documentación en Markdown con consultas SQL en tiempo real mediante Function Calling / Tools tipadas con Zod. Cuenta con chat web con streaming en vivo y atención oficial por WhatsApp con arquitectura de cola asíncrona de alta concurrencia.
Tecnologías clave
- Next.js (App Router)
- React 19
- LangChain.js
- Google Gemini
- Supabase
- pgvector
- WhatsApp Cloud API
- Tailwind CSS v4
- TypeScript
Ingeniería & Diseño
Arquitectura del Sistema
Arquitectura híbrida de dos canales desacoplados: una interfaz web con streaming de tokens palabra por palabra, y un webhook de WhatsApp de respuesta ultra rápida (<50ms) respaldado por una cola durable en PostgreSQL con procesamiento asíncrono vía workers.
┌─ INGESTA OFFLINE ────────────────────────────────────────────────────────┐
│ data/*.md ──▶ TextSplitter ──▶ Gemini Embeddings (768d) ──▶ Vector │
└─────────────────────────────────────┬────────────────────────────────────┘
▼
┌───────────────────────────┐
│ Supabase Postgres │
│ - documents (pgvector) │
│ - roles / empleados │
│ - webhook_queue │
└───────────────────────────┘
▲ ▲
CANAL 1: CHAT WEB │ │ CANAL 2: WHATSAPP CLOUD API
┌─────────────────────────────┴┐ ┌┴────────────────────────────────────────┐
│ Next.js (/api/chat) │ │ Webhook (/api/whatsapp) ──▶ HTTP 200 OK │
│ ──▶ RAG + SQL Tools (Zod) │ │ ──▶ Worker (FOR UPDATE SKIP LOCKED) │
│ ──▶ Token Streaming SSE │ │ ──▶ Despacho vía Meta Graph API v21.0 │
└──────────────────────────────┘ └─────────────────────────────────────────┘Puntos clave de la arquitectura
- RAG sin alucinaciones: Búsqueda semántica con distancia coseno sobre vectores de 768 dimensiones con temperature 0 para respuestas exactas.
- SQL Tools tipadas con Zod: Consultas dinámicas a base de datos relacional para empleados y roles sin exponer consultas abiertas.
- Cola durable desacoplada: El webhook de WhatsApp persiste eventos en 'webhook_queue' y confirma HTTP 200 a Meta en milisegundos para evitar timeouts.
- Workers concurrentes seguros: Procesamiento en segundo plano utilizando PostgreSQL 'FOR UPDATE SKIP LOCKED' para evitar condiciones de carrera.
- Resiliencia Multi-Model: Fallback automático entre gemini-flash-latest, gemini-3.5-flash y gemini-3.7-flash ante límites de cuota HTTP 429.
- Aislamiento de seguridad: Tablas sensibles protegidas a nivel de sistema para mitigar ataques de Prompt Injection.
Ecosistema
Stack Tecnológico Detallado
Next.js (App Router) + React 19 + Tailwind CSS v4
Interfaz interactiva con streaming de respuestas en vivo y diseño responsive.
LangChain.js + Zod
Cadenas RAG, vector stores, prompt templates y validación estricta de Tools.
Google Gemini (flash + embedding-001)
Inferencia contextual, generación de respuestas y vectores de 768 dimensiones.
Supabase (PostgreSQL + pgvector)
Almacenamiento de embeddings, tablas de negocio y cola durable de mensajería.
Meta WhatsApp Cloud API (Graph API v21.0)
Recepción de mensajes por webhook y despacho automatizado de respuestas.
Capacidades
Características Principales
Búsqueda semántica de alta precisión sobre políticas, normativas y guías técnicas en Markdown.
Consultas en lenguaje natural a base de datos corporativa mediante Function Calling.
Interfaz web con streaming de tokens en tiempo real, renderizado Markdown y syntax highlighting.
Canal de mensajería empresarial en WhatsApp con verificación de webhook e idempotencia.
Cola asíncrona con política de reintentos exponenciales y Dead Letter Queue (DLQ).
Persistencia de conversaciones y sesiones con Supabase.
Decisiones de Ingeniería
¿Cómo se creó este proyecto?
Creado para resolver el problema de soporte y onboarding interno, unificando la base de conocimiento corporativa tanto en la intranet web como en WhatsApp.
El principal reto de ingeniería fue diseñar el desacoplamiento del webhook para responder a Meta antes del umbral de timeout de 3 segundos, delegando la inferencia del LLM a un worker concurrente.
¿Quieres revisar el código fuente completo?
El repositorio público contiene el historial de commits, pruebas e instrucciones de ejecución.