Aller au contenu

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
writeokquestionnatural languageQwen2.5-coderwrites SQLrefuseon any writevalidatorSELECT-only, read-onlySQLiteread-onlyLlama 3.2phrases the answer
Fig. — comment ça marche
1

Ce que j'ai construit

Solo

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