сохранить сеанс после ответа в lex

Я создаю чат-бот AWS Lex со следующим потоком: пользователь начинает говорить open my bot, и Лекс задает пару вопросов, пользователь должен ответить на них, и, наконец, генерируется число, и это слот 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). пожалуйста, дайте мне знать, как я могу это исправить и продолжить мой поток.


person user3872094    schedule 03.09.2017    source источник
comment
Можете ли вы опубликовать свой полный код, то есть вопросы и где генерируется номер?   -  person AndyOS    schedule 08.09.2017


Ответы (1)


Консоль использует случайный идентификатор пользователя (который отправляется в API PosText/PostContent), когда вы тестируете бота в окне чата консоли. При нажатии кнопки «Очистить» консоль генерирует другой случайный идентификатор пользователя. Кроме того, сеанс бота связан с идентификатором пользователя, поэтому нажатие кнопки «Очистить» создает впечатление, что новый пользователь разговаривает с ботом (поэтому все вопросы задаются снова). Надеюсь, что это ответ на ваш вопрос.

person Saurabh    schedule 12.09.2017
comment
Могу ли я программно сбросить идентификатор пользователя? - person user3872094; 12.09.2017
comment
Если вы используете Lex SDK вместо окна чата в консоли, вы можете управлять идентификатором использования, который вы передаете через SDK. В случае окна чата не рекомендуется контролировать, какой идентификатор пользователя передается. - person Saurabh; 12.09.2017