首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止Amazon在程序流中间启动

阻止Amazon在程序流中间启动
EN

Stack Overflow用户
提问于 2018-01-31 15:05:30
回答 2查看 107关注 0票数 0

我做了一个测试技巧,用户首先会收到Alexa的回复,询问他们是否准备继续。在那里,用户必须要么说“是”,要么说“否”来激活相应的AMAZON.YesIntentAMAZON.NoIntent。然后测试开始,一个用户说一个回答信,然后对每个问题的答案。在我的技能范围内,我使用服务器模拟状态。

通常,我首先要说的是:

“亚历克莎,开始测试技巧”

但是,我发现使用服务器模拟状态并不能为Echo提供非常健壮的语音接口。如果用户说:

“亚历克莎,问一下问答技巧是的”

当亚马逊检测到一个AMAZON.YesIntent时,这个技能将跳转到我要触发的任何设置。这不是我想要的!我希望用户遵循我所设定的技能流程。

有没有一种方法来控制什么意图可以在什么时候被激活?我的一个想法是使用属性来基本上设置下一步允许调用哪些意图。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-01 00:42:49

每个Alexa请求都有一个会话对象。该会话对象具有一个new属性,该属性为true或false,这取决于它是一个全新的会话,适合您的技能。

如果您碰巧使用alexa节点模块来构建您的技能,您还可以使用NewSession处理程序来捕获新会话,并将流转移到您希望开始交互的任何事件/意图。有关状态处理程序的更多信息,可以在github页面这里上找到。

票数 1
EN

Stack Overflow用户

发布于 2018-02-02 12:18:23

虽然我不认为启用/禁用意图是可能的,但您可以更改它们的响应方式。很容易使用session对象来跟踪最后说的意图是什么。然后,您的意图处理程序可以读取会话对象,以查看之前的响应是什么,以便选择如何响应。

在上面的示例中,您可能会将最后一个问题号保存到会话对象中。如果基于前面的(或缺少)问题‘是’是没有意义的,那么您的YesIntent处理程序可以用“对不起,我不知道该怎么做”来回答,甚至可能忽略它,从一开始就启动对话框。

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

https://stackoverflow.com/questions/48545303

复制
相关文章

相似问题

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