La Stack Tecnológica Detrás de Parlamento AI: De SvelteKit a FFmpeg

Por Equipo Técnico Parlamento AI

Un recorrido técnico detallado por todas las tecnologías que utilizamos para transformar audio parlamentario en transcripciones inteligentes en tiempo real.

Stack tecnológico de Parlamento AI

Construir una plataforma que transcriba y analice sesiones parlamentarias en tiempo real requiere un stack tecnológico robusto y diverso. Hoy queremos compartir contigo todas las tecnologías que utilizamos y por qué las elegimos.

Frontend: La Experiencia del Usuario

SvelteKit - El Corazón de Nuestra UI

SvelteKit es nuestro framework principal para el frontend. Lo elegimos por su rendimiento excepcional, su sintaxis limpia y su capacidad de generar código optimizado. Con Svelte 5, aprovechamos las nuevas runes para un manejo de estado más eficiente.

Tailwind CSS - Diseño Consistente y Rápido

Tailwind CSS nos permite crear interfaces modernas y responsivas de manera eficiente. Su enfoque utility-first acelera el desarrollo y mantiene la consistencia visual en toda la plataforma.

Componentes de UI Avanzados

  • Bits UI: Componentes accesibles y sin estilos que personalizamos
  • Lucide Svelte: Iconografía consistente y moderna
  • GSAP: Animaciones fluidas y profesionales, especialmente en nuestro pipeline técnico
  • D3.js: Visualizaciones de datos complejas para análisis parlamentarios

Base de Datos y ORM

PostgreSQL - Robustez y Escalabilidad

PostgreSQL es nuestra base de datos principal. Su soporte para JSON, búsquedas de texto completo y escalabilidad horizontal la convierten en la elección perfecta para manejar grandes volúmenes de transcripciones.

Drizzle ORM - Type Safety y Performance

Drizzle ORM nos proporciona type safety completo mientras mantiene el control sobre las consultas SQL. Su enfoque “thin ORM” nos permite optimizaciones específicas sin sacrificar productividad.

Búsqueda Inteligente

Meilisearch - Búsqueda Rápida y Relevante

Meilisearch potencia nuestro motor de búsqueda. Su capacidad de búsqueda typo-tolerant y indexación rápida permite a los usuarios encontrar contenido parlamentario específico en milisegundos.

Implementamos un sistema de chunking inteligente que divide las transcripciones largas en fragmentos de 1000 caracteres, respetando los límites de oraciones para mantener el contexto.

Procesamiento de Audio y Video

FFmpeg - El Corazón del Procesamiento de Audio

FFmpeg es fundamental para todo nuestro pipeline de audio:

  • Conversión de formatos de audio
  • Eliminación de silencio para mejorar transcripciones
  • Concatenación de fragmentos de audio en tiempo real
  • Procesamiento de streams en vivo

youtube-dl-exec - Extracción de Audio

youtube-dl-exec nos permite extraer audio de transmisiones en vivo de YouTube con la opción --live-from-start, crucial para capturar sesiones parlamentarias desde el inicio.

Puppeteer - Scraping Dinámico

Puppeteer maneja el scraping de sitios web complejos, especialmente para extraer URLs de streams .m3u8 de sitios con contenido dinámico.

Inteligencia Artificial

OpenAI - Transcripción y Análisis

Utilizamos múltiples modelos de OpenAI:

  • GPT-4o-transcribe: Nuestro modelo principal de transcripción con contexto parlamentario optimizado
  • GPT-4o-mini-transcribe: Modelo de respaldo para casos edge
  • GPT-4: Para fusionar transcripciones múltiples y generar resúmenes inteligentes

Google Cloud Speech & Gladia - Transcripción Múltiple

Implementamos un sistema de transcripción múltiple que combina:

  • Google Cloud Speech: Transcripción robusta y rápida
  • Gladia: Transcripción especializada con vocabulario personalizado
  • ElevenLabs: Transcripción de alta calidad (disponible bajo demanda)

Google Gemini - Chat Inteligente

Gemini 2.5 Pro potencia nuestro sistema de chat que permite a los usuarios consultar datos parlamentarios de manera conversacional.

Almacenamiento y CDN

AWS S3 - Almacenamiento de Audio

AWS S3 almacena todos nuestros archivos de audio de manera segura y escalable, con integración directa desde nuestro pipeline de transcripción.

Google Cloud Storage - Backup y Redundancia

Google Cloud Storage proporciona redundancia y backup para archivos críticos.

