Choice — alegerea unei opțiuni în Jev

Un Choice este unul dintre cele trei tipuri de întrebări din modelul Jev al TypeSafe. Alege exact o opțiune dintr-o mulțime definită de tine și returnează câștigătoarea, o probabilitate pentru fiecare opțiune și o valoare de încredere.

Un Choice îi dă modelului o mulțime de opțiuni cu nume și primește înapoi exact una dintre ele. Numele opțiunilor sunt ale tale, deci răspunsul e deja o valoare pe care codul tău poate face switch — nu există șir de normalizat și nu există posibilitatea unui nume pe care nu l-ai definit niciodată.

Partea interesantă nu e câștigătoarea, ci distribuția care vine cu ea. Fiecare opțiune primește o probabilitate, ele însumează unu, iar locul doi îți spune ce era gata să aleagă modelul.

Un răspuns real

Trimis către jev-1.13.0. Cifrele de mai jos sunt ce s-a întors.

State-ul

Autentificarea noastră SSO dă 500 de la versiunea 4.2 lansată azi-dimineață. Nimeni din echipă nu poate intra. La fel în Chrome și Safari, pe doi chiriași diferiți.

Întrebarea

Ce echipă ar trebui să preia acest tichet?

83 %
ridicată
Tehnic la 87 %, din 4 opțiuni
87 % Tehnic

Tehnic câștigă cu 87%, dar Cont ține 13% — și exact acesta e dezacordul potrivit, fiindcă o defecțiune SSO chiar stă la granița dintre ele. O etichetă seacă ar fi ascuns-o. Dacă greșeala de rutare costă ceva, 13% e cifra pe care pui pragul.

Cererea și răspunsul, cuvânt cu cuvânt
Cerere
{
  "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ăspuns
{
  "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 conține răspunsul

type "choice"
Corespunde tipului întrebării.
choice string
Opțiunea cu cea mai mare probabilitate.
probabilities map<string, number>
Fiecare opțiune definită de tine, cu probabilitatea ei. Însumează 1.
confidence number
De la 0 la 1, calculată din cât de împrăștiate sunt probabilitățile. Un vârf clar înseamnă încredere ridicată; o împrăștiere plată înseamnă scăzută.

Reguli și limite

  • criteria asociază fiecărei opțiuni o descriere sau null când numele vorbește de la sine.
  • Un Choice acceptă până la 255 de opțiuni. Dă-i modelului lista întreagă de echipe sau categorii în loc de una scurtată — fiecare opțiune costă doar câteva tokenuri.
  • Adaugă o opțiune Other sau None of the above când lista ta ar putea să nu acopere orice intrare, ca modelul să poată spune că niciuna nu se potrivește.

Alege un Choice când

  • Răspunsurile formează o mulțime închisă pe care o ai deja în cod — cozi, categorii, stări, acțiuni următoare.
  • Vrei să vezi locul doi, nu doar câștigătoarea.
  • Rutezi, iar costul fiecărei destinații diferă suficient cât să vrei un prag pe opțiune.

Folosește altceva când

  • Opțiunile sunt trepte ordonate ale unei singure scale — mic, mediu, mare. Un Score știe că sunt ordonate și poate cădea între ele; un Choice le tratează ca etichete fără legătură.
  • Mai multe opțiuni pot fi adevărate simultan. Pune atunci câte un Noul pentru fiecare opțiune.

Celelalte două

Pune un Choice propriului tău text

Terenul de joacă trimite lui Jev tot ce lipești și desenează fiecare răspuns. Fără cont, fără cheie.

Deschide terenul de joacă