0

我正在使用此流程创建 AWS Lex 聊天机器人:用户开始说open my bot,Lex 提出了几个问题,用户必须回答它们,最后生成一个数字,这就是Fulfilled插槽。

这是我的代码:

if (source === "DialogCodeHook") {
    if (!sessionAttributes.isFlowDone) {
    //multiple questions asked and managed by using Elicit Slots
    //once the questions are complete I set sessionAttributes.isFlowDone=true;
} else {
    sessionAttributes.isFlowDone = false;
    callback(close(intentRequest.sessionAttributes, "Fulfilled", buildMessage(finalMessageWithANumber)));
}

问题是,在 AWS Lex 聊天窗口中进行测试时,当生成数字时,如果您清除控制台并输入open my bot,则会再次询问问题并且流程作为新请求完成,我想要的是建立 randomNumber 后,我在open my bot不清除聊天窗口的情况下再次询问,它给了我另一个号码而不是问我问题(直接fulfilled调用回调)。请让我知道如何解决此问题并继续我的流程。

4

1 回答 1

0

当您在控制台聊天窗口中测试机器人时,控制台使用随机用户 ID(在 PosText/PostContent API 中发送)。单击“清除”按钮时,控制台会生成另一个随机用户 ID。此外,机器人会话与用户 ID 相关联,因此单击“清除”按钮提供了一种体验,就像新用户正在与机器人交谈(因此所有问题都被重新询问)。希望这能回答你的问题。

于 2017-09-12T05:12:39.007 回答