我创造了一个技能的意图,子宫和插槽,我想知道用户是否能够设置一个插槽或插槽同义词的声音。
我的设置:意图: OutletIntent Uterrence :您能打开{IOT}插槽:{IOT}:出口吗?
例如,:
用户:你能打开插座吗?亚历克莎:插座打开了。 用户:你能添加插座的同义词吗? Alexa:告诉我同义词用户: Power,Alexa:完成 用户:你能打开电源吗?亚历克莎:电源打开
然后
插槽-> {IOT}:出口=>同义词: Power
跳得清清楚楚,如果毫不犹豫地告诉我哈哈,提前谢谢
发布于 2018-10-24 14:45:39
您不能将技能的交互模型更改为它的用户之一.
作为开发人员,您可以通过开发人员门户或Alexa技能管理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现在,当您以power的形式接收到这个插槽值时,根据用户为数据库中的出口添加的同义词列表将其持久化。呃,{IOT}槽
Alexa: Done现在,当用户说:
User: Can you turn on the Power please 因为Alexa传递其他未定义的槽值,所以您应该将IOT槽值作为power。现在,在后端检查值power是否已经添加为outlet的同义词,并相应地做出响应。
对于发布的技能,交互模型中的任何更改都需要在新版本重新启用之前对其进行认证。
发布于 2018-10-24 09:57:59
可以,停那儿吧!
您需要创建如下所示的意图:
意图: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
如果这对你有用的话请告诉我。
https://stackoverflow.com/questions/52965562
复制相似问题