Choice — вибір одного варіанта в Jev

Choice — один із трьох типів запитань у моделі Jev від TypeSafe. Він обирає рівно один варіант із заданого вами набору й повертає переможця, ймовірність для кожного варіанта та значення впевненості.

Choice передає моделі іменований набір варіантів і отримує назад рівно один із них. Імена варіантів ваші, тож відповідь — уже значення, за яким ваш код може розгалужуватися: немає рядка, який треба нормалізувати, і немає можливості отримати ім’я, якого ви не задавали.

Цікавий не переможець, а розподіл, що приходить разом із ним. Кожен варіант отримує ймовірність, у сумі вони дають одиницю, а друге місце каже, що модель ледь не обрала.

Справжня відповідь

Надіслано до jev-1.13.0. Числа нижче — це те, що повернулося.

State

Наш вхід через 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 варіантів. Дайте моделі весь список команд або категорій, а не витяжку: кожен варіант коштує лише кілька токенів.
  • Додайте варіант Other або None of the above, якщо ваш список може покрити не кожен вхід, щоб у моделі була змога сказати, що не підходить нічого.

Беріть Choice, коли

  • Відповіді — замкнений набір, який у вас уже є в коді: черги, категорії, статуси, наступні дії.
  • Вам потрібно бачити друге місце, а не лише переможця.
  • Ви маршрутизуєте, і вартість різних напрямів різниться настільки, що хочеться поріг на кожен варіант.

Візьміть інше, коли

  • Варіанти — упорядковані щаблі однієї шкали: низький, середній, високий. Score знає, що вони впорядковані, і вміє потрапляти між ними; Choice вважає їх непов’язаними мітками.
  • Одночасно може бути правдивим не один варіант. Тоді поставте по Noul на варіант.

Два інші

Поставте Choice власному тексту

Майданчик надсилає до Jev усе, що ви вставите, і малює кожну відповідь. Без облікового запису й без ключа.

Відкрити майданчик