Calcul
Code VVL généré puis exécuté
« Mensualité d'un crédit, marge, ratio »
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. Quand sa réponse repose sur des hypothèses, il les rend avec leur source et un niveau de confiance.
Le résolveur s'écrit en une ligne, sous la forme longue ou sous son alias. 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.
[resolve "Combien font 15% de 240 ?"]
[§§ "Combien font 15% de 240 ?"] # même chose, forme courteChaque famille a son moteur, choisi pour répondre de façon exacte.
Code VVL généré puis exécuté
« Mensualité d'un crédit, marge, ratio »
Solveur de contraintes
« Planifier huit tâches sur trois machines »
Moteur logique de type Prolog
« Quels clients dépendent de ce fournisseur ? »
Apprentissage de règles
« Quelle règle distingue les clients fidèles ? »
Modèle de langage et base documentaire
« Que dit notre procédure qualité ? »
Extraction structurée, champs manquants signalés
« Nom, montant et échéance d'une facture »
Expert enregistré dans la session
« Évaluer un dossier de crédit »
Deux à quatre sous-tâches enchaînées
« Extraire un effectif, puis calculer des équipes »
Un calcul complet rend simplement son résultat. Quand la réponse dépend d'hypothèses, ce n'est plus 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.
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ésultat documenté : 1 449,90 € par mois, avec la trace complète du calcul.
$r = [§§? "Calcule la mensualité d'un crédit de 250000 EUR sur 20 ans à 3,5% taux fixe."]
$r # 1449.90
[resolve:trace "Calcule la mensualité d'un crédit de 250000 EUR sur 20 ans à 3,5% taux fixe."]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 # 87 employés, soit 17 équipes de 5Une 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. 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.
[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 # DossierClient [... decision=approuve]Un projet de gîte est soumis sans le coût des travaux ni les revenus attendus. Lors de notre essai, le résolveur n'a pas inventé ces montants : il a rendu la formule de rentabilisation, avec ses inconnues. Si on lui demande explicitement d'estimer, il le fait, et le dit : 22 ans environ, confiance faible, 15 hypothèses listées.
$q = [resolve "Grange achetée 320 000 EUR, à rénover en gîte : en combien d'années est-elle rentabilisée ?"]
$q # <approx: (cout_renovation + 320000)/(-charges_annuelles + revenu_annuel) [exact, 1 hypotheses]>
$e = [resolve "Grange de 280 m2 achetée 320 000 EUR dans le Lot, à rénover en gîte : estime un coût de rénovation réaliste, un tarif et un nombre de nuits, puis donne le nombre d'années pour la rentabiliser."]
$e.confidence # "low" : la réponse repose sur des estimationsAvant 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 JSONCes outils sont des instructions du langage VVL : nos partenaires les mettent en œuvre chez leurs clients, sur les plateformes ProSuite.