【问题标题】:Simple Utterance after Launch request Amazon Alexa启动请求 Amazon Alexa 后的简单话语
【发布时间】:2018-08-29 20:10:37
【问题描述】:

我刚刚进入 Alexa 并制作了经典的“太空事实”技能。但是,我没有找到任何关于如何在启动请求后添加话语的资源。

我想做的一个例子: 我:Alexa 开放空间事实 Alexa:土星很大 我:下一个

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

我想要实现的是,在一个空间事实之后,用户可以简单地说“下一个”或“再一个”来再次触发我的功能。

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

【问题讨论】:

    标签: alexa alexa-skill alexa-voice-service


    【解决方案1】:

    Space Fact 技能包含一系列事实。因此,您所要做的就是在用户说“下一个”或“再一个”时从数组中选择一个。

    使用 AMAZON.NextIntent
    为了捕获用户的“下一步” 话语,请在您的交互模型中使用预定义的AMAZON.NextIntent。所以当用户说“下一步”时,这个意图就会被映射。还添加 “one more” 作为此意图的额外话语。

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

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

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

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

    【讨论】:

    • 感谢您的回答!我不知道有预定义的“NextIntent”,这可能就是我遇到麻烦的原因。很棒的答案!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      • 2018-02-24
      • 1970-01-01
      • 2016-11-09
      相关资源
      最近更新 更多