DataView-Lite
Explorer une base SQLite en langage naturel : un modèle local écrit du SQL en lecture seule, un validateur le contrôle, et un second modèle formule la réponse. Réalisé pour un test technique de deux heures.
En bref
- 8 bases de démo
- 3 couches de sécurité SQL
Ma contributionRéalisation de toute la stack en solo : l'application single-page Next.js, les routes d'API et une couche de bibliothèque typée pour l'introspection, l'humanisation des libellés et l'assistant.
- RÔLE
- Solo
- CONTEXTE
- Test technique
- STATUT
- Terminé
- RÉSULTAT
- Un explorateur SQLite single-page fonctionnel, doté d'un assistant en langage naturel qui tourne entièrement en local, ou entièrement simulé sans modèle, livré avec huit bases de démonstration et un démarrage en une commande.
- MISE À JOUR
- 26 sept. 2026
1
Ce que j'ai construit
Solo
- Réalisation de toute la stack en solo : l'application single-page Next.js, les routes d'API et une couche de bibliothèque typée pour l'introspection, l'humanisation des libellés et l'assistant.
- Conception du pipeline langage naturel vers SQL — Qwen génère le SQL en JSON strict, Llama formule la réponse à partir du résultat, avec un plafond de deux appels modèle par question et un repli entièrement simulé (mock) pour tourner sans Ollama.
- Sécurisation de l'assistant par trois verrous indépendants : la base est ouverte en lecture seule, un garde-fou SQL, et un validateur qui n'autorise que SELECT et WITH, bloque les instructions multiples et met en liste noire les mots-clés d'écriture.
- Écriture d'une humanisation générique des libellés (heuristiques de préfixes et d'abréviations plus un dictionnaire français extensible, affinés par un appel modèle groupé et mis en cache par schéma) pour qu'elle fonctionne sur une base inconnue.
2
Choix clés
- Lecture seule par construction
- La base est ouverte en lecture seule et chaque requête passe par un garde-fou et un validateur (SELECT et WITH uniquement, pas d'instructions multiples, une liste noire de mots-clés interdits), de sorte qu'une mauvaise sortie du modèle ne peut pas modifier les données.
- Modèles locaux avec un repli simulé automatique
- L'application sonde Ollama et bascule silencieusement vers un mock heuristique lorsqu'il est injoignable, pour qu'une démo ne casse jamais faute de modèle.
- Un seul écran, sans routage
- Barre latérale, données et assistant sur une même page, un choix pour réduire la complexité dans la limite des deux heures et garder les utilisateurs non techniques repérés.
3
Résultats
Un explorateur SQLite single-page fonctionnel, doté d'un assistant en langage naturel qui tourne entièrement en local, ou entièrement simulé sans modèle, livré avec huit bases de démonstration et un démarrage en une commande.
4
Limites
- La sécurité SQL repose sur des expressions régulières et des mots-clés, pas sur une analyse d'AST (notée comme travail à venir).
- Pas de persistance : les bases et le contexte vivent en mémoire, sans sessions ni historique sauvegardés.
- Seuls le client Ollama et le mock sont implémentés ; les réglages OpenAI et Anthropic sont des placeholders non testés.
- Non responsive, sans réponses en streaming, et jamais déployé en production.
Des questions sur ce projet ? → Écrivez-moi