智能机器人的人机对话流程自动流转方法及系统与流程

文档序号:23132460发布日期:2020-12-01 13:06阅读:226来源:国知局
智能机器人的人机对话流程自动流转方法及系统与流程

本发明涉及自然语言处理技术领域,尤其涉及一种智能机器人的人机对话流程自动流转方法及系统。



背景技术:

人机对话,通常涉及三个部分——用户、机器人客户端、语义理解平台。在这种架构中,用户通过语音或界面输入信息予机器人客户端,机器人将输入信息统一转成文字后传予语义平台,语义平台理解用户输入指示机器人回复用户或执行其他交互动作。其中,语义平台对用户输入的回应内容及方式,通过算法生成,或通过管理后台设定,或两者结合。在人机对话中,通常有需要按预设流程(以下简称流程)引导用户进行多轮问答。在流程中有对话节点(以下简称节点)和触发条件的概念,节点用于机器人出话引导用户输入特定语句以触发下个节点,或直接回答用户的问题;触发条件即用户的输入是否满足特定条件,满足时进入下个节点。流程有需要让语义平台在问答过程中提取对话信息做出个性化回答及特定技能回答,有需要让机器人做出特定行为以增强对话效果。流程引擎是nlp领域的一个工程应用,以往的流程引擎,或不能实现信息提取,或以程序员的角度设计出的提取方式难以使用,或难以实现流程的复用,或机器人客户端与语义平台交互模式混乱,或配置粒度过大难以精细控制每个节点的行为。



技术实现要素:

有鉴于此,本发明提供一种智能机器人的人机对话流程自动流转方法以及系统,以提升处理效率以及用户体验。

一方面,本发明提供一种智能机器人的人机对话流程自动流转方法,包括:在根据用户输入信息进入到预设流程的当前连线的源节点后,判断所述预设流程的当前连线的属性是否为用于表征流程自动流转的自动属性;所述预设流程包含多个节点,各个节点之间的通过条件表示为连线,连线连接的上级节点称为对应连线的源节点,连线连接的下级节点称为对应连线的目标节点;

若所述预设流程的连线的属性为所述自动属性,则根据所述用户输入信息确定所述预设流程是否满足所述当前连线通的通过条件,在满足所述当前连线通的通过条件时,所述预设流程通过所述当前连线直接流转到对应的目标节点。

进一步地,所述各连线的类型包括:节点类型以及流程类型;所述智能机器人的人机对话流程自动流转方法还包括:

通过当前流程的当前节点进入另一流程且当所述另一流程执行完成后,通过设置流程类型的连线返回所述当前流程,所述流程类型的连线设置在所述当前流程的当前节点与另一流程的节点之间,且所述连线只对所述当前流程可见,对所述另一流程及引用所述另一流程的其它流程均不可见,以避免所述当前流程改变所述另一流程且使所述当前流程复用所述另一流程。

进一步地,所述各节点各配置的属性包括:允许继承属性以及不允许继承属性,所述智能机器人的人机对话流程自动流转方法还包括:

当进入当前流程的当前节点后,判断所述当前流程的当前节点是否有未设置的配置项;

若所述当前流程的当前节点有未设置的配置值,则判断所述当前流程的当前节点的各上级节点的属性是否为允许继承属性;

将离所述当前流程的当前节点最近的且属性为允许继承属性的上级节点的所述配置项的配置值作为所述当前节点的配置项的配置值。

进一步地,所述的智能机器人的人机对话流程自动流转方法,还包括:语义平台传向机器人客户端第一指令或者机器人客户端传向语义平台第二指令;机器人客户端与语义平台基于所述第一指令或者第二指令进行信息交互。

进一步地,所述节点用于以下功能中的至少一项:

用于配置回答话术以引导用户输入或直接解答用户问题;

用于挂载指令;所述指令包括第一指令以及第二指令;

用于指示智能机器人做出动作、表情或行为;

用于定义变量,以产生后续回答、连线需要的数据;

用于设置节点配置,以精细控制节点的行为。

进一步地,所述变量包括自定义变量和系统变量,所述自定义变量的值来源于从用户输入信息中提取的信息、从数据库查询得到的值、访问外部接口的返回数据中的至少一种。

进一步地,所述连线的通过条件包括:普通条件、通配条件以及变量条件;普通条件是用户输入信息与预设条件的相似度达到或超过设定阈值;通配条件是用户输入信息符合通配指定的语句模式;变量条件是变量值满足给定的条件。

