Choice — wybór jednej opcji w Jevie

Choice to jeden z trzech typów pytań w modelu Jev od TypeSafe. Wybiera dokładnie jedną opcję ze zbioru, który definiujesz, i zwraca zwycięzcę, prawdopodobieństwo dla każdej opcji oraz wartość pewności.

Choice podaje modelowi nazwany zbiór opcji i dostaje z powrotem dokładnie jedną z nich. Nazwy opcji są twoje, więc odpowiedź jest już wartością, na której twój kod może zrobić switch — nie ma łańcucha do znormalizowania ani możliwości nazwy, której nigdy nie zdefiniowałeś.

Ciekawy jest nie zwycięzca, lecz rozkład, który przychodzi razem z nim. Każda opcja dostaje prawdopodobieństwo, sumują się do jedynki, a drugie miejsce mówi ci, co model niemal wybrał.

Prawdziwa odpowiedź

Wysłane do jev-1.13.0. Liczby poniżej to dokładnie to, co wróciło.

State

Nasze logowanie SSO zwraca 500 od dzisiejszego porannego wydania 4.2. Nikt z zespołu nie może się dostać. Tak samo w Chrome i Safari, na dwóch różnych dzierżawcach.

Pytanie

Który zespół powinien przejąć to zgłoszenie?

83%
wysoka
Techniczny przy 87%, spośród 4 opcji
87% Techniczny

Techniczny wygrywa z 87%, ale Konto trzyma 13% — i to jest dokładnie właściwa niezgoda, bo awaria SSO naprawdę leży na granicy między nimi. Goła etykieta by to ukryła. Jeśli pomyłka w routingu kosztuje, 13% to liczba, na której stawiasz próg.

Żądanie i odpowiedź, dosłownie
Żądanie
{
  "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"
      }
    }
  }
}
Odpowiedź
{
  "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
      }
    }
  }
}

Co zawiera odpowiedź

type "choice"
Zgadza się z typem pytania.
choice string
Opcja o najwyższym prawdopodobieństwie.
probabilities map<string, number>
Każda zdefiniowana opcja wraz z prawdopodobieństwem. Sumują się do 1.
confidence number
Od 0 do 1, liczone z tego, jak rozłożone są prawdopodobieństwa. Jeden wyraźny szczyt to wysoka pewność; płaskie rozłożenie to niska.

Zasady i limity

  • criteria przypisuje każdej opcji opis albo null, gdy nazwa mówi sama za siebie.
  • Choice przyjmuje do 255 opcji. Daj modelowi całą listę zespołów albo kategorii zamiast wyboru — każda opcja kosztuje tylko kilka tokenów.
  • Dodaj opcję Other albo None of the above, gdy twoja lista może nie objąć każdego wejścia, żeby model miał jak powiedzieć, że żadna nie pasuje.

Sięgnij po Choice, gdy

  • Odpowiedzi tworzą zamknięty zbiór, który masz już w kodzie — kolejki, kategorie, statusy, kolejne działania.
  • Chcesz widzieć drugie miejsce, nie tylko zwycięzcę.
  • Routujesz, a koszty poszczególnych celów różnią się na tyle, że chcesz progu dla każdej opcji.

Użyj czegoś innego, gdy

  • Opcje są uporządkowanymi szczeblami jednej skali — niski, średni, wysoki. Score wie, że są uporządkowane, i potrafi wylądować między nimi; Choice traktuje je jak niepowiązane etykiety.
  • Więcej niż jedna opcja może być prawdziwa naraz. Zadaj wtedy po jednym Noulu na opcję.

Pozostałe dwa

Zadaj Choice własnemu tekstowi

Plac zabaw wysyła do Jeva wszystko, co wkleisz, i rysuje każdą odpowiedź. Bez konta, bez klucza.

Otwórz plac zabaw