Проектирование вопросов
Jev отвечает только в пределах заданных вариантов, поэтому точность решений напрямую зависит от проектирования вопросов и вариантов. На этой странице перечислены принципы проектирования, которые следует проверить перед вводом в эксплуатацию, и описано значение полей возвращаемого результата.
Принципы проектирования
1. Варианты должны охватывать все случаи. Это наиболее распространённая причина ошибочных решений. При неполном наборе вариантов Jev всё равно выбирает один из них, причём уверенность может быть высокой, поэтому такие ошибки невозможно выявить по значению уверенности.
Результаты измерений: при наличии только двух вариантов — billing (charges, invoices, refunds) и technical (outages, errors, integration issues) — на ввод Will it rain in Shanghai tomorrow? все 3 запуска вернули technical с уверенностью 0.96–0.98. После добавления варианта other (none of the above) все 3 запуска вернули other с уверенностью 1.
2. Составляйте описание для каждого варианта и уровня. Поле description определяет границы точнее, чем одно слово. Например, если для billing указано «списания, счета, возвраты», модель относит к этому варианту «ошибку в оформлении счёта».
3. Каждый вопрос должен касаться одного решения. Вопрос «является ли обращение срочным и связано ли оно с оплатой» следует разделить на два вопроса predicate в одном запросе.
4. Задавайте name для каждого вопроса. Без него запрос выполняется успешно, однако ответы не содержат name и сопоставляются с вопросами только по порядку, что при большом количестве вопросов приводит к ошибкам.
5. Объединяйте несколько вопросов в одном запросе. Вопросы в одном запросе используют общий ввод, который тарифицируется однократно. По результатам измерений запрос с 60 вопросами выполняется примерно за 0.9 с, с одним вопросом — примерно за 0.6 с.
Описание возвращаемых результатов
{
"type": "choice",
"name": "team",
"choice": "billing",
"confidence": 0.85,
"probabilities": [
{ "value": "billing", "probability": 0.9 },
{ "value": "technical", "probability": 0.1 },
{ "value": "other", "probability": 0 }
]
}choice: вариант с наибольшей вероятностью, то есть результат решения.probabilities: вероятность каждого варианта; сумма равна 1.confidence: степень надёжности данного решения в диапазоне 0–1. Если вероятности двух вариантов близки,choiceвсё равно содержит результат, но значениеconfidenceбудет низким.score(тип score): значение, вычисленное с весами по вероятностям уровней; уровни нумеруются с 0, результат может находиться между уровнями. Например, 1.43 означает значение между уровнями 1 и 2, ближе к уровню 1.probability(тип predicate): вероятность ответа «да». Для predicate уверенность отдельно не возвращается.
При многократных вызовах с одним и тем же вводом вероятности и уверенность незначительно колеблются (по результатам измерений уверенность для одного и того же обращения находилась в пределах 0.56–0.61), поэтому порог не следует устанавливать вблизи пограничных значений результата.