我有这样的意图
'NameIntent': function(name) {
let speech = 'Hello ' + name.value + ', nice to meet you! which Radio do you want me to play? ;
this.followUpState('MakeSureEnterRadioIntentState').ask(speech);
},它由话语{name}触发。示例:用户说: SAM
stateIntent代码如下:
使用话语{radioName}触发PlayRadioIntent。示例:用户说: Mosaique
'MakeSureEnterRadioIntentState': { //TO solve this problem: IN CASE USER SAYS MOSAIQUE AFTER NAMEINTENT ALEXA WILL INTERPRET MOSAIQUE AS A NAME AND WILL REENTER NAMEINTENT
'PlayRadioIntent': function(channel) {
this.tell("The radioName is" + channel.value);}我试图用这种状态解决的问题是:
亚历克莎:你好,山姆,很高兴见到你!你想让我放哪台收音机?
用户: Mosaique
//Mosaique是一个单选名称
ALEXA:你好,Mosaique,很高兴见到你!你想让我放哪台收音机?
//ALEXA将mosaique解释为名称而不是radioName,然后重新进入NameIntent。我认为使用状态可以很好地解决这个问题。他们应该这样做。但是,他们不是,我真的不明白为什么。帮助?
发布于 2018-07-06 23:25:03
如果处于一种状态,则Jovo Routing的工作方式如下:(1)查看是否在状态中找到了意图,如果没有,(2)查看是否在状态中定义了“未处理”,如果没有,(3)查看是否可以在状态之外找到意图,如果没有,(4)查看是否在状态之外定义了“未处理”,如果没有,(5)抛出错误。
在您的示例中,无法在状态中找到"NameIntent“,因此它转到全局(无状态) "NameIntent”。要保持状态,您可以添加一个“未处理”的意图,该意图充当在其中找不到的任何意图的“全部捕获”。
请看这一节,了解有关状态和未处理的更多信息:https://www.jovo.tech/blog/p2s5-introduction-to-states/#unhandled-intent
https://stackoverflow.com/questions/51208373
复制相似问题