Бот для заказа еды У меня есть ветвящийся диалог, если пользователь запрашивает сыр для своего бургера, бот спросит, какой сыр, но затем вернется к первому вопросу в боте и продолжит повторять процесс.
Мой Amazon Lex ElicitSlot повторяет подсказку. Как мне продолжить поток?
Ответы (1)
В ответе ElicitSlot
dialogAction
от функции Lambda вы в настоящее время возвращаете только значение CheeseSlot. Если вы не возвращаете значения для других слотов, Lex рассматривает их как null
, и, как вы заметили, ожидается, что весь поток начнется заново, поскольку слоты помечены как обязательные.
Итак, в ответе от функции Lambda верните все слоты, которые были заполнены при сбросе значения CheeseSlot.
person
Paradigm
schedule
14.07.2020
В настоящее время я столкнулся с той же проблемой. Означает ли это, что мне нужно возвращать несколько значений в slottoelicit?
- person lakshmi; 17.07.2020
@lakshmi Нет, вы должны вернуть только одно имя слота в параметре
slotToElicit
. Параметр slots
будет содержать все значения слотов, уже взятые у пользователя, которые вы не хотите сбрасывать.
- person Paradigm; 17.07.2020
@lakshmi ты нашел какое-нибудь решение. или не могли бы вы поделиться своим обновленным кодом. У меня такая же проблема, и я застрял в ней. Не могли бы вы помочь?
- person Tayyab; 09.11.2020
@Tayyab Я просто создал отдельные намерения для каждого слота вместо того, чтобы иметь несколько слотов в одном намерении.
- person lakshmi; 09.11.2020
@lakshmi, я не думаю, что это хороший подход. это??
- person Tayyab; 10.11.2020
Использование отдельных намерений не рекомендуется, так как это обязательно повлияет на логику сопоставления намерений ботов, и вскоре вы также столкнетесь с максимальным числом намерений на одного бота, равным 100: docs.aws.amazon.com/lex/latest/dg/gl-limits.html#gl-limits -боты
- person Paradigm; 10.11.2020