另一方面,本发明提供一种智能机器人的人机对话流程自动流转系统,包括:语义平台以及机器人客户端,语义平台传向机器人客户端第一指令或者机器人客户端传向语义平台第二指令;机器人客户端与语义平台基于所述第一指令或者第二指令进行信息交互;

所述语义平台用于在根据用户输入信息进入到预设流程的当前连线的源节点后,判断所述预设流程的当前连线的属性是否为用于表征流程自动流转的自动属性;所述预设流程包含多个节点,各个节点之间的通过条件表示为连线,连线连接的上级节点称为对应连线的源节点,连线连接的下级节点称为对应连线的目标节点;若所述预设流程的连线的属性为所述自动属性,则根据所述用户输入信息确定所述预设流程是否满足所述当前连线通的通过条件,在满足所述当前连线通的通过条件时,所述预设流程通过所述当前连线直接流转到对应的目标节点。

进一步地,所述各连线的类型包括:节点类型以及流程类型;

所述语义平台还用于通过当前流程的当前节点进入另一流程且当所述另一流程执行完成后,通过设置流程类型的连线返回所述当前流程,所述流程类型的连线设置在所述当前流程的当前节点与另一流程的节点之间,且所述连线只对所述当前流程可见,对所述另一流程及引用所述另一流程的其它流程均不可见,以避免所述当前流程改变所述另一流程且使所述当前流程复用所述另一流程。

进一步地,所述各节点各配置的属性包括:允许继承属性以及不允许继承属性,所述语义平台还用于当进入当前流程的当前节点后,判断所述当前流程的当前节点是否有未设置的配置项;若所述当前流程的当前节点有未设置的配置值,则判断所述当前流程的当前节点的各上级节点的属性是否为允许继承属性;

将离所述当前流程的当前节点最近的且属性为允许继承属性的上级节点的所述配置项的配置值作为所述当前节点的配置项的配置值。

本发明智能机器人的人机对话流程自动流转方法及系统,通过设置连线是从一个对话节点(源节点)进入到另一个对话节点(目标节点)的通过条件,连线可设置自动属性,即流程进入本连线的源节点后,是否以上一步的用户输入再自动尝试能否通过本连线进入目标节点,以支持用户的单次输入可促使流程走多步,不再需要用户重复提及部分信息,提升处理效率以及用户体验。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为根据本发明示例性第一实施例的智能机器人的人机对话流程自动流转方法的流程图。

图2为通用的检索式智能问答系统的架构图。

图3为根据本发明示例性第一实施例的智能机器人的人机对话流程自动流转方法中节点与连线的关系示意图。

图4为根据本发明示例性第二实施例的智能机器人的人机对话流程自动流转方法中节点类型连线的示意图。

图5为根据本发明示例性第二实施例的智能机器人的人机对话流程自动流转方法中流程类型连线的示意图。

图6为根据本发明示例性第三实施例的智能机器人的人机对话流程自动流转方法中可继承配置的示意图。

图7为根据本发明示例性第四实施例的智能机器人的人机对话流程自动流转系统的结构框图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。

如图1所示,本发明一种智能机器人的人机对话流程自动流转方法,包括:

步骤101,在根据用户输入信息进入到预设流程的当前连线的源节点后,判断所述预设流程的当前连线的属性是否为用于表征流程自动流转的自动属性;所述预设流程包含多个节点,各个节点之间的通过条件表示为连线,连线连接的上级节点称为对应连线的源节点,连线连接的下级节点称为对应连线的目标节点(具体如图3所示);

具体地,所述节点用于以下功能中的至少一项:用于配置回答话术以引导用户输入或直接解答用户问题;用于挂载指令;用于指示智能机器人做出动作、表情或行为;用于定义变量,以产生后续回答、连线需要的数据;用于设置节点配置,以精细控制节点的行为。

比如:节点用于机器人出话,即可配置回答话术,以引导用户进行特定输入,或直接解答用户问题;用于挂载指令,以指示机器人做出特定动作、表情或其他行为;用于定义变量,以产生后续回答、连线需要的数据;用于设置节点配置,以精细控制节点的行为。如,某个节点定义了变量var_person_name来自person数据表的字段id等于888的记录中的name字段值(假设该值为“唐建国”),配置了回答话术“$(var_person_name)正在会议室等您”,且挂载了微笑表情指令,则当进入到该节点时,语义平台会下发播报内容“唐建国正在会议室等您”和微笑指令给客户端,客户端播报上述话术,执行微笑指令。

