在lex中响应之后保持会话

时间:2017-09-03 19:31:38

标签: amazon-lex

我正在使用此流程创建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回调) 。请告诉我如何解决这个问题并继续我的流程。

1 个答案:

答案 0 :(得分:0)

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