当我在一个样本中有这样的话,打开的插槽时,Alexa会做出正确的反应吗?
MyNameIsIntent {firstname}
ProjektIntent {projekt}现在她总是回到MyNameIsIntent,即使她问了一个ProjektIntent的问题
糟糕的谈话:
Alexa: Welcome, what is your name?
Me: Frank
Alexa Hi Frank, Tell me what project is interesting for you?
Me: Teleshoping
Alexa: Hi Teleshoping, Tell me what project is interesting for you?我对Alexa完全陌生,如果Alexa有可能回答正确的问题,你能给我一个提示吗?我试着用一个会话分配来实现它,但是它不起作用
发布于 2017-03-31 12:17:54
您可以使用state,根据应用程序的状态,在相同的意图上确实有不同的反应。
有关正式文档,请参见https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs#making-skill-state-management-simpler。
您可以创建这样一个StateHandlers字典(在Node.js 4.3中):
var askNameStateHandlers = Alexa.CreateStateHandler("askNameState",
{
"MyIntent": function () { /* ... */ }
// more handlers ...
});然后像这样注册处理程序,假设您有一个没有状态defaultHandlers的处理程序字典,而对于一个特定状态askNameStateHandlers和askProjectStateHandlers有两个处理程序。
exports.handler = function(event, context, callback) {
var alexa = Alexa.handler(event, context);
alexa.registerHandlers(defaultHandlers, askNameStateHandlers, askProjectStateHandlers);
alexa.execute();
};要更改应用程序的状态,只需在处理程序函数中这样分配它:
this.handler.state = "askNameState";然后,alexa-sdk将负责根据应用程序状态调用正确的处理程序。
在https://github.com/alexa/skill-sample-nodejs-highlowgame中也有一个完整的示例实现
请注意,这样,您将只有一个意图MyIntent,它接受这两个问题的答案,决定您的哪个函数应该只基于应用程序状态来处理结果。
发布于 2017-03-30 15:58:41
像这样的话语文件是行不通的。Alexa用话语的文本--除了插槽名之外的东西--来选择一个意图。
因此,不幸的是,您无法设计您的交互,以允许一个仅仅‘远程期望’的反应。相反,用户必须说‘我对Teleshoping感兴趣’(您需要告诉他们这样说),示例语句将是‘我对{projekt}感兴趣’。
发布于 2017-03-31 11:18:25
为了进一步澄清汤姆的回答,阿列克莎不知道“遥望”这个词是你的名字还是项目。如果像Tom提到的那样使用更长的语句,比如“我的名字是{ name }”和“我想要{projekt}”,那么Alexa就不难辨别了。您还可以通过填写槽值来帮助Alexa区分这些差异,但这假定您知道可能的projekt值是什么。firstname可以使用内置的AMAZON.US_FIRST_NAME插槽类型。
https://stackoverflow.com/questions/43119338
复制相似问题