décision

JEV : comment passer du texte à la décision, sans écrire une phrase

JEV ne rédige rien : il lit un état, répond à des questions typées, et rend des probabilités que ton code peut consommer directement.

La plupart des modèles d’IA génèrent du texte. JEV — présenté par TypeSafe AI à l’automne 2026 — part d’une autre idée : quand un logiciel doit décider (router un ticket, noter une urgence, bloquer un message), une phrase ne sert à rien. Il faut une valeur exploitable et une confiance. Le reste, c’est ton code qui s’en charge.

À lire une fois Tous les schémas de cette page sont une simulation pédagogique locale (quelques règles simples), et non le vrai modèle JEV, qui est propriétaire. Le but est de rendre le principe visible et manipulable.

00L’idée en une phrase

JEV est un modèle discriminatif, pas génératif. Là où un LLM écrit « Il semble que ce client soit mécontent… », JEV répond seulement :

// question       "Cette demande est-elle urgente ?"
// réponse JEV    { "true": 0.77, "false": 0.23 }

Pas de phrase, pas d’explication : une distribution de probabilités. Et c’est amplement suffisant pour qu’un programme prenne une décision fiable.

Pense à JEV non pas comme un rédacteur, mais comme un appel de fonction.

01L’état en entrée

Tout commence par un état : du texte brut, non structuré — messages, lignes de log, événements métier. Rien à formater, on donne les choses telles quelles. Un client, par exemple, écrit :

[ "Hi", "My customer number is TS1337.", "My card was charged twice." ]

Une simple liste de chaînes. C’est volontairement pauvre : c’est le modèle qui apporte la compréhension, pas le format d’entrée.

02Des questions typées

Tu ne demandes pas « résume ce texte ». Tu poses des questions fermées, dont les réponses possibles sont fixées à l’avance. JEV en connaît trois familles, toutes des choix multiples :

choice    "intent":   ["billing", "technical", "cancel", "other"]
boolean   "urgent":   ["true", "false"]
score     "priority": ["1", "2", "3", "4", "5"]

Chaque question est un objet JSON, et en interne un choix multiple — jusqu’à 255 options. On appelle ces questions des primitives. Et le point crucial : ce n’est pas à JEV d’inventer la forme de la réponse, c’est toi qui définis les réponses possibles. Le modèle ne peut donc jamais produire un format invalide.

03Les distributions de probabilités

Pour chaque question, JEV renvoie une probabilité par choix — une distribution qui somme à 1. Le meilleur choix devient sa « réponse », mais toute l’information utile est dans la répartition. Écris ton propre exemple : tout se recalcule en direct.

simulateur — état → probabilités
Analyse automatique par mots-clés : billing, error, cancel, urgent, angry…
Facturation urgenteBug techniqueQuestion simple

Regarde la question priority dans le cas urgent : les probabilités sont étalées (0.45, 0.14, 0.14…). Le modèle sait que « 5 » est le plus probable, mais son incertitude reste visible. Un LLM, lui, répondrait « 5 » d’un ton aussi assuré que s’il avait vu 99 % de certitude.

04La calibration

La propriété la plus importante — et la moins visible — de JEV : ses probabilités sont calibrées. Autrement dit, une confiance de 0.90 correspond réellement à environ 90 % de bonnes réponses sur ce type de cas.

Pourquoi c’est décisif ? Parce que ça autorise un seuil : on n’automatise que si le modèle est assez sûr, et on route le reste vers un humain — sans jamais avoir à juger une phrase. Déplace le curseur et regarde la décision basculer.

le seuil change tout
Le vrai avantage Un LLM peut classifier 95 % des cas correctement et rester incapable de dire lesquels sont les 5 % ratés. JEV fournit ce signal d'incertitude : il devient l'aiguillage entre l'automatique et l'humain.

05Ce qui le rend rapide

Un LLM génère token par token, de façon autorégressive : chaque mot dépend du précédent, c’est lent par nature. JEV n’a pas de texte à composer : toutes les questions peuvent être résolues en même temps.

la course (durées symboliques)

JEV · en parallèle

les 3 questions d'un coup
—

LLM · token par token

chaque mot attend le précédent
—

Le résultat final est identique — une décision — mais le coût n’a rien à voir. D’où les ordres de grandeur annoncés par l’éditeur : ~70 à 500 ms de bout en bout. (Chiffres constructeur ; ça dépend de la tâche.)

06Puis ton logiciel agit

Ici se joue la frontière essentielle : JEV ne prend pas la décision finale. Il fournit des probabilités ; c’est ton code, avec tes règles métier et tes seuils, qui choisit l’action.

const a = jev(state, questions);      // probabilités
if (a.intent.billing < 0.6)           // pas assez sûr
  reviewByHuman();
else if (a.urgent.true > 0.5)
  escalate("billing");                // sûr + urgent
else
  enqueue("billing");
La nuance qui compte « Type-safe » (le bon type de réponse) ne veut pas dire « bonne décision ». Un seuil mal choisi reste un seuil mal choisi : les workflows critiques gardent validation et supervision humaine.

Les limites, sans détour

Ce que JEV fait bien Ce qu’il ne fait pas
Décider (classer, router, noter) Générer du texte libre
Donner une confiance exploitable Expliquer pourquoi (aucun rationale)
Répondre vite, en parallèle Créer le schéma de réponse à ta place
Ne jamais inventer un format invalide Remplacer la supervision sur les cas critiques

En somme : JEV excelle pour des décisions récurrentes et bornées, à l’intérieur de logiciels. Il est inutile pour raconter, expliquer ou explorer — ce n’est pas son rôle, et il ne prétend pas l’être.

Récapitulatif

  ÉTAT                  QUESTIONS              PROBABILITÉS             ACTION
  texte brut   ──►   choix typés   ──►   { "billing": 0.79 }   ──►   router / escalader
                       (en parallèle)         (calibrées)              (tes règles)

À retenir : JEV ne répond pas avec des mots, il répond avec des nombres — et te laisse la décision.