Choice — choisir une option dans Jev

Un Choice est l’un des trois types de question du modèle Jev de TypeSafe. Il choisit exactement une option dans un ensemble que vous définissez et renvoie la gagnante, une probabilité pour chaque option et une valeur de confiance.

Un Choice remet au modèle un ensemble d’options nommées et en récupère exactement une. Les noms d’options sont les vôtres, donc la réponse est déjà une valeur sur laquelle votre code peut faire un switch — aucune chaîne à normaliser et aucune possibilité d’un nom que vous n’avez jamais défini.

Le plus intéressant n’est pas la gagnante mais la distribution qui l’accompagne. Chaque option reçoit une probabilité, elles somment à un, et le dauphin vous dit ce que le modèle a failli choisir.

Une vraie réponse

Envoyée à jev-1.13.0. Les nombres ci-dessous sont ce qui est revenu.

Le state

Notre connexion SSO renvoie une 500 depuis la version 4.2 de ce matin. Personne dans l’équipe ne peut entrer. Pareil sur Chrome et Safari, sur deux locataires différents.

La question

Quelle équipe devrait prendre ce ticket ?

83 %
élevée
Technique à 87 %, sur 4 options
87 % Technique

Technique l’emporte à 87 %, mais Compte garde 13 % — et c’est exactement le bon désaccord, parce qu’une panne SSO est réellement à la frontière des deux. Une étiquette nue l’aurait caché. Si une erreur d’aiguillage a un coût, 13 % est le nombre sur lequel poser un seuil.

La requête et la réponse, mot pour mot
Requête
{
  "state": "Our SSO login has been throwing a 500 since the 4.2 release this morning. Nobody on the team can get in. Same on Chrome and Safari, two different tenants.",
  "model": "jev-latest",
  "questions": {
    "queue": {
      "type": "choice",
      "instructions": "Which team should own this ticket?",
      "criteria": {
        "Billing": "Payments, invoices, refunds, plan changes",
        "Technical": "Bugs, outages, API errors, integrations",
        "Account": "Login, permissions, seats, data export",
        "Sales": "Pricing, upgrades, contracts"
      }
    }
  }
}
Réponse
{
  "model": "jev-1.13.0",
  "answers": {
    "queue": {
      "type": "choice",
      "choice": "Technical",
      "confidence": 0.83,
      "probabilities": {
        "Technical": 0.87,
        "Sales": 0,
        "Account": 0.13,
        "Billing": 0
      }
    }
  }
}

Ce que contient la réponse

type "choice"
Correspond au type de question.
choice string
L’option ayant la plus forte probabilité.
probabilities map<string, number>
Chaque option que vous avez définie, avec sa probabilité. Elles somment à 1.
confidence number
De 0 à 1, calculée à partir de l’étalement des probabilités. Un pic net donne une confiance élevée ; un étalement plat une confiance faible.

Règles et limites

  • criteria associe chaque option à une description, ou à null quand le nom se suffit à lui-même.
  • Un Choice accepte jusqu’à 255 options. Donnez au modèle la liste entière d’équipes ou de catégories plutôt qu’une sélection — chaque option ne coûte que quelques jetons.
  • Ajoutez une option Other ou None of the above quand votre liste risque de ne pas couvrir toutes les entrées, pour que le modèle puisse dire qu’aucune ne convient.

Prenez un Choice quand

  • Les réponses forment un ensemble fermé que vous avez déjà dans le code — files, catégories, statuts, prochaines actions.
  • Vous voulez voir le dauphin, pas seulement la gagnante.
  • Vous aiguillez, et le coût de chaque destination diffère assez pour vouloir un seuil par option.

Prenez autre chose quand

  • Les options sont des échelons ordonnés d’une même échelle — bas, moyen, haut. Un Score sait qu’ils sont ordonnés et peut tomber entre eux ; un Choice les traite comme des étiquettes sans lien.
  • Plusieurs options peuvent être vraies en même temps. Posez plutôt un Noul par option.

Les deux autres

Posez un Choice sur votre propre texte

Le terrain de jeu envoie à Jev ce que vous collez et dessine chaque réponse. Pas de compte, pas de clé.

Ouvrir le terrain de jeu