用户可以通过语音设置广告位和广告位的同义词

时间:2018-10-24 09:30:11

标签: alexa alexa-skills-kit alexa-skill alexa-slot

我会用意图,能力和槽位来创造技能 我想知道用户是否可以通过语音设置广告位或广告位同义词。

我的设置: 目的:出口目的 上流:您可以打开{IOT} 插槽:{IOT}:出口

例如:

  

用户:请打开插座,Alexa:可以打开插座

     

用户:您能添加插座Alexa的同义词:告诉我同义词User:   Power Alexa:完成

     

用户:请您打开电源,Alexa:电源已打开

然后

插槽-> {IOT}:插座=>同义词:电源

很明显,如果没有,不要犹豫告诉我哈哈, 预先感谢

2 个答案:

答案 0 :(得分:3)

您不能以一项用户的身份更改一项技能的交互模型。
作为开发人员,您始终可以通过开发人员门户或Alexa Skill Management API添加新的同义词。但是,对于您在交互模型中进行的每次更改,都需要重新构建您的技能。

仅在development skills(通过门户网站或SMAPI)中可以更改交互模型,一旦您的技能发布,您将永远无法添加同义词。如果要添加,则其交互模型将发生变化,并且您必须先获得认证,然后才能发布该新技能版本(技术上是新的/更新的交互模型)。


  

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

     

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

     

2)您的代码需要执行所需的任何验证(如果有的话)   说不明

因此,您可以期望Alexa返回示例中未定义的插槽值。您的IOT插槽也将返回其他值。只需提供IOT的各种示例插槽值即可。每当您的技能后端收到插槽值时,请对其进行验证并继续。

如果您只想响应用户添加的同义词,则可以在用户添加新的广告位值后进行保存。 例如:

User: Can you add synonym of outlet
Alexa: tell me the synonym 
User: Power

现在,当您收到此插槽值作为电源时,将其与用户添加的用于数据库出口的同义词列表保持一致。即{IOT}插槽。

Alexa: Done

现在,当用户说:

User: Can you turn on the Power please 

由于Alexa传递了其他未定义的插槽值,因此您应将IOT插槽值作为power获得。现在,在您的后端中,检查是否已经添加值power作为outlet的同义词,并做出相应的响应。

对于已发布的技能,交互模型的任何更改都要求在重新启用新版本之前对其进行认证。

答案 1 :(得分:0)

是的,可以!

您需要创建如下所示的意图:

意图:AskForSynonymChange
提示:您可以添加{ExistingSlotValue}的同义词吗?

意图:TakeSynonymValue
发言权:将其设置为{NewSynonymValue}

  

ExistingSlotValue是一个自定义插槽,您可以在其中添加其值   根据您拥有的所有IOT个广告位值进行定义。

     

NewSynonymValue的类型为AMAZON.SearchQuery

此后,您需要根据您在处理函数中获得的上述响应来更新交互模型。

您可以使用“ Alexa技能管理API” (SMAPI)
这里的更多信息:https://developer.amazon.com/docs/smapi/interaction-model-operations.html

您可以获得当前的交互模型: https://developer.amazon.com/docs/smapi/interaction-model-operations.html#get-interaction-model

然后通过将{NewSynonymValue}添加到{ExistingSlotValue}的同义词中的修改来更新此交互模型:https://developer.amazon.com/docs/smapi/interaction-model-operations.html#update-interaction-model

之后,您需要发布自己的技能,是的,再次使用SMAPI
https://developer.amazon.com/docs/smapi/skill-certification-operations.html#request

让我知道这是否对您有用。