我试图写一个"琐事测验"技能,就像许多已经存在的技能一样,但我希望用户能够给出实际答案,而不是" a / b / c"或" 1/2/3"。所以谈话会像这样:
Mercury
Chevrolet
...等...
由于每个问题都有自己的一组答案,我很乐意为每个问题创建一个自定义广告位类型,因此我的LIST_Q1_ANSWERS
广告位为["Mercury", "Venus"]
LIST_Q2_ANSWERS
的{{1}}位置,这一切都很好。但是,我不知道如何告诉我的技能,答案应仅来自这个特定的自定义插槽。
我 当然可以为每个问题创建一个特定的["Cadillac", "Chevrolet"]
,因此我创建了Intent
,我启动了一个对话框,我Q1Intent
我的{{} 1}}。但是,这并没有成功,因为在我的响应中填写所需的Elicit
广告位时,我不得不说"更正"并且还询问下一个问题,这意味着我必须Q1Intent
LIST_Q1_ANSWERS
...并且不允许这样做;我必须先结束Dialog,然后再开始一个新的。 (所以谈话会进入"哪个星球......?#34;"水星""正确!你想要下一个问题吗?""是& #34;"好的。哪家公司......"那并不好。)
我可能在这里过于复杂。也许有一种更简单的方法来模拟我想要的语音界面。我当然可以在一个大的自定义广告位中定义所有不同的答案,然后只有一个Elicit
,但人们可以回答Q2Intent
行星问题而且这很愚蠢。 (我知道我必须处理问题的任何答案,而不仅仅是插槽中的答案,但我想将问题偏向于从插槽中选择答案;那是什么插槽用于。)
那么,我该怎么做呢?对话不会起作用,我不会想。
答案 0 :(得分:1)
这是一个非常合理的请求,IMO,但Alexa仍然无法实现。使用其他一些机器人/人工智能平台,您可以指定一个上下文,使其尝试将用户响应与您的技能意图的子集相匹配(通常只有1,我认为)。
这是一个流行的Alexa功能请求,它在同一点上:
允许根据应用程序状态暂时禁用意图/话语 https://forums.developer.amazon.com/content/idea/40045/allow-temporarily-disabling-intentsutterances-base.html
答案 1 :(得分:-1)
是的,我相信你可以做到你想要的。我在"Who's On First?" baseball skit技能中做了类似的事情。
可能还有很多其他方法可以实现这一目标,但我采取了以下方法:
我希望这可以让您了解如何继续。 Alexa可以做很多事情。我们有时需要发挥创意。