Да, все работает так, как задумано.
Вы можете сделать одно или другое.
Либо (1) настроить ответ в консоли Lex, когда намерение выполнено.
Или (2) создайте свой собственный ответ в Lambda, когда намерение будет выполнено.
Использование функции Lambda дает вам гораздо больший контроль над вашим ботом и позволяет вам отвечать более динамичными и адаптированными сообщениями.
Так что, если вы переходите на использование лямбды, вы должны будете сами создать этот ответ при выполнении намерения.Возможно, вы захотите использовать confirmIntent
для этого типа вопросов да / нет.
Проверьте Формат ответа Lambda-Lex (подтвердите намерение на полпути вниз по странице)
ConfirmIntent - сообщает Amazon Lex, что от пользователя ожидается, что он ответит «да» или «нет» для подтверждения или отклонения текущего намерения.
Отправка этого ответа в качестве Подтверждения будет выглядеть примерно так::
"dialogAction": {
"type": "ConfirmIntent",
"message": {
"contentType": "PlainText",
"content": "Would you like me to do another calculation?"
},
"intentName": "intent-name",
"slots": {
"slot-name": "value",
"slot-name": "value",
"slot-name": "value"
},
}
Ваша лямбда должна будет обработать ответ на этот вопрос.
Ответ пользователя будет возвращен с тем же намерением, и confirmationStatus
будет:
None
-не подтверждено Используется
Confirmed
- пользователь ответил «да» на вопрос о подтверждении
Denied
- пользователь ответил «нет» на вопрос о подтверждении
Проверьте ту же ссылку выше в верхней частистраницы для формата входного события от Lex к Lambda.
Просто подсказка:
Вместо этого вы можете просто выполнить намерение с помощью сообщения close
и спросить пользователячто-то вроде "Как еще я могупомочь вам? "
Тогда пользователь может сразу задать другой расчет, не сказав да или нет перед каждым вопросом расчета.