Choice — выбор одного варианта в Jev
Choice — один из трёх типов вопросов в модели Jev от TypeSafe. Он выбирает ровно один вариант из заданного вами набора и возвращает победителя, вероятность для каждого варианта и значение уверенности.
Choice передаёт модели именованный набор вариантов и получает обратно ровно один из них. Имена вариантов ваши, поэтому ответ — уже значение, по которому ваш код может ветвиться: нет строки, которую надо нормализовать, и нет возможности получить имя, которого вы не задавали.
Интересен не победитель, а распределение, приходящее вместе с ним. Каждый вариант получает вероятность, в сумме они дают единицу, а второе место говорит, что модель едва не выбрала.
Настоящий ответ
Отправлено в jev-1.13.0. Числа ниже — это то, что вернулось.
Наш вход по SSO отдаёт 500 после утреннего релиза 4.2. Никто в команде не может войти. То же самое в Chrome и Safari, на двух разных тенантах.
Какая команда должна взять этот тикет?
Техподдержка побеждает с 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 на вариант.
Два остальных
Noul
Noul — один из трёх типов вопросов в модели Jev от TypeSafe. Он задаёт один вопрос «да/нет» и отвечает вероятностью того, что ответ — «да», числом от 0 до 1.
Score
Score — один из трёх типов вопросов в модели Jev от TypeSafe. Он оценивает вход по упорядоченным уровням, которые пишете вы, и возвращает взвешенное по вероятностям значение, способное попасть между двумя уровнями.
Задайте Choice собственному тексту
Песочница отправляет в Jev всё, что вы вставите, и рисует каждый ответ. Без аккаунта и без ключа.
Открыть песочницу