我有一种Alexa技能,一方面要求输入姓名,另一方面要求输入数字。名称将映射到AMAZON.FirstName类型的插槽,数字将映射到AMAZON.NUMBER类型的插槽。问题在于Alexa积极地将偶数值解释为名称。 (例如,说“八”可能会被冠以“泰特”的名字。)
据我所知,对话框委托只有在您确切知道每种类型需要捕获多少时才有用。但就我而言,我需要捕获一个名字的次数是可变的,所以我不能只填写一次该职位并完成工作。
理想情况下,我想以编程方式打开和关闭插槽。因此,当我提示用户输入名称时,任何话语都只能映射到名称上或被拒绝(显然,HELP和EXIT等仍然可以使用)。然后,当我要求输入数字时,任何话语都只会被映射为数字,它甚至都不会尝试将其转换为AMAZON.FirstName类型。
有什么方法可以实现?还是对于这种情况还有其他解决方法吗?
答案 0 :(得分:0)
我会改变您采用的方法。在编写代码之前,您就有了一个很好的验证工具。单击您要验证的插槽,然后单击“验证”标签。
就在此处,您可以添加一个或两个规则。如果您选择一个,则可以添加“不在一组值之内”,并且可以键入“一个”,“两个”等,以避免将这些数字值放入名称槽。
如果您通过两个规则验证,则需要添加“插槽类型的插槽值内的值”。这样,您将只接受AMAZON.FirstName插槽类型内的值。
您实际上并不需要启用/禁用插槽,只需简单地将两者放在同一位置即可。只要确保您正确地验证了插槽,就可以避免无效数据进入您的技能:)
了解更多:https://developer.amazon.com/es-mx/docs/custom-skills/validate-slot-values.html