Alexa 技能 - 以编程方式 Enable/Disable 插槽匹配

Alexa Skill - Programmatically Enable/Disable Slot Matching

我有一项 Alexa 技能,有时会询问姓名,有时会询问数字。名称被映射到 AMAZON.FirstName 类型的插槽,数字被映射到 AMAZON.NUMBER 类型的插槽。问题在于 Alexa 积极地将偶数值解释为名称。 (例如,说 "eight" 可能会被转换为名字 "Tate.")

据我所知,只有当您确切知道需要捕获每种类型的数量时,对话委派才有用。但在我的情况下,我需要捕获一个名字的次数是可变的,所以我不能只填一次就完事了。

理想情况下,我想要一种以编程方式打开和关闭插槽的方法。因此,当我提示用户输入姓名时,任何话语都只能映射到姓名或被拒绝(显然帮助和退出等仍然有效)。然后当我要求一个数字时,任何话语都只会映射到一个数字,它甚至不会尝试将其转换为 AMAZON.FirstName.

类型

有什么办法可以实现吗?或者对于这种情况还有其他解决方法吗?

我会改变您所采用的方法。在开始编写代码之前,您有一个很棒的验证工具。单击您要验证的插槽,然后单击 "validations" 选项卡。

就在那里,您可以添加一个或两个规则。如果你这样做,你可以添加 "not within a set of values" 并且你可以键入 "one"、"two" 等,以避免在你的名称槽中获得这些数值。

如果采取两条规则验证,则需要添加一个"Value within slot types' slot values"。这样,您将只接受 AMAZON.FirstName 插槽类型中的值。

你真的不需要 enable/disable 一个插槽,你可以简单地在同一个话语中同时使用这两个插槽。只要确保您正确地验证了您的插槽,这样您就可以避免无效数据进入您的技能:)

阅读更多:https://developer.amazon.com/es-mx/docs/custom-skills/validate-slot-values.html