0

{radio}如果用户要求 Alexa 播放我在 JSON 文件中为Alexa 控制台上的插槽提供的收音机之一,我的意图就会被触发。但是,如果用户要求 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 应该发送一个错误,因为“what the Movie”不是radio_slot值中可能的广播名称。但是等等,这变得更奇怪了。

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 并且不应该首先触发意图。
4

1 回答 1

0

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

1) 不在您的槽值中的单词和短语将传递给您,

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

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

“对不起,我没听懂,你能重复一遍吗?”

或者

“抱歉,我们的列表中没有 aenjaejfn。您能从 [从您的列表中提供一些样品] 中选择一些吗”

更多信息在这里

于 2018-07-03T11:16:01.153 回答