Lección aprendida

Cotizador
Inteligente

Una aplicación que generaba cotizaciones y reportes profesionales usando IA, con integración de pagos (Mercado Pago), exportación a PDF, y seguridad multicapa. Estuvo en producción y me dejó aprendizajes concretos sobre flujos de cobro end-to-end, resiliencia entre proveedores de IA, y validación de input en contextos abiertos.

La idea

Muchos profesionales necesitan cotizar rápido y con aspecto profesional, pero no tienen herramientas más allá de WhatsApp o una hoja de Excel. Quería ver si un LLM podía generar cotizaciones estructuradas — con desglose de materiales, cronograma y recomendaciones — a partir de una descripción en lenguaje natural.

El reto real no era conectar un LLM a un textarea. Era diseñar la seguridad alrededor del input del usuario, manejar fallos de proveedor de forma transparente, y generar un output que se pudiera exportar como PDF profesional.

Cómo funciona

El usuario describe el servicio, la IA genera un reporte completo, y se exporta a PDF.

Input del usuario

Descripción en lenguaje natural del servicio. Opcionalmente, la IA mejora la descripción antes de procesarla.

Generación con IA

Google Gemini genera el reporte estructurado. Si falla, Groq (Llama 3.3 70B) toma el relevo automáticamente.

Reporte completo

Análisis, materiales, costos, cronograma por fases, recomendaciones y términos.

Exportación PDF

Puppeteer renderiza el reporte a PDF y lo sube a Vercel Blob para descarga.

Seguridad multicapa

El input del usuario pasa por múltiples capas de validación antes de llegar al LLM.

Sanitización de input

XSS, HTML injection, caracteres peligrosos — todo se limpia antes de procesarse.

Prompt injection

Detección de intentos de manipular el comportamiento del LLM vía el input del usuario.

Contenido ilícito

10+ categorías bloqueadas. El sistema rechaza solicitudes fuera del dominio de mantenimiento.

Rate limiting + CSRF

Límite de requests por IP y tokens de protección contra cross-site request forgery.

Decisiones técnicas

Motor de IA con fallback

Gemini como primario, Groq como respaldo. Si el primario falla (rate limit, timeout), el segundo toma el relevo sin que el usuario lo note.

PDF serverless

Puppeteer Core + Chromium headless en una API Route de Next.js. El PDF se genera server-side y se almacena en Vercel Blob.

Validación en capas

Cada capa de seguridad es independiente. Se pueden activar/desactivar sin afectar las demás.

Modo gratuito

Variable de entorno controla si los pagos están habilitados. En modo free, todo funciona sin restricciones.

Stack

Next.js 14TypeScriptReact 18Tailwind CSS Google GeminiGroqPuppeteer CoreVercel Blob Vercel

Por qué lo construí

Este proyecto ya no está en producción, pero fue donde aprendí a diseñar seguridad real alrededor de un LLM expuesto a input de usuario — no solo un disclaimer, sino capas prácticas que reducen el riesgo: sanitización, detección de patrones, validación de dominio, y rate limiting.

Aunque ya había integrado pasarelas de pago en proyectos de agencia, este fue el primer flujo de cobro end-to-end donde controlé todo el ciclo: desde la generación del valor (reporte con IA) hasta la integración con Mercado Pago, la validación del pago, y la entrega del resultado. Diseñar ese ciclo completo como owner cambió cómo pienso los productos.

El fallback entre Gemini y Groq me confirmó que diseñar con interfaces (un contrato común para el motor de IA) hace que agregar o cambiar proveedores sea trivial — el mismo patrón que apliqué después en Incident Analyzer.

Si te interesa conversar sobre este proyecto o sobre arquitectura frontend en general, escríbeme.