Как я могу использовать атрибуты сессии в Lex? - PullRequest
0 голосов
/ 06 июня 2019

Я только начал создавать чат-бот с помощью Amazon Lex.Я хотел бы использовать некоторые атрибуты сеанса, чтобы сохранить состояние разговора.По сути, мой бот сначала выбирает файл из БД, например, файл «abc123», а затем сохраняет состояние этого файла, чтобы пользователю не нужно было указывать файл при попытке извлечь содержимое из этого файла.Как сохранить состояние потока в файле?

Я создал Intent под названием «FileQuery» и изменил атрибут sessionAttribute на «file»: fileNo

fileNo передается через пользователейвход в чатбот и сохраняется в переменной.Вот моя лямбда-функция ниже.

exports.handler = (event, context, callback) => {

    //storing users input for file into "file"
    var fileNo = event.currentIntent.slots.FileNumber;

    callback(null, {
      "sessionAttributes": { 
          "file": fileNo,
          "key": "value"
      },
        "dialogAction": {
            "type": "Close",
            "fulfillmentState": "Fulfilled",
            "message": {
                "contentType": "PlainText",
                "content": "File " + fileNo + " selected"
            }

        }

    });


}; //end

Когда пользователь вводит: «Выберите файл abc123»

Lex: «Файл abc123 выбран»

Пользователь: «Дайте мнеимя и контактная информация "

Я хочу, чтобы Lex / Lambda поняла файл в контексте и получила информацию об этом файле.Как я могу это сделать?

1 Ответ

0 голосов
/ 08 июля 2019

Как только вы сохраните атрибут сеанса в вашем атрибуте сеанса lex, то же самое можно получить в вашей лямбда-функции из запроса, используя -

input.sessionAttributes.attributeName
...