Choice — избиране на една опция в Jev

Choice е един от трите типа въпроси в модела Jev на TypeSafe. Избира точно една опция от набор, който ти определяш, и връща победителя, вероятност за всяка опция и стойност на увереност.

Choice подава на модела именуван набор от опции и получава обратно точно една от тях. Имената на опциите са твои, така че отговорът вече е стойност, по която кодът ти може да разклонява — няма низ за нормализиране и няма възможност за име, което никога не си определял.

Интересното не е победителят, а разпределението, което идва с него. Всяка опция получава вероятност, те се сумират до едно, а вторият по ред ти казва какво моделът за малко не е избрал.

Истински отговор

Изпратено до jev-1.13.0. Числата по-долу са това, което се върна.

Състоянието

Влизането ни през SSO връща 500 от издаването на 4.2 тази сутрин. Никой от екипа не може да влезе. Същото в Chrome и Safari, при двама различни наематели.

Въпросът

Кой екип да поеме тази заявка?

83%
висока
Техническо при 87%, от 4 опции
87% Техническо

Техническо печели с 87%, но Акаунт държи 13% — и това е правилното несъгласие, защото отказ на SSO наистина стои на границата между двете. Гол етикет би го скрил. Ако маршрутизирането ти има цена при грешка, 13% е числото, на което да сложиш праг.

Заявката и отговорът, дословно
Заявка
{
  "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"
      }
    }
  }
}
Отговор
{
  "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
      }
    }
  }
}

Какво съдържа отговорът

type "choice"
Съвпада с типа на въпроса.
choice string
Опцията с най-висока вероятност.
probabilities map<string, number>
Всяка определена от теб опция, съпоставена с вероятността ѝ. Сумират се до 1.
confidence number
От 0 до 1, изчислено от това колко разпръснати са вероятностите. Един ясен връх е висока увереност; плоско разпределение — ниска.

Правила и ограничения

  • criteria съпоставя всяка опция с описание или с null, когато името говори само за себе си.
  • Choice приема до 255 опции. Дай на модела целия списък от екипи или категории, а не съкратен — всяка опция струва само няколко токена.
  • Добави опция Друго или Нито едно от изброените, когато списъкът ти може да не покрива всеки вход, за да има моделът как да каже, че нито една не пасва.

Посегни към Choice, когато

  • Отговорите са затворен набор, който вече имаш в кода — опашки, категории, статуси, следващи действия.
  • Искаш да видиш втория по ред, а не само победителя.
  • Маршрутизираш и цената на всяка дестинация се различава достатъчно, за да искаш праг за всяка опция.

Използвай нещо друго, когато

  • Опциите са подредени стъпала на една скала — ниско, средно, високо. Score знае, че са подредени, и може да попадне между тях; Choice ги третира като несвързани етикети.
  • Повече от една опция може да е вярна едновременно. Задай вместо това по един Noul на опция.

Другите два

Задай Choice за собствения си текст

Площадката изпраща на Jev каквото поставиш и чертае всеки отговор. Без акаунт, без ключ.

Отвори площадката