Each language version is independently generated for its own context, not a direct translation.
Imaginez que vous êtes un chef cuisinier très talentueux (c'est l'Intelligence Artificielle) capable de créer de délicieux plats à partir de n'importe quelle recette écrite en langage naturel. Cependant, il y a un problème : vos clients ne mangent pas tous dans le même restaurant, et chaque restaurant a ses propres règles de cuisine, ses propres ustensiles et même ses propres interdits.
- Le Restaurant A (MySQL) accepte que vous jetiez tous les ingrédients dans une grande marmite.
- Le Restaurant B (Oracle) exige que vous utilisiez des casseroles spécifiques et interdit d'utiliser certains ingrédients si vous n'avez pas de permission spéciale.
- Le Restaurant C (PostgreSQL) veut que vous épluchiez les légumes avant de les couper, sinon il refuse de vous servir.
Jusqu'à présent, les systèmes qui traduisent le langage humain en requêtes de bases de données (ce qu'on appelle NL2SQL) agissaient comme un chef qui connaissait parfaitement le menu du Restaurant A, mais qui essayait de cuisiner pour le Restaurant B en utilisant les mêmes règles. Résultat ? Le plat était soit rejeté par le chef de cuisine (erreur de syntaxe), soit il était comestible mais avait un goût terrible (résultat incorrect).
Voici comment Dial, le système présenté dans cet article, résout ce problème de manière ingénieuse.
1. Le Plan de Cuisine Universel (NL-LQP)
Au lieu de demander au chef de cuisiner directement, Dial lui fait d'abord rédiger un plan de cuisine logique en langage humain, sans se soucier des règles du restaurant.
- L'analogie : Au lieu de dire "Coupez 3 oignons avec le couteau suisse", le chef écrit : "Préparer la base de légumes".
- Pourquoi c'est génial : Cela sépare l'intention du client ("Je veux voir les 10 employés les mieux payés") de la technique spécifique ("LIMIT 10" pour MySQL vs "FETCH FIRST 10 ROWS" pour Oracle). Le chef sait quoi faire, mais pas encore comment le faire dans ce restaurant précis.
2. Le Grand Livre de Recettes Adapté (HINT-KB)
C'est le cœur du système. Dial ne se fie pas à la mémoire du chef (qui peut se tromper ou halluciner). Il utilise une bibliothèque de connaissances ultra-organisée, construite à partir des manuels officiels de chaque restaurant.
Ce livre est divisé en trois sections :
- La section "Outils" : Elle dit : "Si tu veux couper des oignons dans le Restaurant Oracle, utilise le couteau X, pas le couteau Y."
- La section "Règles cachées" : Elle explique les pièges invisibles. Par exemple : "Attention, dans le Restaurant Oracle, si tu demandes une liste, tu ne peux pas trier par un nom qui n'est pas dans ta liste finale."
- La section "Exemples" : Elle montre des plats réussis et des échecs cuisants pour que le chef apprenne par l'exemple.
3. Le Contrôleur de Qualité et le Mécanicien (Debugging Itératif)
Même avec un bon plan et un bon livre, le chef peut faire une erreur de détail. Dial ne se contente pas de servir le plat. Il lance un processus de vérification en boucle :
- Essai : Le chef prépare le plat selon le plan et le livre de recettes.
- Test : Le plat est envoyé en cuisine. Si le chef de cuisine du restaurant crie "Erreur !", Dial ne demande pas simplement au chef de réessayer au hasard.
- Diagnostic : Dial regarde l'erreur, consulte le "Grand Livre" pour trouver la règle exacte qui a été violée, et dit au chef : "Tu as utilisé 3 arguments pour la fonction CONCAT, mais Oracle n'en accepte que 2. Corrige ça."
- Apprentissage : Une fois le plat réussi, Dial note cette correction dans le livre pour que le chef ne refasse jamais la même erreur.
Pourquoi est-ce une révolution ?
Imaginez un traducteur qui ne se contente pas de traduire mot à mot, mais qui comprend la culture de chaque pays.
- Les anciens systèmes (comme les traducteurs automatiques basiques) prenaient une phrase en français et la traduisaient en anglais en utilisant des règles fixes. Si le français avait une expression idiomatique, la traduction était souvent absurde.
- Dial, lui, comprend d'abord l'idée, puis cherche la meilleure façon de l'exprimer dans la langue cible, en vérifiant à chaque étape que cela a du sens pour le locuteur natif.
Les Résultats
En testant ce système sur six grands "restaurants" (bases de données comme Oracle, MySQL, PostgreSQL, etc.), les chercheurs ont constaté que :
- Le système réussit beaucoup plus souvent à faire fonctionner les requêtes (moins d'erreurs de syntaxe).
- Il utilise les fonctions spécifiques de chaque base de données (comme un vrai expert local) plutôt que des solutions génériques et lourdes.
- Il s'améliore tout seul en apprenant de ses erreurs passées.
En résumé : Dial est comme un chef étoilé qui, au lieu d'improviser, consulte un guide de cuisine local précis, vérifie chaque plat avant de le servir, et apprend de chaque erreur pour devenir le meilleur cuisinier possible, quel que soit le restaurant où il travaille.