在将Lambda与Lex结合使用以及编写脚本方面,我还很陌生。我打算向用户询问他们的名字,姓氏和组织。我想知道是否可以在同一聊天机器人中的其他意图之间共享此信息?例如,当我以另一种意图回应用户时,我希望能够在回复他们时使用他们的名字。我在网上看过,但我对如何实现这一目标感到非常困惑。对此,我们将提供任何帮助。预先谢谢你。
答案 0 :(得分:0)
使用插槽处理Amazon lex中捕获的用户输入。当您的AWS Lambda代码处理请求时,您可以将捕获的数据存储在您希望使用的任何Intent中。
答案 1 :(得分:0)
要跨多个意图存储值,请使用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,
};
当您使用更新后的sessionAttributes响应lex时,这些值将被保存并以其他目的使用。
现在在意图B中:
var first_name = event.sessionAttributes.first_name;
var response_message = "Hello, "+ first_name +". I can help you to ...";
答案 2 :(得分:0)
(一种方式)这可以使用上下文来完成,初始化输出上下文“first_name”在意图中要求名称,并将所有其他意图输入上下文作为“first_name”。因此,当“first_name”被填满时,它就会被激活并且所有其他意图都可以被识别。