alexa aws lambda 集成问题|如何处理重新提示?
alexa aws lambda integration issue| How to handle reprompt?
我是node.js的新手,正在尝试开发基于lambda的示例alexa技能function.My启动请求函数是这样的。
'LaunchRequest': function () {
const speechOutput = HELP_MESSAGE;
console.log("Inside launch");
const reprompt = "Welcome to US Facts. Do you want a new fact";
this.response.speak(speechOutput).listen(reprompt);
this.emit(':responseReady');
// this.emit('GetmyFactIntent');
},
我想捕捉用户表达的价值是什么?语音输出发出正常但基于用户值 entered\uttered 我想调用不同的意图。
怎么做?
另外,当我测试 lambda 函数时,console.log stmt 从未被打印出来。它从 GetmyFactIntent 方法打印得很好。
this.event.request.intent.slots.Answer.value;
我们需要在意图中定义插槽,然后捕获该值。
在 Alexa 交互模式中,为每个 Intent 创建具有许多示例话语的不同 Intent。如果您想从用户那里获得任何价值,请添加带有话语的插槽,即 "my favorite color is green" 这里绿色是用户输入,您可以从插槽中获取。
下面是 Quiz Intent 的交互模型,您不需要任何插槽。
{
"name": "QuizIntent",
"samples": [
"start a quiz",
"start a quiz game",
"and start a quiz",
"and quiz me",
"for a quiz",
"a quiz"
],
"slots": []
}
但是answer Intent需要slot来从用户回复中得到答案。在下面的用户交互模型中,用户将给出状态名称,Alexa 将从内置插槽类型 AMAZON.US_STATE
中获取它
{
"name": "AnswerIntent",
"samples": ["{StateName}"],
"slots": [
{
"name": "StateName",
"type": "AMAZON.US_STATE",
"samples": []
} ]
}
您可以使用以下代码行在 Node.js lambda 函数中获取插槽值
let slots = this.event.request.intent.slots;
let stateName = this.event.request.intent.slots["StateName"];
有关详细信息,请参阅本教程https://github.com/alexa/skill-sample-nodejs-quiz-game
我是node.js的新手,正在尝试开发基于lambda的示例alexa技能function.My启动请求函数是这样的。
'LaunchRequest': function () {
const speechOutput = HELP_MESSAGE;
console.log("Inside launch");
const reprompt = "Welcome to US Facts. Do you want a new fact";
this.response.speak(speechOutput).listen(reprompt);
this.emit(':responseReady');
// this.emit('GetmyFactIntent');
},
我想捕捉用户表达的价值是什么?语音输出发出正常但基于用户值 entered\uttered 我想调用不同的意图。 怎么做?
另外,当我测试 lambda 函数时,console.log stmt 从未被打印出来。它从 GetmyFactIntent 方法打印得很好。
this.event.request.intent.slots.Answer.value;
我们需要在意图中定义插槽,然后捕获该值。
在 Alexa 交互模式中,为每个 Intent 创建具有许多示例话语的不同 Intent。如果您想从用户那里获得任何价值,请添加带有话语的插槽,即 "my favorite color is green" 这里绿色是用户输入,您可以从插槽中获取。
下面是 Quiz Intent 的交互模型,您不需要任何插槽。
{
"name": "QuizIntent",
"samples": [
"start a quiz",
"start a quiz game",
"and start a quiz",
"and quiz me",
"for a quiz",
"a quiz"
],
"slots": []
}
但是answer Intent需要slot来从用户回复中得到答案。在下面的用户交互模型中,用户将给出状态名称,Alexa 将从内置插槽类型 AMAZON.US_STATE
中获取它{
"name": "AnswerIntent",
"samples": ["{StateName}"],
"slots": [
{
"name": "StateName",
"type": "AMAZON.US_STATE",
"samples": []
} ]
}
您可以使用以下代码行在 Node.js lambda 函数中获取插槽值
let slots = this.event.request.intent.slots;
let stateName = this.event.request.intent.slots["StateName"];
有关详细信息,请参阅本教程https://github.com/alexa/skill-sample-nodejs-quiz-game