2017-09-03 104 views
0

我正在創建一個帶有此流程的AWS Lex chatbot:用戶開始說open my bot,並且Lex詢問了幾個問題,用戶必須回覆它們,最後一個數字是生成,這是Fulfilled插槽。在lex響應後保留會話

這裏是我的代碼:

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萊克斯測試聊天窗口中,當產生的號碼,如果您清除控制檯,輸入open my bot,問題是一旦再次詢問和流程是作爲一個新的請求完成,我想要的是,在建立randomNumber後,我再次要求open my bot沒有清除聊天窗口,它給了我另一個數字,而不是問我的問題(直接調用fulfilled回調)。請讓我知道我該如何解決這個問題,並繼續我的流程。

+0

你可以發佈你的完整代碼,即問題和數字生成的位置? – AndyOS

回答

0

控制檯在控制檯聊天窗口中測試機器人時使用隨機用戶標識(在PosText/PostContent API中發送)。點擊「清除」按鈕控制檯會生成另一個隨機用戶標識。此外,殭屍程序會話與用戶ID相關聯,因此單擊「清除」按鈕可以提供類似於新用戶與機器人聊天的體驗(因此所有問題都會再次提出)。希望這回答你的問題。

+0

我可以通過編程方式重置用戶標識嗎? – user3872094

+0

如果您在控制檯中使用Lex SDK而不是聊天窗口,那麼您可以控制通過SDK傳遞的使用ID。在聊天窗口的情況下,不建議控制傳遞用戶標識的方式。 – Saurabh