Saltar al contenido

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
writeokquestionnatural languageQwen2.5-coderwrites SQLrefuseon any writevalidatorSELECT-only, read-onlySQLiteread-onlyLlama 3.2phrases the answer
Fig. — cómo funciona
1

Lo que construí

Solo

  1. 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.
  2. 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.
  3. 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.
  4. 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