Consultar una base de datos exige saber SQL, y eso deja fuera a la mayoría de la gente que necesita los datos. Este proyecto elimina esa barrera: escribes —o dices en voz alta— una pregunta de negocio ("¿cuáles son los 5 productos más vendidos?", "¿cuántos clientes han hecho churn este año?") y el sistema la traduce a SQL, la ejecuta sobre una base de datos de ejemplo y te devuelve la tabla de resultados en menos de un segundo, mostrando además el SQL exacto que ha generado.
El pipeline tiene cuatro pasos, sin magia oculta:
Dejar que un LLM genere SQL que se ejecuta contra tu base de datos es peligroso si no se controla. Por eso el sanitizador solo permite consultas de lectura: acepta SELECT y WITH, y rechaza cualquier INSERT, UPDATE, DELETE, DROP, ALTER, PRAGMA o varias sentencias encadenadas con punto y coma. Además impone un tope de 100 filas por respuesta. El usuario nunca puede modificar ni borrar datos a través del modelo.
Para que la demo sea realista, la base SQLite simula el back-office de una empresa SaaS: 200 clientes (con país, sector, plan y estado de churn), 8 productos (planes y add-ons con su precio mensual) y 5.000 ventas del último año con su contribución al MRR. Eso permite preguntas analíticas de verdad: ingresos por país, MRR por plan, tasa de churn o productos más vendidos.
Backend en FastAPI (Python), LLM vía Groq (Llama 3.3 70B, con fallback a un modelo más ligero ante saturación), persistencia en SQLite y un frontend de una sola página en Vanilla JS que usa la Web Speech API y muestra el SQL junto a la tabla de resultados. Sin frameworks pesados y sin servicios de pago para la voz.
Es una demo: la base de datos es sintética y de solo lectura. La misma arquitectura, apuntando a una base de datos real con los permisos adecuados, es la base de un asistente analítico interno.
Resultados
| Solución | Coste mensual | Modelo de cobro | Datos propios | Personalización |
|---|---|---|---|---|
| Voice-to-SQL Dashboard | Self-hosted | Solo el coste de la API del LLM | ✅ Tu propia base de datos | ✅ Total (código propio) |
| BI tradicional (Power BI, Looker) | Licencia por usuario | Suscripción mensual | ✅ | ⚠️ Requiere construir dashboards |
| Asistentes NL→SQL en SaaS | Por consulta o asiento | Suscripción | ⚠️ Tus datos salen a un tercero | ⚠️ Limitada |
Precios de referencia públicos. Pueden variar según plan y negociación.