Recherche · Résolveur universel
Une question en langage naturel, le bon moteur pour y répondre
Un responsable pose une question comme il la formulerait à un collègue. Le résolveur universel de VVL reconnaît de quel type de problème il s'agit, puis le confie au moteur spécialisé capable de le résoudre de façon exacte : calcul, optimisation, logique, système expert ou extraction. Il rend une réponse accompagnée de ses hypothèses et de son niveau de confiance.
Comment il fonctionne
Le résolveur s'écrit en une ligne, sous la forme longue ou sous son alias. Il enchaîne quatre étapes.
[resolve "Combien font 15% de 240 ?"]
[§§ "Combien font 15% de 240 ?"] # même chose, forme courte
- Classer la question
- Contrôler la confiance
- Confier au spécialiste
- Rendre une approximation
La classification est faite par Jev lorsque le mode Jev est actif, par le modèle de langage sinon. Si la confiance est trop faible, sous 0,55, aucun moteur n'est lancé : le résolveur demande une précision au lieu de deviner. Sinon, la question part vers l'une de huit familles de spécialistes.
| Famille | Moteur utilisé | Exemple de question |
|---|---|---|
| Calcul | Code VVL généré puis exécuté | Mensualité d'un crédit, marge, ratio |
| Optimisation | Solveur de contraintes | Planifier huit tâches sur trois machines |
| Requête relationnelle | Moteur logique de type Prolog | Quels clients dépendent de ce fournisseur ? |
| Induction de règles | Apprentissage de règles | Quelle règle distingue les clients fidèles ? |
| Recherche factuelle | Modèle de langage et base documentaire | Que dit notre procédure qualité ? |
| Extraction | Extraction structurée, champs manquants signalés | Nom, montant et échéance d'une facture |
| Système expert | Expert enregistré dans la session | Évaluer un dossier de crédit |
| Composée | Deux à quatre sous-tâches enchaînées | Extraire un effectif, puis calculer des équipes |
La réponse n'est jamais une simple valeur : c'est une approximation qui porte la valeur, une confiance qui dépend de la part fournie par le modèle de langage, une fourchette, et la liste des hypothèses avec leur source. Chaque hypothèse peut être remplacée par une valeur connue pour rejouer le calcul.
Exemples en entreprise
Finance : la mensualité d'un financement
Le directeur financier pose la question telle quelle. Le résolveur la classe comme un calcul, fait écrire la formule d'amortissement puis l'exécute.
$r = [§§? "Calcule la mensualité d'un crédit de 250000 EUR sur 20 ans à 3,5% taux fixe."]
$r.value # 1449.90
$r.confidence # "moderate" : la formule a été choisie par le modèle de langage
[approximation:trace $r]
Résultat documenté : 1 449,90 € par mois, avec la trace complète du calcul.
Ressources humaines : une question en deux temps
La question mélange une extraction et un calcul. Le résolveur la découpe en sous-tâches, les exécute dans l'ordre et combine les résultats.
$r = [§§? "Extrais le nombre d'employés de 'Acme Corp compte 87 employés', puis calcule combien d'équipes de 5 personnes on peut former."]
$r.value # "17 équipes de 5"
Crédit : la question est confiée au système expert
Une fois un système expert enregistré dans la session, le résolveur reconnaît les questions qui relèvent de son domaine et les lui transmet. La décision est prise par les règles de l'expert, pas par le modèle de langage.
[expert "Domaine evaluation risque credit. Dossier client : nom, revenu,
score_credit (eleve/moyen/faible), anciennete (longue/moyenne/recente),
decision. ..." "Scoring"]
$r = [§§? "Évalue le dossier de Alice Dubois, revenu 4500, score élevé, ancienneté longue"]
$r.value # {..., 'decision': 'approuve'}
Après la construction de l'expert, chaque question ne coûte qu'un appel au modèle de langage, pour extraire les données du dossier ; l'inférence n'en utilise aucun.
Investissement : rejouer le calcul avec ses propres chiffres
Un projet de gîte est évalué à partir d'hypothèses fournies par le modèle de langage. Le gestionnaire remplace ces hypothèses par ses chiffres réels et le calcul est rejoué, sans nouvel appel au modèle.
$q = [resolve "Grange achetée 320 000 EUR, à rénover en gîte : en combien d'années est-elle rentabilisée ?"]
$q.value # 35.55 ans (hypothèses : 50 nuits par an à 180 EUR)
$a = [approximation:revise $q [JSON '{"cout_renovation": 250000}']]
$a.value # 27.78
$b = [approximation:revise $q [JSON '{"cout_renovation": 280000, "Grange.tarif_moyen_nuit": 220}']]
$b.value # 25.45
Quand toutes les hypothèses issues du modèle de langage sont remplacées par des valeurs connues, la confiance devient exacte.
Contrôle : vérifier l'aiguillage avant de faire confiance
Avant d'utiliser une réponse, on peut demander au résolveur comment il a classé la question, ou obtenir la trace complète de l'aiguillage et du code généré.
[resolve:classify "Combien font 15% de 240 ?"] # {family, sub_kind, confidence, reasoning}
[resolve "Combien font 15% de 240 ?"] # 36.0
[resolve:trace "Combien font 15% de 240 ?"] # trace complète au format JSON
Ce qu'il garantit, et ses limites
- Une question ambiguë n'est pas devinée : sous le seuil de confiance, le résolveur demande une précision.
- Une extraction ne remplit jamais un champ absent du texte : les champs manquants sont signalés.
- Chaque réponse porte ses hypothèses, leur source et un niveau de confiance ; elle peut être rejouée avec d'autres valeurs.
- Le résolveur n'est pas un assistant conversationnel : il sert à résoudre des questions qui relèvent d'un moteur précis. Il utilise toujours au moins un appel au modèle de langage pour classer la question.
Appliquer ces travaux à vos processus ?
Le diagnostic part de votre fonctionnement réel et identifie les décisions qui peuvent être confiées à l'IA.