Неправильный ответ от QnAMaker с ключевым словом - PullRequest
0 голосов
/ 24 декабря 2018

Я работал с Microsoft Bot Framework v4 и QnA Maker (GA).Проблема, с которой я столкнулся, заключается в том, что пользователь вводит ключевое слово, например, «оставить отсутствие».Есть более 10 видов вопросов об отсутствии отпуска.QnAMaker отправит обратно тот, кто набрал наибольшее количество баллов, независимо от того, какой это вид (не правильный ответ).

У меня есть дерево для ответа на вопрос, который выглядит примерно так:

Отпуск

  1. Отпуск по уходу за ребенком
  2. Отпуск по беременности и родам
  3. Отпуск по уходу
  4. и т. Д.
    У каждого вида может быть один или несколько связанных вопросови отпуск также может иметь дополнительный отпуск.

Когда пользователь спрашивает «оставить отсутствие», бот должен ответить: «Какой тип отсутствия по уходу» и после того, как пользователь может задать вопрос об этом.
Когда пользователь спрашивает «Как»у меня может быть много дней для отпуска по уходу за ребенком », бот должен ответить прямо из QnA:« У вас может быть 10 свободных дней ».

Мой вопрос: как я могу реализовать это в v4, чтобы пользователь мог получить правильный ответ?LUIS вариант для этого?Есть предложения?

Спасибо.

1 Ответ

0 голосов
/ 27 декабря 2018

Трудно, если у вас есть вопрос за вопросом к пользователю.Для этого вам может понадобиться отдельный класс Dialog с

List<string>

для набора вопросов, построенного, конечно, во время выполнения.В конце он может вернуться к исходному классу Dialog.Я реализовал нечто подобное для вакансий на разных должностях.Каждый пост имеет свой набор вопросов.Элемент управления остается в этом QuestionnaireDialog (отдельный класс Dialog), задавая следующий вопрос, как только пользователь ответит на текущий вопрос.Я не думаю, что QnA Maker поможет в этом.Я не видел QnA Maker много, ни V4.Я сделал выше на v3, и отображение намерения-ответа было в таблице базы данных.Я предлагаю выровнять вашу структуру, если это возможно, с нескольких уровней до двухуровневых, чтобы избежать дерева.

Например:

Leaves --> Care Leave --> Medical Care Leave
                      --> Family Care Leave

Измените структуру на

Leaves --> Medical Care Leave
       --> Family Care Leave

, чтобы вы могли управлять ею с помощью объектов LUIS.Простой запрос об отпуске принесет ответ, в котором будут доступны все типы листьев, а конкретный вопрос о типе отпуска даст другой ответ, специфичный для данного типа.Я снова сделал нечто подобное без QnA Maker в v3.Если вы не можете сгладить структуру, вам, вероятно, придется ввести смесь двух подходов, потому что вы хотите ответить на конкретный запрос типа отпуска (сущности LUIS) и отправить пользователя с помощью вопросника.

...