Aller au contenu
Devenir partenaire
Recherche · Système expert

Un système expert construit à partir d'une description en français

Les systèmes experts ont longtemps demandé des mois de modélisation. Dans VVL, il suffit de décrire le domaine, les profils types et la règle de décision, comme on l'expliquerait à un nouveau collaborateur. Le système en tire une ontologie, des profils et des règles, puis crée une nouvelle instruction du langage qui décide sur chaque dossier.

Comment il est construit

Deux appels pour construire, des règles pour décider

La construction se fait une fois, en deux appels au modèle de langage. Le premier produit l'ontologie du domaine : la classe principale, ses attributs et les profils types, représentés comme des objets abstraits qui encodent leurs propriétés caractéristiques. Le second traduit la règle de décision en règles d'inférence : chaque dossier reçoit l'étiquette du profil auquel il correspond le mieux, selon un degré de satisfaction.

  1. 01Description en français
  2. 02Ontologie et profils
  3. 03Règles de décision
  4. 04Nouvelle instruction

Ensuite, chaque dossier soumis en texte libre suit toujours le même chemin : le modèle de langage en extrait les champs, les faits sont enregistrés dans l'ontologie, puis les règles décident. Quand les valeurs extraites correspondent exactement aux profils, la décision ne demande aucun appel supplémentaire ; sinon, les comparaisons de sens sont tranchées par Jev ou par le modèle de langage, et mises en cache. L'expert peut être sauvegardé, rechargé dans une autre session, et consulté automatiquement par le résolveur universel.

Exemples en entreprise

Un expert, des décisions lisibles

Crédit : évaluer un dossier client

Trois profils de risque et une règle de décision, décrits en quelques lignes. L'expert créé s'appelle Scoring et s'utilise comme n'importe quelle instruction.

Résultats documentés : approuvé, à étudier, refusé.

Aliceapprouvescore élevé · ancienneté longue
Boba_etudierscore moyen · ancienneté moyenne
Carolrefusescore faible · ancienneté récente
ScoringVVL
[expert "
  Domaine evaluation risque credit. Dossier client avec nom, revenu,
  score_credit (eleve/moyen/faible), anciennete (longue/moyenne/recente),
  decision. Profils BonRisque (score_credit eleve, anciennete longue),
  RisqueModere (score_credit moyen, anciennete moyenne),
  RisqueEleve (score_credit faible, anciennete recente).
  decision : 'approuve' si BonRisque, 'a_etudier' si RisqueModere,
  'refuse' si RisqueEleve, sinon 'a_etudier'.
" "Scoring"]

[Scoring "Alice, revenu 4500, score eleve, anciennete longue"]   # approuve
[Scoring "Bob, revenu 2800, score moyen, anciennete moyenne"]    # a_etudier
[Scoring "Carol, revenu 1800, score faible, anciennete recente"] # refuse

Support client : priorité et catégorie d'un ticket

Un même expert peut produire plusieurs décisions. Ici, chaque ticket reçoit une priorité et une catégorie.

TicketTriagerVVL
[expert "
  Domaine support SaaS. Ticket avec titre, description, type_probleme
  (panne_majeure/bug/question), impact_utilisateurs (eleve/moyen/faible),
  urgence_business (critique/haute/basse), priorite, categorie.
  Profils Critique (panne_majeure, impact eleve, urgence critique),
  Important (bug, impact moyen), Routine (question), Mineur (impact faible).
  La priorite est : 'P0' si Critique, 'P1' si Important, 'P2' si Routine,
  'P3' si Mineur, sinon 'P2'.
  La categorie est : 'incident' si Critique ou Important, 'demande'
  si Routine, 'low_prio' si Mineur, sinon 'demande'.
" "TicketTriager"]

[TicketTriager "Production en panne complete, panne_majeure, impact eleve, urgence critique"]
# Ticket[priorite="P0", categorie="incident"]

Comptabilité : classer les flux de trésorerie

Un expert-comptable décrit comment ranger chaque opération bancaire dans le tableau des flux : exploitation, investissement, financement. L'expert classe ensuite les opérations réelles, y compris une opération composée qui produit deux lignes.

Cas d'étude documenté : douze opérations réelles classées ; un cas ambigu, l'impôt sur les sociétés, est signalé pour revue.

FluxTresoVVL
$_desc = "Classification d un flux de tresorerie d entreprise ...
Attribut de sortie:
- cycle (exploitation/investissement/capitaux_propres/endettement/placement_financier): ...
Regles:
Vente comptant ou encaissement client = cycle exploitation, ligne recette_exploitation, agregat ETE.
Acquisition machine, immobilisation, brevet = cycle investissement, ligne investissement, agregat FTD.
..."
[expert $_desc "FluxTreso"]
[FluxTreso "Acquisition presse hydraulique 145 000 EUR"]   # investissement / investissement / FTD
Réutiliser l'expert

Sauvegarde, et consultation par le résolveur

L'expert est sauvegardé dans l'espace de travail et rechargé dans une autre session. Une fois enregistré, le résolveur universel lui confie les questions qui relèvent de son domaine.

expert:save · expert:loadVVL
[workspace go demo]
[expert:save "Scoring"]
# dans une nouvelle session :
[workspace go demo]
[expert:load "Scoring"]
[Scoring "Eve, revenu 5000, score_credit eleve, anciennete longue"]
$r = [§§? "Évalue le dossier de Alice Dubois, revenu 4500, score élevé, ancienneté longue"]
$r.value           # {..., 'decision': 'approuve'}
Garanties

Ce qu'il garantit, et ses limites

  • La décision est prise par des règles écrites et lisibles, que l'on peut relire, modifier et sauvegarder.
  • Chaque dossier est d'abord transcrit dans une ontologie : les champs extraits sont visibles et contrôlables.
  • Chaque dossier coûte un appel au modèle de langage pour l'extraction ; la construction de l'expert en coûte deux.
  • Un expert porte sur une classe principale, et chaque décision attendue doit être nommée dans la description.
Passer à la pratique

Appliquer ces travaux à vos processus ?

Ces outils sont des instructions du langage VVL : nos partenaires les mettent en œuvre chez leurs clients, sur les plateformes ProSuite.