AWS Lex - Как делить ценности от одного намерения к другим намерениям - PullRequest
0 голосов
/ 19 июня 2019

Я довольно новичок в том, что касается использования Lambda с Lex и сценариев в целом. Намеренно спрашиваю у пользователей их имя, фамилию и организацию. Мне интересно, есть ли способ, которым я могу поделиться этой информацией через другие намерения в том же чате? Например, когда я отвечаю пользователю в другом намерении, я хочу иметь возможность использовать его имя в ответе обратно ему. Я смотрел в Интернете, и я очень запутался, как этого добиться. Любая помощь очень ценится в этом. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 23 июня 2019

Чтобы сохранить значения в нескольких целях, используйте SessionAttributes.

Обычно резервируют значения слотов внутри SessionAttributes, чтобы вы могли использовать их в других намерениях или иметь возможность вернуться к исходному намерению и восстановить слоты, чтобы продолжить там, где остановился пользователь.

Пример в намерении A:

//get the values of the slots, use your slot names at the end
var first_name = event.currentIntent.slots.first_name;
var last_name = event.currentIntent.slots.last_name;
var organization = event.currentIntent.slots.organization;

//insert slot values into sessionAttributes
event.sessionAttributes = {
    "first_name": first_name,
    "last_name": last_name,
    "organization": organization,
};

Когда вы отвечаете на lex с помощью обновленных атрибутов sessionAttributes, эти значения будут сохранены и доступны в других целях.

Сейчас в намерении B:

var first_name = event.sessionAttributes.first_name; 

var response_message = "Hello, "+ first_name +". I can help you to ...";
0 голосов
/ 21 июня 2019

Вводимые пользователем данные в Amazon lex обрабатываются с помощью слотов.Когда запрос обрабатывается вашим лямбда-кодом AWS, вы можете сохранить эти захваченные данные в любом намерении, которое вы хотите использовать.

...