Lex chatbot可以在testbot中使用yes / no插槽,但不能在expo app中使用。与ConfirmIntent无限循环

时间:2018-10-08 09:31:59

标签: chatbot amazon-lex aws-lex

我遵循了所有在Amazon Lex中创建聊天机器人的教程,并且在测试bot中一切正常。我的聊天机器人需要为每个意图确认大约3个插槽,因此我尝试使用confirmIntent,然后检查“ confirmationStatus”以检查其是否被拒绝或确认。提示有效,但是无论我输入什么内容,提示都保持循环:(.。当我检查cloudwatch时,当确认或拒绝ConfirmStatusStatus时它会正确提示该消息,但它不会在bot本身中执行。

因此,我尝试创建是/否插槽,并在我的lambda函数中对其进行了验证。这在Amazon lex testbot中非常有效。但是,当我将其发布并部署到android应用并使用expo对其进行测试时,yes / no插槽的验证无法正常工作。取而代之的是,即使我输入“ no”,它也只是通过了每个会话对话槽。

这是我的代码的一部分:

if (paymentError) {
        callback(confirmIntent(outputSessionAttributes, intentRequest.currentIntent.name,
            slots, buildMessage("Hi! There was a payment error within your transaction?")));
    }

这就是检查confirmationStatus:

 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")
    }

如何防止聊天机器人在confirmIntent上循环或使其在使用是/否插槽的应用程序上正常工作?

0 个答案:

没有答案