Amazon Lex, предотвращающий намерение активировать - PullRequest
0 голосов
/ 22 октября 2018

У меня настроено намерение, где пользователь может спросить о сбросе своего пароля.Мой бот успешно обнаруживает, что пользователь спрашивает о сбросе пароля и отвечает правильно.Бот предоставляет пользователю справку о том, как сбросить свой пароль, а затем спрашивает, хотят ли они зарегистрировать заявку в службу поддержки.Когда они вводят высказывание «Создать заявку», запускается второе намерение.

Второе намерение запрашивает у пользователя адрес электронной почты, идентификатор клиента и описание заявки.

Все работает хорошодо тех пор, пока пользователь не введет описание и бот не вызовет первое намерение относительно сброса пароля и снова не предоставит пользователю справку по сбросу пароля.

Существует ли способ предотвратить срабатывание первого намерения, пока пользовательвводит описание как часть вопросов во втором намерении?

1 Ответ

0 голосов
/ 26 октября 2018

К сожалению, нет способа заставить Лекса игнорировать намеренные высказывания, но Лекс достаточно умен, чтобы попытаться распознать на уровне слота перед проверкой уровня намерения.

У меня также есть некоторые подобные ситуации, когдаВыявление слота также является намеренным высказыванием, но я обнаружил, что если значения slotType включают в себя эти возможные намеренные высказывания, то Лекс выполняет хорошую работу по проверке и заполнению слота перед проверкой на совпадение в намерениях.

Итак, имея в виду, вот несколько вариантов, которые я бы рассмотрел:


A.
Автозаполнение начала description на основепредыдущий IntentName или фраза, которая вызвала намерение.Затем спросите, хотят ли они добавить к нему в явном description.Таким образом, им не нужно будет повторять фразы, которые вызывают намерение.Я бы написал следующее приглашение:

В описании этого билета я уже написал «Сброс пароля».Что еще вы хотели бы добавить к описанию?

Даже просьба закончить предложение может сработать хорошо:

Пожалуйста, заполните это предложение, чтобы добавить его в качестве описания.этого билета: «Я сбрасываю свой пароль, потому что ...»

B.
Добавьте все намеренные высказывания в качестве одного из descriptionslotType значения.Таким образом, Лекс распознает слова, использованные в описании, как заполнение слота, прежде чем проверять, соответствуют ли они намеренному высказыванию.

C.
Я бы рассмотрел ограничение описания, илидаже построение описания из нескольких слотов.Например, может быть, каждое описание должно включать (1) причину, (2) уровень приоритета / важности и т. Д. И поэтому создайте слот для «причины» и «приоритета» и извлекайте их специально с помощью:

Какова причина сброса пароля?
Какой уровень приоритета вы даете этому билету?

Затем в Lambda соедините эти (и любые другие) вместе в описании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...