1.1. 用户语句(user_says)
为意图配置任何可能的用户语句,形成映射关系。例如,我们对意图中定义的JSON进行完善:
{
"intents": [
{
"intent": "bestcoffeebar",
"slots": [
{
"name": "city",
"type": "LIST_OF_CITIES"
}
],
"user_says":[
"$city哪里好点的咖啡馆",
"$city哪里有好一点的咖啡馆",
"$city哪里有好点的咖啡馆"
]
}
{
"intent": "nicedrink",
"user_says": [
"米萨咖啡哪种最好喝",
"米萨咖啡最好喝的是哪一种",
]
}
]
}
这样,有3句不同的用户语句对应到了意图bestcoffeebar
,有2句不同的用户语句对应到了意图nicedrink
。意味着用户说出这些语句时,就会匹配到对应的意图。
用户语句可以枚举,同时支持正则表达式,具体请参考Rokid正则表达式使用指南。
请配置尽可能多的用户语句以匹配用户多种多样的表达方式。另外,在后续填写技能发布信息时,您需要从这些语句中选出3句最能代表您技能特点的语句展示在技能说明中告知用户。
特别提醒: 用户语句是句式强匹配,除特殊情况外,不建议在句末添加标点符号,否则可能会导致句式无法匹配。
比如在上例中将语句加上?
标点:
杭州哪里好点的咖啡馆?
那么此时只有ASR解析结果为杭州哪里好点的咖啡馆?
的语句才可以被识别,而杭州哪里好点的咖啡馆
则无法被识别。
相反,如果配置的语句为:
杭州哪里好点的咖啡馆
那么语句杭州哪里好点的咖啡馆?
和杭州哪里好点的咖啡馆
以及末尾带有其他标点的句子均能被正确识别。
1.2. 用户语句(user_says)类型
- 领域内的user_says
领域内的user_says即只有在处于该领域的时候用户说这句话才能被命中的说法,如下面的内容,只有通过打开该技能,用户说:“杭州哪里有好点的咖啡馆”才能被命中
"$city哪里有好点的咖啡馆",
领域内的user_says一般用于公有技能,或者明显会存在意图冲突的intent中,如“上一首,下一首”等
- 不受领域限制的user_says 用户在领域外或者领域内,能够直接通过这个句式命中的说法,不受领域先限制的user_says以"#"开头,只有在“私有技能”才被允许使用,避免意图的冲突。如下面配置,用户说:”杭州哪里有好点的咖啡馆“,即可直接打开技能,并且命中该user_says对应的Intent
"#$city哪里有好点的咖啡馆",
特别说明:由于该说法的特殊性,因此哪怕在私有技能上使用,也需要向Rokid商务(rokidopen@rokid.com )申请此用法的权限。
- Confirm询问的情况下使用的user_says 用户在我们设备主动发起询问,并且限制了回答范围的时候才能命中的说法,具体详见“Confirm”说明,Confirm询问的情况下使用的user_says以"!"开头
"!$city(哪里有好点的咖啡馆)?",