欢迎关注“百度NLP”官方微信公众号,及时获取更多自然语言处理领域的技术干货!
随着机器学习和自然语言处理技术的不断发展,智能对话系统效果有了很大的提升,使得用户能够通过自然语言的方式和机器进行交互来满足自身的需求。
在对话系统的研究中,多轮对话一直都是研究人员的重点研究方向。在多轮对话过程中,系统需要理解用户当前所说的话,且综合历史对话信息给出合理答复返回给用户,这就是对话管理要解决的问题。
对话管理是对话系统的重要组成部分,它的对话状态跟踪、对话策略选择、话术生成等功能是实现人机对话,尤其是多轮对话的关键。
自1.0版本开始,UNIT向广大开发者提供了基于词槽收集与规则触发的对话管理定制能力。随着业务的发展,开发者也不断向UNIT对话管理功能提出了更多的要求,包括对话流程的灵活配置、应答话术的动态生成、外部业务资源的接入与调用,不同对话流程之间的跳转与返回等等。
为了更好地满足这些需求,UNIT经过长时间的技术积累,推出了新一代图形化对话流编辑器Taskflow,以图形化拖拽界面与编程相结合的方式,助力对话系统开发者轻松搞定复杂对话系统。
Taskflow能帮业务解决哪些问题
⼀个完整的对话流程,涉及到多个⽅⾯的功能,很多⼈与⼈习以为常的对话,机器人处理起来难度会⾼很多。这⾥我们以查询⼿机流量的场景为例:
用户:“我想查询这个⽉的流量。”
客服:“您好,您的当⽉流量剩余500兆。请问还有什么需要帮您的吗?”
用户:“好的,没有了。”
用户:“我想查询这个⽉的流量。”
客服:“您好,您的当⽉流量剩余50兆。考虑到您的剩余流量不⾜,建议您续订⼀个流量加油包。"
用户:“有什么流量包?”
看起来很⾃然的两段对话,在智能对话系统⾥⾯其实包含了很多逻辑和流程。
1.在查询流量时,机器人需要访问业务系统接口,获取相应的数据。
2.获取到数据后,机器人需要基于数据动态⽣成答复话术。并且,根据不同的数据反馈(剩余流量的多少),对话需要进⼊不同的分⽀流程,就要求机器人根据条件判断控制流程分⽀。
3.除此之外,对话系统还需要应对随时可能插⼊的新话题,在多个对话流程之间灵活切换。
如果不借助⼯具,完全由业务系统处理,是⼀份不⼩的⼯作量,而图形化对话流编辑器Taskflow,采⽤了组件化的思路,开发者只需要拖拽出相应的功能节点,完善节点配置项,⽆需⼀⾏代码,即可实现⼀个复杂的完整对话流程。
零代码配置
让多轮对话流程更简单
最基本的多轮对话为⼀问⼀答,⽽真实对话场景中的多轮对话则复杂的多。比如客服场景中需要在接听的同时主动发起对话,再等待⽤户输⼊。
机器人:"很⾼兴为您服务,请问有什么可以帮您?"(主动发起对话,进⾏问候)
用户:"查下我这个⽉的流量。"(此时⽤户才表达⾃⼰的对话意图)
更多场景中对话不是⼀问⼀答的,需要同时回复⽤户多句话,多句回复的选择有时还需要结合⼀些条件判断。
机器人:“您好,您的剩余流量50兆。”
机器人:(剩余流量较少时) “考虑到您的剩余流量不⾜,建议您续订⼀个流量加油包。”
针对各种各样的对话流程,Taskflow预置了多项对话能⼒,开发者通过不同的设置项,完成不同的对话需求:
1、可以⽆意图进⼊对话流程,主动向⽤户发起对话
配置⽆条件进⼊的连线,与开始节点连接,后续连接⼀个对话回复节点,从⽽实现进⼊对话意图后主动发起对话的效果。
2、通过配置选择是否等待⽤户输⼊,同时回复⽤户多句答复
在⼀个对话回复中,选择不等待⽤户输⼊,后续连接另⼀个对话回复节点,从⽽实现同时回复⽤户多句答复的效果。
更便捷地引入业务资源
降低接入成本
⼀个对话机器⼈在回复时,经常需要与业务系统配合使⽤,最普遍的情况是使⽤业务系统的数据资源。这种情况需要先通过智能对话模型,再转回到业务系统中,然后将获取到的资源与智能对话模型结合后,得到最终的回复。
用户:“您好,我想查询这个⽉的流量。”
机器人:“您好,您的当⽉流量剩余500兆。”
为了降低开发者开发与维护的难度,UNIT赋予了Taskflow业务资源接⼊的能⼒,⽆需编写代码,简单⾼效。
可根据当前对话动态生成话术
使对话更人性化
对话机器⼈应避免对话过于单调,经常重复同⼀句话或某⼏句话。⽐如对话中询问想查询具体⽉份的流量,当得不到正确的答复时,机器⼈不宜重复同⼀句话如:“请问您想查询哪个⽉的流量?”,配置多个话术顺序或随机答复有助于提⾼体验。还有⼀些对话回复话术依赖⼀些特定词槽或变量的取值。
用户:“您好,我想查询这个⽉的流量。”
机器人:“您好,您的当⽉流量剩余***500兆***。”
基于上述问题,UNIT在Taskflow都做了针对性的处理。
1、澄清时⽀持顺序、随机话术,多次澄清失败后⽀持⽤户选择继续对话或者中⽌对话。
2、赋予开发者最灵活的话术配置,可以在话术中配置变量、意图名称和词槽值,动态⽣成话术,不⽤再进⾏滞后的拼接处理。
实现复杂的话题插⼊与流转
真实对话中,还会经常出现对话意图切换的情况,对于对话机器⼈如何做到⽆缝切换,最⼤程度地提升对话感知,则是⼀个不⼩的挑战。⽐如查询流量这个例⼦,机器⼈在询问⽤户具体时间时,⽤户提了其他的问题。
用户:“我想查询这个⽉的流量。”
机器人:“您好,您的当⽉流量剩余50兆。考虑到您的剩余流量不⾜,建议您续订⼀个流量加油包。"
用户:“问个事,我如果套餐的流量⽤完了,接下来的流量要怎么收费?”
这⾥⽤户没有直接回答机器⼈的问题,⽽是开启了⼀个新话题。
针对这种现象,Taskflow直接预置了打断恢复的功能,实现了多对话流程中⽆缝切换,机器⼈默认拥有多对话流程⽆缝切换的能⼒。开发者还可以通过配置开关,控制任意两个对话流程之间是否开启该能⼒,轻松获得顺畅的对话体验。未来UNIT还将赋予开发者更多的预置能⼒,尽最⼤努⼒降低开发者的配置门槛。
自定义编程
支持更多复杂需求实现
不同的业务场景都会⾯临不同的业务需求,相信不少开发者都⾯临过⼀些定制化的需求,需要⽐较复杂的代码逻辑才能处理。基于此,Taskflow为开发者提供了⾃定义编程功能,⽆论是在条件判断时,应答回复时,获取业务系统数据资源时均可以使⽤⾃定义编程。此外,Taskflow还设计了⼀个完全基于编程的⾃定义节点,满⾜开发者个性化的业务需求。
体验Taskflow的方法很简单,进入unit.baidu.com在新建机器人时,选择Taskflow型对话流配置即可。自推出以来,Taskflow被广泛应用在各个业务场景中,智能订餐、汽车销售质检、来电助理等智能对话场景,都基于Taskflow轻松实现了。未来,UNIT平台会不断优化Taskflow的能力,持续满足广大开发者和企业的业务需求。
百度自然语言处理(Natural Language Processing,NLP)以『理解语言,拥有智能,改变世界』为使命,研发自然语言处理核心技术,打造领先的技术平台和创新产品,服务全球用户,让复杂的世界更简单。