变量可以保存数据,是流程中信息传递的载体,变量分为自定义变量和系统变量。自定义变量需要定义值,可以来源于用户输入提取的信息、数据库查询得到的值、访问外部接口的返回数据,自定义变量以var开头,如var_city;系统变量的值由系统维护,系统会根据当前状态赋予确定的值,不需要用户定义,系统变量以sys开头,比如定义了一个sys_pre_node_id表示上级节点id值,该变量在流程中会自动更新为上级节点的id值。自定义变量的生命周期为定义开始到流程结束,系统变量的生命周期为变量所需要的状态产生到该状态不存在。变量用“$()”来使用,如,“欢迎来到$(var_city)”。

步骤102,若所述预设流程的连线的属性为所述自动属性,则根据所述用户输入信息确定所述预设流程是否满足所述当前连线通的通过条件;

具体地,所述连线的通过条件包括:普通条件、通配条件以及变量条件;普通条件是用户输入信息与预设条件的相似度达到或超过设定阈值;通配条件是用户输入信息符合通配指定的语句模式;变量条件是变量值满足给定的条件。

也就是说,连线连接两个节点,是单向的,流程能否从源节点走向目标节点取决于用户输入是否满足连线中设置好的条件。连线的条件有三种:普通条件、通配条件、变量条件。普通条件的满足条件是用户输入与语句条件的相似度达到设定好的阈值以上,比如某个连线有一条普通条件“用信用卡还款”,若用户输入“信用卡还款”,当系统使用的匹配算法计算得到的两个语句的相似度为0.98,而设定的阈值为0.95,则用户输入满足条件,可进入到目标节点。通配条件的满足条件是用户输入符合通配指定的语句模式,详见下述通配语句部分。变量条件的满足条件是变量值满足给定的条件,变量条件支持条件连接符(and、or)、比较运算符(>、<、=等比较运算符)和包含运算符(in、notin),如,某个连线定义的变量条件为“$(var_city)=北京and$(var_age)>18”,则在判断之前收集的var_city值为“北京”且var_age值为“20”时,条件满足,可进入到目标节点。连线的源节点和目标节点可以是同个节点,连线也可从子孙节点指向父辈节点。

通配语句用在连线上,作为连线通到目标节点的条件,若用户输入符合通配定义的模式,则可进入目标节点。通配语句基于正则表达式开发,是正则表达式的简化版本。如,“【select<var_city>(北京,上海,广州,深圳)】”,该通配语句在后台会被翻译成正则表达式“(p<var_city>北京|上海|广州|深圳)”,当用户输入北京、上海、广州、深圳其中一个名字时,系统认定模式条件成立,可进入目标节点,且会将输入地名保存给自定义变量var_city,该变量在流程结束前都可以使用,比如用于目标节点的回答话术(如“欢迎你来到$(var_city)”,用户输入“北京”时,机器人会播报“欢迎来到北京”)。

步骤103,在满足所述当前连线通的通过条件时,所述预设流程通过所述当前连线直接流转到对应的目标节点。

也就是说,连线可设置自动属性,即是否在进入源节点后自动用上一步的用户输入判断是否通过该连线进入目标节点。

本实施例针对以往的流程只能一步一步往下走,当流程设置较细时,一个预设流程会有多个对话节点,但当用户单次输入的信息满足多个对话节点时,一步一步往下走、让用户重复提及部分信息是不合理的。比如,传统的预设流程是:“取款”->“取2万”,当用户输入“取款2万”时,能进入“取款”节点,并反问取款金额,等待用户输入取款金额以进入“取2万”节点,这是不合理的,因为用户的单次输入已包含了两个节点需要的信息。本实施例明确连线的概念,连线是从一个对话节点(源节点)进入到另一个对话节点(目标节点)的通过条件,可设置自动属性,即流程进入本连线的源节点后,是否以上一步的用户输入再自动尝试能否通过本连线进入目标节点,以支持用户的单次输入可促使流程走多步,不再需要用户重复提及部分信息,提升处理效率以及用户体验。

具体操作时,所述智能机器人的人机对话流程自动流转方法还包括多个优选实施例,具体如下:

作为第一种优选方式,所述各连线的类型包括:节点类型以及流程类型;所述智能机器人的人机对话流程自动流转方法还包括:通过当前流程的当前节点进入另一流程且当所述另一流程执行完成后,通过设置流程类型的连线返回所述当前流程,所述流程类型的连线设置在所述当前流程的当前节点与另一流程的节点之间,且所述连线只对所述当前流程可见,对所述另一流程及引用所述另一流程的其它流程均不可见,以避免所述当前流程改变所述另一流程且使所述当前流程复用所述另一流程。

