我刚刚进入Alexa并制作了经典的“太空事实”技巧 . 但是,我没有找到任何有关如何在启动请求后添加话语的资源 .
我想做的一个例子:我:Alexa open Space Facts Alexa:土星很大我:下一个
我认为命令“下一个”必须是一个话语 . 我想过使用插槽或意图确认,但我认为这不会起作用,是吗?
我想要实现的是,在一个空间事实之后,用户可以简单地说“下一个”或“再一个”来再次触发我的功能 .
我是否只是错过了什么,是不是没有记录或是不可能的?
太空事实技巧有一系列事实 . 所以你要做的就是当用户说“Next”或“One more”时从数组中选择一个 .
Use AMAZON.NextIntent要捕获用户的"Next"话语,请在交互模型中使用预定义的 AMAZON.NextIntent . 因此,当用户说"Next"时,将映射此意图 . 同时添加"one more"作为此意图的额外话语 .
AMAZON.NextIntent
现在,在你的后端代码中添加 AMAZON.NextIntent 处理程序,并为其响应从事实数组中获取另一个事实 . (添加一些逻辑,以便技能不会再次随机返回相同的事实 . 您可以使用 sessionAttributes 来跟踪读取事实索引)
sessionAttributes
Note: 为了让Alexa在说出第一个事实后等待用户输入,您需要保持会话处于活动状态 . 据我所知,事实技巧在它说出第一个事实后结束了 Session .
会话根据响应中的 shouldEndSession 参数保持活动状态 . 对于任何请求,如果未提供, shouldEndSession 默认为 true . 在您的情况下,对 LaunchRequest 的响应应将此 shouldEndSession 参数设置为 false . 只有会话保持开放且用户可以说"next" .
shouldEndSession
true
LaunchRequest
false
阅读this answer以了解有关如何使用ask-nodejs-sdk保持会话活动的更多信息 .
1 回答
太空事实技巧有一系列事实 . 所以你要做的就是当用户说“Next”或“One more”时从数组中选择一个 .
Use AMAZON.NextIntent
要捕获用户的"Next"话语,请在交互模型中使用预定义的
AMAZON.NextIntent
. 因此,当用户说"Next"时,将映射此意图 . 同时添加"one more"作为此意图的额外话语 .现在,在你的后端代码中添加
AMAZON.NextIntent
处理程序,并为其响应从事实数组中获取另一个事实 . (添加一些逻辑,以便技能不会再次随机返回相同的事实 . 您可以使用sessionAttributes
来跟踪读取事实索引)Note: 为了让Alexa在说出第一个事实后等待用户输入,您需要保持会话处于活动状态 . 据我所知,事实技巧在它说出第一个事实后结束了 Session .
会话根据响应中的
shouldEndSession
参数保持活动状态 . 对于任何请求,如果未提供,shouldEndSession
默认为true
. 在您的情况下,对LaunchRequest
的响应应将此shouldEndSession
参数设置为false
. 只有会话保持开放且用户可以说"next" .阅读this answer以了解有关如何使用ask-nodejs-sdk保持会话活动的更多信息 .