启动请求 Amazon Alexa 后的简单话语

Simple Utterance after Launch request Amazon Alexa

我刚进入 Alexa 并制作了经典的 "Space fact" 技能。但是,我没有找到有关如何在启动请求后添加话语的任何资源。

我想做的一个例子: 我:Alexa 打开 Space 事实 Alexa:土星很大 我:下一个

我认为命令 "next" 必须是一个话语。我考虑过使用插槽或意图确认,但我认为这不会奏效,对吗?

我想要实现的是,在 space 个事实之后,用户只需说 "next" 或 "one more" 即可再次触发我的功能。

我是不是错过了什么,是没有记录还是不可能?

Space 事实技能具有一系列事实。所以你所要做的就是当用户说 "Next" 或 "One more".

时从数组中选择一个

使用AMAZON.NextIntent
为了捕获用户的 "Next" 话语,请在交互模型中使用预定义的 AMAZON.NextIntent。因此,当用户说 "Next" 时,将映射此意图。还添加 "one more" 作为此意图的额外话语。

现在,在您的后端代码中添加 AMAZON.NextIntent 处理程序,并为其响应从事实数组中获取另一个事实。 (添加一些逻辑,使技能不会再次随机 return 相同的事实。您可以使用 sessionAttributes 来跟踪读取事实索引)

注意:为了让 Alexa 在说出第一个事实后等待用户输入,您需要保持会话活动。据我所知,事实技能在说出第一个事实后结束会话。

会话根据响应中的 shouldEndSession 参数保持活动状态。对于任何请求,如果未提供,shouldEndSession 默认为 true。在您的情况下,对 LaunchRequest 的响应应该将此 shouldEndSession 参数设置为 false。只有会话保持打开并且用户可以说 "next".

阅读 this answer 以了解有关如何使用 ask-nodejs-sdk 保持会话活动的更多信息。

仅在构建选项卡下的 ASK 开发者控制台中添加您的对话(话语和回复)。 您将需要执行以下操作 - 1. 创建意图 2.添加话语 3.添加回复 4.保存并构建