场景如下:
主人:帮我找一下附近的咖啡馆
小乐:找到多家咖啡馆,请选择第几个?
主人:帮我找一家有WiFi的
小乐:找到多家附近有WiFi的咖啡馆,请选择第几个?
主人:哪家是晚上9点后依然营业的?
小乐:找到多家附近的、有WiFi的、晚上9点后依然营业的咖啡馆,请选择第几个?
主人:请按评分排序
小乐:已经按评分排序,请选择第几个?
主人:第一个
小乐:电机咖啡馆,距你2公里。你是要导航过去,还是给那里打电话?
主人:导航过去
小乐:好的,即将为你导航到电机咖啡馆
看似很复杂,我们该怎么做呢?
1. 首先分析梳理业务
2. 找出对话中都有哪些意图?
3. 意图中包含哪些词槽?
业务就是导航去附近的某个地方,可以是附近的加油站,附近的餐厅,附近的咖啡厅或者是附近的厕所。
意图就是导航,目的地就是词槽,像这样的抽象的地方,系统并没有提供系统词槽,所以我们要 “自定义目的地” 词槽,
继续分析:文中提到有WIFI的咖啡厅,应该属于咖啡厅里的一项功能。所以再创建一个功能词槽:
“晚上九点后依然营业”:我们从中找出 “晚上九点后” 是一个时间词槽,时间词槽系统已经提供,直接使用即可。
我们自定义目的地的意图创建完成,包含三个词槽,
需求是不管是否选择了时间和功能,都是可以进行意图最终触发,所以我们的触发规则要这么定义:
这样就可以识别出用户的:有WiFi的、晚上9点后依然营业的咖啡馆。
不过用户还提到 “附近的” ,我们可以在后续对话模板里添加特征词来表示,也可以在上面添加一个词槽来表示。
我们往下继续分析:“请按评分排序”,我们需要创建一个排序的意图,词槽定义为user_sort,可以按评分排序,环境排序等等,看实际需求。
“选择第几个”,我们需要创建一个 “选择” 意图,并且枚举出用户将会说的第几个。一般手机页面显示十条就够了:
“你是要导航过去,还是给那里打电话?” :意图识别后,需要具体做什么?那我们再创建一个意图,“DO”,词槽值“导航,打电话”等等,后续可以根据业务自行添加
OK ,我们的意图总共是四个:
意图创建好了,我们可以去创建对话样本和对话模板然后进行训练了,尽量创建多的对话样本。
可以创建对话模板:
创建附近的特征词,
样本创建好了,开始训练吧。
一切准备就绪,开始验证:
完美
关注公众号,大家有关于UNIT的问题,可以一起讨论哈
导航原来是如此引导和筛选条件内容的,真的是扫盲了。
作者没有处理“意图”之间的关系,可以用引导对话 来处理。
UNIT支持给每一个动作(回复)设置规则,你可以给“导航目的地”意图的回复,增设一个“上一意图”限制,比如在“自定义导航”意图之后才能触发。
这是什么意思回复了这么多一样的?
这就是我想问的问题:
用户发话的音频流数据是通过终端直接丢给UNIT的,而UNIT的结果是直接返回给资源API服务器的;当资源API服务器处理完之后又将结果直接返回给UNIT,UNIT不会解析处理这个返回结果,而是透传返回给终端。
也就是说资源API只能被动响应UNIT的意图解析结果而无法对UNIT进行控制,终端也只能执行UNIT的返回结果,并且UNIT本身也不支持对于业务的逻辑控制,所以我就不知道作为开发者,要如何干预UNIT
这就是我想问的问题:
用户发话的音频流数据是通过终端直接丢给UNIT的,而UNIT的结果是直接返回给资源API服务器的;
当资源API服务器处理完之后又将结果直接返回给UNIT,UNIT不会解析处理这个返回结果,而是透传返回给终端。
也就是说资源API只能被动响应UNIT的意图解析结果而无法对UNIT进行控制,终端也只能执行UNIT的返回结果,并且UNIT本身也不支持对于业务的逻辑控制,所以我就不知道作为开发者,要如何干预UNIT
这就是我想问的问题:
用户发话的音频流数据是通过终端直接丢给UNIT的,而UNIT的结果是直接返回给资源API服务器的;
当资源API服务器处理完之后又将结果直接返回给UNIT,UNIT不会解析处理这个返回结果,而是透传返回给终端。
也就是说资源API只能被动响应UNIT的意图解析结果而无法对UNIT进行控制,终端也只能执行UNIT的返回结果,并且UNIT本身也不支持对于业务的逻辑控制,所以我就不知道作为开发者,要如何干预控制UNIT
这就是我想问的问题:
用户发话的音频流数据是通过终端直接丢给UNIT的,而UNIT的结果是直接返回给资源API服务器的;
当资源API服务器处理完之后又将结果直接返回给UNIT,UNIT不会解析处理这个返回结果,而是透传返回给终端。
也就是说资源API只能被动响应UNIT的意图解析结果而无法对UNIT进行控制,终端也只能执行UNIT的返回结果,并且UNIT本身也不支持对于业务的逻辑控制,所以我就不知道作为开发者,要如何干预控制UNIT
这是需要做业务处理控制的,如果发现并没有要导航的目的地,就要问用户导航去哪里了
很棒的说明,赞~~~~
我也照着做了一个,有一个疑问想请教一下。
如果用户一开始说的不是“帮我找一下附近的咖啡馆”,而是直接说“导航过去”,那么是不是就直接跳到最后一个意图呢?
有什么办法避免吗?
嘿嘿,找机会吧
好,继续。。。
一样一样,你也多发帖子呀,哈哈
就喜欢看这样的帖子,收获不少
谢谢各位
这个思路好
专业扫盲贴..666
果然专业!
大家相互讨论各种思路哈
共同学习