也就是说,连线可设置类型,包括节点类型和流程类型,节点类型的连线(如图4),当流程b的节点指向流程a的节点后,流程a走完后,当前流程如需添加其他节点,需要添加到流程a下,会影响流程a;流程类型的连线(如图5),当流程b的节点指向流程a的节点后,若需在流程a走完后回到原流程,可直接在指向的节点新增流程类型的连线,挂上其他节点,并不会影响a流程。

以往流程的复用较为困难,如已定义好的m流程需要同时嵌入a->b和c->d两个流程中,以形成a->m1->b和c->m2->d两个流程,若m1和m2只是m的引用,则实际m1后会多出一个分支d,m2后会多出一个分支b,因b和d节点都挂在m下;若m1和m2只是m的独立副本,则修改m则必须同时修改m1和m2,增大了语料人员的工作量。本方案定义了连线的类型,即节点或流程类型,解决此问题。即,当连线为节点类型时,上述的例子,m1和m2是m的引用,m下有两个分支b和d;当连线类型为流程类型时,目标节点与源节点只有逻辑联系,且该类型连线只对引用流程可见,被引用流程及其他流程皆不可见,从a进到m流程,m流程结束后会回到b节点,从c进到m流程,结束后会回到d节点,m下实际没有挂任何流程,a->b和c->d只是借用了m的流程。以此,上述第一种优选方式解决了流程的复用问题。

作为第二种优选方式,所述各节点各配置的属性包括:允许继承属性以及不允许继承属性,所述智能机器人的人机对话流程自动流转方法还包括:

当进入当前流程的当前节点后,判断所述当前流程的当前节点是否有未设置的配置项;

若所述当前流程的当前节点有未设置的配置值,则判断所述当前流程的当前节点的各上级节点的属性是否为允许继承属性;

将离所述当前流程的当前节点最近的且属性为允许继承属性的上级节点的所述配置项的配置值作为所述当前节点的配置项的配置值。

具体操作时,流程配置细化到节点,每项配置可设置继承属性。配置的可继承是指,流程中某个节点的未设置的配置值直接来源于最近的设置了该配置项可继承属性的节点配置值。如图6所示,a节点设置“可退出流程”配置项的值为“是”且“可继承”,其后到d节点都没有可供d节点继承的该配置值,因此节点d将从节点a继承该配置项的值“是”,而节点c自身有其配置值“否”,则节点c的配置值为“否”。

上述第二种优选方式针对以往的流程配置不够精细和灵活,难以适应复杂的业务需求,设计出细化到节点的、支持在流程中继承使用的配置方案,使流程配置工作量更少,更灵活。

作为第三种优选方式,所述的智能机器人的人机对话流程自动流转方法还包括:

语义平台传向机器人客户端第一指令或者机器人客户端传向语义平台第二指令;

机器人客户端与语义平台基于所述第一指令或者第二指令进行信息交互。

具体地,指令是语义平台和机器人客户端的交互模式,如节点下挂一个微信表情指令,则当流程进入该节点时,语义平台会下发该指令给客户端,客户端已编程好该指令的具体实现,必须直接执行该指令。客户只针对指令编程,指令执行方法可接收参数,可返回执行结果值。指令分多种类型,包括即时指令、延时指令、定时指令、串行指令,且有指令参数。即时指令,是下发给客户端后,客户端需立即执行的指令。延时指令,是语义平台下发给客户端后,客户端需在指令参数指定的延时时间执行的指令。定时指令,是语义平台下发给客户端后,客户端每隔参数指定的间隔时间定时执行的指令。串行指令,串行指令的指令参数是一串指令,是下发后客户端按顺序执行的指令,执行过程中需将上个指令执行结果传给下个指令。

以下即时指令是必须定义的:事件上报指令和取消指令。事件上报指令用于将执行结果上报,以驱动语义平台的特定行为,如流程中进入下个节点。取消指令,用于取消未执行的延时指令和定时指令。

上述第三种优选方式针对以往机器人客户端与语义平台的交互经常要根据特殊场景进行特殊开发,定义了语义平台与客户端间指令驱动的交互模式,定义了丰富的指令类型,不仅支持语义平台传向客户端的指令,还支持客户端传向语义平台的指令,以使大部分业务场景可在管理后台配置,避免重复开发。

