繁体   English   中英

Alexa自定义意图接受未存储在可能的插槽中的值。应该触发它的值

[英]Alexa custom intent accepts values which are not stored in the possible slot.values that should trigger it

如果用户要求Alexa播放我在JSON文件中为Alexa控制台上的{radio}插槽提供的电台之一,就会触发我的意图。 但是,如果用户要求Alexa播放“ random_english_words”,则该意图也有效。
为简化起见,将发生以下情况:

-User: Alexa play A better radio  
-Alexa: I will play A better radio  
=> Alexa does her job just fine.  
-User: Alexa play what the Movie  
-Alexa: I will play what the Movie  

Alexa应该发送错误,因为在radio_slot值中“ what the Movie”不是一个可能的无线电名称。 但是等等,这变得更加奇怪。

User: Alexa play aenjaejfn  
Alexa: There was a problem with the requested skill's response 

Alexa的工作很好,因为aenjaejfn在radio_slot值中不是一个可能的无线电名称。

所以我有两个问题:

  1. 仅当用户提供的slot.value有效时,才会触发使用使用插槽的意图吗?
  2. 为什么Alexa接受“ What the Movie”而不是“ aenjaejfn”,毕竟它们都不是radio_name,因此一开始就不应触发意图。

创建自定义插槽类型时,要理解的关键概念是这是Alexa NLP(自然语言处理)的训练数据。 您提供的值不是严格的枚举或数组,它限制了用户可以说的内容。 这有两个含义

1)不在您的广告位值中的单词和短语会传递给您,

2)如果未知,您的代码需要执行所需的任何验证。

由于您知道该插槽的可接受值,因此请始终对代码执行插槽值验证。 这样,当您收到类似“ aenjaejfn”之类的内容或不支持的内容时,您总是可以礼貌地回覆

“对不起,我听不懂,你能再说一遍吗”

要么

“很抱歉,我们的清单中没有aenjaejfn。能否请您从[提供清单中的一些示例]中进行选择?”

更多信息在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM