CompletadoDesarrollado por Gibmyx Gomez

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.

Diagrama de flujo & topologíachat-ia.architecture
  ┌─ 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

Frontend & Web UI

Next.js (App Router) + React 19 + Tailwind CSS v4

Interfaz interactiva con streaming de respuestas en vivo y diseño responsive.

Orquestación IA

LangChain.js + Zod

Cadenas RAG, vector stores, prompt templates y validación estricta de Tools.

Modelos LLM & Embeddings

Google Gemini (flash + embedding-001)

Inferencia contextual, generación de respuestas y vectores de 768 dimensiones.

Base de Datos & VectorStore

Supabase (PostgreSQL + pgvector)

Almacenamiento de embeddings, tablas de negocio y cola durable de mensajería.

Integración Móvil

Meta WhatsApp Cloud API (Graph API v21.0)

Recepción de mensajes por webhook y despacho automatizado de respuestas.

Capacidades

Características Principales

1

Búsqueda semántica de alta precisión sobre políticas, normativas y guías técnicas en Markdown.

2

Consultas en lenguaje natural a base de datos corporativa mediante Function Calling.

3

Interfaz web con streaming de tokens en tiempo real, renderizado Markdown y syntax highlighting.

4

Canal de mensajería empresarial en WhatsApp con verificación de webhook e idempotencia.

5

Cola asíncrona con política de reintentos exponenciales y Dead Letter Queue (DLQ).

6

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.

Explorar en GitHub