DataView-Lite
Explora una base de datos SQLite en lenguaje natural: un modelo local escribe SQL de solo lectura, un validador lo comprueba y un segundo modelo redacta la respuesta. Construido para una prueba técnica de dos horas.
En resumen
- 8 bases de datos de demostración
- 3 capas de seguridad SQL
Mi contribuciónConstruí toda la pila yo solo: la aplicación de una sola página en Next.js, las rutas de la API y una capa de librería tipada para la introspección, la humanización de etiquetas y el asistente.
- ROL
- Solo
- CONTEXTO
- Prueba técnica
- ESTADO
- Terminado
- RESULTADO
- Un explorador de SQLite de una sola página funcional con un asistente en lenguaje natural que corre íntegramente en local, o completamente simulado sin modelo, entregado con ocho bases de datos de demostración y un arranque con un solo comando.
- ACTUALIZADO
- 26 sept 2026
1
Lo que construí
Solo
- Construí toda la pila yo solo: la aplicación de una sola página en Next.js, las rutas de la API y una capa de librería tipada para la introspección, la humanización de etiquetas y el asistente.
- Diseñé el pipeline de lenguaje natural a SQL — Qwen genera el SQL como JSON estricto, Llama redacta la respuesta a partir del resultado, con un tope de dos llamadas al modelo por pregunta y un mock completo de respaldo para que funcione sin Ollama.
- Reforcé el asistente con tres cerrojos independientes: la base de datos se abre en modo de solo lectura, un guardián de SQL y un validador que solo permite SELECT y WITH, bloquea las sentencias múltiples y prohíbe las palabras clave de escritura.
- Escribí una humanización de etiquetas genérica (heurísticas de prefijos y abreviaturas más un diccionario francés extensible, refinada por una llamada al modelo por lotes y cacheada por esquema) para que funcione con una base de datos desconocida.
2
Decisiones clave
- Solo lectura por construcción
- La base de datos se abre en modo de solo lectura y cada consulta pasa por un guardián y un validador (solo SELECT y WITH, sin sentencias múltiples, una lista negra de palabras clave prohibidas), de modo que una mala salida del modelo no puede modificar los datos.
- Modelos locales con un mock de respaldo automático
- La app sondea Ollama y pasa en silencio a un mock heurístico cuando no está disponible, para que una demo nunca falle por un modelo ausente.
- Una sola pantalla, sin enrutamiento
- Barra lateral, datos y asistente en una sola página, elegido para reducir la complejidad dentro del límite de dos horas y mantener orientados a los usuarios no técnicos.
3
Resultados
Un explorador de SQLite de una sola página funcional con un asistente en lenguaje natural que corre íntegramente en local, o completamente simulado sin modelo, entregado con ocho bases de datos de demostración y un arranque con un solo comando.
4
Límites
- La seguridad del SQL se basa en expresiones regulares y palabras clave, no en el análisis del AST (anotado como trabajo futuro).
- Sin persistencia: las bases de datos y el contexto viven en memoria, sin sesiones guardadas ni historial.
- Solo están implementados el cliente de Ollama y el mock; los ajustes de OpenAI y Anthropic son marcadores de posición sin probar.
- No es responsive, no transmite las respuestas en streaming y nunca se ha desplegado en producción.
¿Preguntas sobre este proyecto? → Escríbeme