首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jovo FrameWork: this.followUpState没有像它应该做的那样做它的工作

Jovo FrameWork: this.followUpState没有像它应该做的那样做它的工作
EN

Stack Overflow用户
提问于 2018-07-06 18:28:24
回答 1查看 314关注 0票数 0

我有这样的意图

代码语言:javascript
运行
复制
       '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

代码语言:javascript
运行
复制
'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。我认为使用状态可以很好地解决这个问题。他们应该这样做。但是,他们不是,我真的不明白为什么。帮助?

EN

回答 1

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51208373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档