Какой тип встроенного слота Amazon Lex используется для описания или примечаний? - PullRequest
1 голос
/ 28 мая 2020

Я настроил своего бота AWS Lex для задач «Назначить встречу» и «Добавить заметки».

При планировании встречи у меня есть слот «Описание встречи», где пользователь может добавить одно слово в приговор. Точно так же для добавления заметок у меня есть «Заметки».

Для этого слота я не нашел ни одного встроенного типа слота, такого как «AMAZON.Description», или чего-либо, что могло бы хранить слово или предложение. Я пробовал с AMAZON.VideoGame, AMAZON.FoodEstablishment и c. Но обнаружил временную проблему с ними. Иногда они работают, а иногда нет.

Кто-нибудь знает, какой тип слота я могу использовать в моем случае? Пожалуйста, поделитесь.

1 Ответ

1 голос
/ 29 мая 2020

Вы захотите использовать Custom SlotType, если хотите перехватить ввод чего-либо.

Когда вы «тренируете» этот SlotType, задавая ему значения, вы должны включать большое разнообразие, например числа, отдельные буквы, отдельные слова, фразы и целые предложения.

Но даже это не всегда улавливает то, что вы хотите. Так что еще лучше использовать лямбда-функцию для самостоятельного анализа и проверки всего ввода. И, скорее всего, просто установите значение вашего слота как всю строку ввода.

Например:

Пользователь: «Добавить в мои заметки»
Бот: «Хорошо, что вы хотите, чтобы я сохранил в ваших заметках? »
Пользователь:« Купите больше туалетной бумаги ».

Теперь пользователь ожидает, что вся фраза будет в заметке. Вам нужно будет использовать высказывания в своем Custom SlotType следующим образом:

Я хочу {note}
Go {note}
Buy {note}
{note}

В этих высказываниях иногда пропадают некоторые слова, а в примере в качестве значения слота указывается только «больше туалетной бумаги» без «покупки». Вот почему вы захотите самостоятельно проанализировать весь ввод. Таким образом, в Lambda вы можете получить весь ввод из inputTranscript.

userInput = event.inputTranscript            // "Buy more toilet paper"
slotNote = event.currentIntent.slots.note    // "more toilet paper"

Затем вы можете сравнить эти два и выполнить причудливую проверку самостоятельно или просто сохранить введенные пользователем данные непосредственно в слот для заметок.

userInput = event.inputTranscript            // "Buy more toilet paper"
event.currentIntent.slots.note = userInput   // overwrites note slot value with correct full user input.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...