Я следовал всем инструкциям по созданию чат-бота в Amazon Lex, и все отлично работает в тестовом боте.Мой чат-бот должен подтвердить около 3-х слотов для каждого намерения, поэтому я попытался использовать verifyIntent, а затем проверил «translationStatus», чтобы проверить, было ли оно отклонено или подтверждено.Подсказка работала, но она продолжала работать, независимо от того, какой ввод я вводил :(. Когда я проверял cloudwatch, он корректно выдавал сообщение при подтверждении или отклонении Подтверждения Статуса, но не выполнялось в самом боте.
Поэтому я попытался создать слоты да / нет и проверил их в своих лямбда-функциях. Это прекрасно работает в тестовом ботанике amazon lex. Однако, когда я опубликовал и развернул его в приложении для Android и протестировал его с помощью expo, проверка да / нетСлоты не работали. Вместо этого он просто проходил через каждый слот для потока разговоров, даже если я ввел «нет».
Вот часть моего кода:
if (paymentError) {
callback(confirmIntent(outputSessionAttributes, intentRequest.currentIntent.name,
slots, buildMessage("Hi! There was a payment error within your transaction?")));
}
Тогда это проверкаthe translationStatus:
if ('confirmationStatus' in intentRequest.currentIntent && intentRequest.currentIntent.confirmationStatus === 'Denied') {
callback(elicitIntent(outputSessionAttributes, buildMessage("Sorry! I must've gotten it mixed up. Can you please re-enter your dispute?")), "success")
}
Как запретить зацикливание моего чат-бота на verifyIntent или заставить его работать при развертывании с приложением, использующим слоты да / нет?