需求是这样的:
打开APP里的导航模块(集成第三方),打开语音,说“我要去人民大学”,程序通过接口获取与人民大学匹配的列表。
这时候需求就来了,
1. 允许用户手动点击选择(很常见的功能,不做讨论)
2. 允许用户说 “第几个”,比如说第一个,则开启导航到中国人民大学,如果说第二个,则开启导航到人民大学地铁站。
3. 允许用户说出列表中的其中一个地点,比如说“地铁站”,则开启导航到人民大学地铁站,如果说东门,则开启导航到人民大学东门。
这样的功能百度地图其实已经实现,跟百度AI的PM大牛请教了一下,总结如下:
首先需要建立两个意图:
1. 导航意图,词槽为地点location
2. 选择意图,词槽为第几个。
当用户说出“我要去人民大学”,首先UNIT识别出导航的意图,找出location这个词槽值,调用第三方接口,获取与人民大学相似的列表数据,展现在客户端页面。
然后页面等待用户再次说话(可以给用户友好的语音提示,比如说,请选择第几个,或请说出您要到的具体位置),这时候就会有两种情况,
(一)用户说“选择第二个”,这时候,UNIT进行意图识别,识别出选择意图,然后把“第二个”这个值返回给客户端,客户端根据上一个意图的结果进行这次意图的选择。选中第二个,开启导航。
(二)用户说“我要去地铁站”,这时候,UNIT进行意图识别,再次识别出导航意图,把地铁站这个词槽的值返回给客户端,客户端需要做业务上的处理,把地铁站与上一个意图结果进行文本匹配,如果匹配上,就是用户所要去的地方,相当于(人民大学 + 地铁站),找到最终位置。
如果没有匹配上的话,则重新调用第三方列表接口,查询出列表,再次让用户选择,直到用户选中结果集的其中一个,否则,这个过程是循环往复的。
这样的好处是,用户想改变导航的目的地提供简单的解决方案,比如说用户第一次说“我要去人民大学”,可是他不想去了,想去北京大学,那只要继续说出“我要去北京大学” 即可。
这样的需求就需要定义多个意图同时完成,需要业务上进行特殊处理。
相关阅读:
通过技术手段 “干掉” 视频APP里讨厌的广告之(腾讯视频)
推荐阅读:
如何站在巨人的肩膀上,将自己的产品赋予AI的能力?百度UNIT
学习分享:
知识分享:现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享
长按关注我们