我会用意图,能力和槽位来创造技能 我想知道用户是否可以通过语音设置广告位或广告位同义词。
我的设置: 目的:出口目的 上流:您可以打开{IOT} 插槽:{IOT}:出口
例如:
用户:请打开插座,Alexa:可以打开插座
用户:您能添加插座Alexa的同义词:告诉我同义词User: Power Alexa:完成
用户:请您打开电源,Alexa:电源已打开
然后
插槽-> {IOT}:插座=>同义词:电源
很明显,如果没有,不要犹豫告诉我哈哈, 预先感谢
答案 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
让我知道这是否对您有用。