上述各优选实施例针对按预设流程进行多轮问答和信息提取的需要,设计的流程引擎,明确了节点、连线、变量和指令的概念。支持节点到节点、节点到流程的多种连线方式,以支持不同业务情况。现实的流程问答中,有查询数据库或第三方服务的需要,上述各实施例中定义了变量数据来源的多种方式,除了可通过通配语句定义,还可通过访问数据库查询得到的数据和访问第三方服务接口得到的返回数据定义。该变量定义功能拓展了变量的来源,使流程适用于多数业务场景。设计出一套基于正则表达式的、学习成本较低的语法(简称通配语句),用于将对话信息提取成流程变量,以实现对话信息在流程内的传递和复用,避免了以往的流程或无法做到对话信息提取,或要求语料人员手写学习成本较大的正则表达式以提取信息,或信息提取后的使用过于混乱,以正则表达式为基础的、能覆盖大部分语料场景、容易上手的特殊语法(以下称通配语句),支持信息提取成变量,变量的生命周期从生成到流程结束,只能以变量来使用提取到的信息。规定了指令驱动的语义平台和机器人客户端之间的交互模式。设计出细化到节点的,可在流程中继承使用的配置方式。以往人机对话中的某些问答技能,如询问某地点某时间的天气,通常的实现思路是通过预设词槽,在多轮对话中逐渐收集到槽位信息(如天气技能里需要时间和地点两个槽位信息),然后查询数据库或访问第三方服务用实时数据作答。上述各优选方案的流程因实现了信息提取、变量定义、自动连线和连线类型的功能,可直接用于实现填槽类技能的实现,即可在管理后台直接配置生成技能,不需要再特定开发,也易于技能嵌入流程中,使流程适应更多业务场景。支持人机对话中引导用户按预设流程进行多轮问答,使预设流程可后台编辑。

如图7所示,本发明一种智能机器人的人机对话流程自动流转系统,图2-6所示方法实施例的解释说明均适用于本实施例,如图7所示,包括:语义平台以及机器人客户端,语义平台传向机器人客户端第一指令或者机器人客户端传向语义平台第二指令;机器人客户端与语义平台基于所述第一指令或者第二指令进行信息交互;

所述语义平台用于在根据用户输入信息进入到预设流程的当前连线的源节点后,判断所述预设流程的当前连线的属性是否为用于表征流程自动流转的自动属性;所述预设流程包含多个节点,各个节点之间的通过条件表示为连线,连线连接的上级节点称为对应连线的源节点,连线连接的下级节点称为对应连线的目标节点;若所述预设流程的连线的属性为所述自动属性,则根据所述用户输入信息确定所述预设流程是否满足所述当前连线通的通过条件,在满足所述当前连线通的通过条件时,所述预设流程通过所述当前连线直接流转到对应的目标节点。

优选地,所述各连线的类型包括:节点类型以及流程类型;

所述语义平台还用于通过当前流程的当前节点进入另一流程且当所述另一流程执行完成后,通过设置流程类型的连线返回所述当前流程,所述流程类型的连线设置在所述当前流程的当前节点与另一流程的节点之间,且所述连线只对所述当前流程可见,对所述另一流程及引用所述另一流程的其它流程均不可见,以避免所述当前流程改变所述另一流程且使所述当前流程复用所述另一流程。

优选地,所述各节点各配置的属性包括:允许继承属性以及不允许继承属性,

所述语义平台还用于当进入当前流程的当前节点后,判断所述当前流程的当前节点是否有未设置的配置项;若所述当前流程的当前节点有未设置的配置值,则判断所述当前流程的当前节点的各上级节点的属性是否为允许继承属性;将离所述当前流程的当前节点最近的且属性为允许继承属性的上级节点的所述配置项的配置值作为所述当前节点的配置项的配置值。

本实施例明确定义了流程的节点、连线、变量和指令四个概念,设计了基于节点的可在流程中继承的配置方式。节点是当前对话状态的一种表示,连线是一个节点通向另一个节点的条件,变量是流程中信息传递的载体,指令是语义平台与机器人客户端的交互规范,节点配置用于控制节点的行为。本实施例可实现流程后台可配置化,语义平台与机器人客户端的交互的可配置化,其灵活性可支持更多业务场景,将各种场景开发工作转变成后台语料配置工作,降低语料人员的语料维护成本,降低人机问答系统的后期开发和维护难度。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1