Orquestación y Workflows

n8n - Automation Visual

n8n gestiona nuestros workflows complejos de transcripción, permitiendo:

  • Orquestación visual de procesos
  • Manejo de errores robusto
  • Integración con múltiples APIs
  • Monitoreo en tiempo real

PM2 - Gestión de Procesos

PM2 con @pm2/io gestiona nuestros procesos de scraping y transcripción, proporcionando:

  • Reinicio automático en caso de errores
  • Monitoreo de recursos
  • Logs centralizados

Node Cron - Tareas Programadas

node-cron ejecuta tareas programadas como:

  • Scraping de citaciones parlamentarias
  • Limpieza de archivos temporales
  • Mantenimiento de índices de búsqueda

Scraping y Monitoreo

Cheerio - Parsing HTML

Cheerio facilita el parsing de HTML del lado del servidor para extraer información de sitios web parlamentarios.

Selenium WebDriver - Automatización Compleja

Selenium WebDriver maneja casos de scraping que requieren interacción compleja con JavaScript.

Axios - HTTP Client

Axios es nuestro cliente HTTP principal para todas las comunicaciones con APIs externas.

Comunicaciones y Notificaciones

Resend & MJML - Emails Profesionales

  • Resend: Servicio de email confiable
  • MJML: Templates de email responsivos y profesionales

Telegram Bot API - Alertas en Tiempo Real

node-telegram-bot-api envía notificaciones críticas del sistema a nuestro equipo técnico.

WebSockets - Comunicación en Tiempo Real

ws proporciona actualizaciones en tiempo real a los usuarios sobre el progreso de transcripciones.

Análisis y Monitoreo

PostHog - Analytics de Producto

PostHog nos ayuda a entender cómo los usuarios interactúan con la plataforma y optimizar la experiencia.

Paddle - Gestión de Suscripciones

Paddle.js maneja nuestro sistema de suscripciones y pagos de manera segura.

Desarrollo y Tooling

TypeScript - Type Safety en Todo el Stack

TypeScript garantiza type safety desde el frontend hasta los scripts de backend, reduciendo errores y mejorando la productividad del equipo.

Vite - Build Tool Rápido

Vite proporciona hot module replacement ultrarrápido durante el desarrollo y builds optimizados para producción.

ESLint & Prettier - Calidad de Código

Mantenemos un código consistente y de alta calidad con herramientas de linting y formateo automático.

MDSvex - Contenido Dinámico

MDSvex permite escribir contenido en Markdown con componentes Svelte embebidos, perfecto para nuestro sistema de blog.

Utilidades y Helpers

Date-fns - Manejo de Fechas

date-fns con localización en español maneja todas nuestras operaciones con fechas de manera eficiente.

Lodash-es - Utilidades JavaScript

lodash-es (versión ES modules) proporciona utilidades de programación funcional optimizadas.

Zod - Validación de Esquemas

Zod valida datos de entrada y APIs con type safety completo.

Marked - Procesamiento Markdown

Marked procesa contenido Markdown para documentación y contenido dinámico.

Pipeline de Transcripción: Arquitectura en 3 Capas

Nuestro sistema de transcripción funciona con una arquitectura de 3 capas:

🔌 The Scrapper (El Recolector)

Extrae audio de diferentes fuentes (YouTube Live, Senado de Chile, etc.) y genera mini-chunks de audio.

🗜️ The Builder (El Constructor)

Combina mini-chunks en chunks optimizados para transcripción, eliminando silencios y manteniendo timestamps precisos.

📝 The Transcriber (El Transcriptor)

Utiliza múltiples proveedores de IA para transcribir y fusiona los resultados con LLMs para máxima calidad.

Por Qué Esta Stack

Cada tecnología fue seleccionada cuidadosamente para resolver desafíos específicos:

  • Rendimiento: SvelteKit y Vite para carga rápida
  • Escalabilidad: PostgreSQL y Meilisearch para manejar grandes volúmenes
  • Calidad: Múltiples proveedores de IA para transcripciones precisas
  • Confiabilidad: PM2 y n8n para procesos robustos
  • Experiencia: GSAP y Tailwind para interfaces fluidas
  • Mantenibilidad: TypeScript y Drizzle para code quality

El Futuro

Continuamente evaluamos nuevas tecnologías para mejorar nuestra plataforma. Próximamente exploraremos:

  • Nuevos modelos de IA para transcripción
  • Optimizaciones de performance con Rust
  • Mejoras en real-time processing