发明内容
基于此,有必要针对上述技术问题,提供一种智能对话方法、装置、计算机设备和存储介质。
一种智能对话方法,所述方法包括:
响应于与用户的当前对话流程中检测到所述用户触发的针对目标议程的触发意图,确定所述目标议程是否配置有前置议程;
若所述目标议程配置有所述前置议程,则检测所述前置议程是否已执行;
若检测到所述前置议程已执行,则检测所述目标议程是否被配置为可提前跳转;
若检测到所述目标议程被配置为所述可提前跳转,则从所述当前对话流程跳转至所述目标议程对应的议程分支,并按照所述议程分支的对话流程执行对话;
若检测到所述目标议程未被配置为所述可提前跳转,则继续执行所述当前对话流程,当所述当前对话流程转到所述目标议程的触发节点时,跳过所述触发节点并直接按照所述议程分支的对话流程执行对话。
一种智能对话装置,包括:
触发意图检测模块,用于响应于与用户的当前对话流程中检测到所述用户触发的针对目标议程的触发意图,确定所述目标议程是否配置有前置议程;
前置议程执行检测模块,用于若所述目标议程配置有所述前置议程,则检测所述前置议程是否已执行;
可跳转配置检测模块,用于若检测到所述前置议程已执行,则检测所述目标议程是否被配置为可提前跳转;
可跳转对话执行模块,用于若检测到所述目标议程被配置为所述可提前跳转,则从所述当前对话流程跳转至所述目标议程对应的议程分支,并按照所述议程分支的对话流程执行对话;
不可跳转对话执行模块,用于若检测到所述目标议程未被配置为所述可提前跳转,则继续执行所述当前对话流程,当所述当前对话流程转到所述目标议程的触发节点时,跳过所述触发节点并直接按照所述议程分支的对话流程执行对话。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
响应于与用户的当前对话流程中检测到所述用户触发的针对目标议程的触发意图,确定所述目标议程是否配置有前置议程;若所述目标议程配置有所述前置议程,则检测所述前置议程是否已执行;若检测到所述前置议程已执行,则检测所述目标议程是否被配置为可提前跳转;若检测到所述目标议程被配置为所述可提前跳转,则从所述当前对话流程跳转至所述目标议程对应的议程分支,并按照所述议程分支的对话流程执行对话;若检测到所述目标议程未被配置为所述可提前跳转,则继续执行所述当前对话流程,当所述当前对话流程转到所述目标议程的触发节点时,跳过所述触发节点并直接按照所述议程分支的对话流程执行对话。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
响应于与用户的当前对话流程中检测到所述用户触发的针对目标议程的触发意图,确定所述目标议程是否配置有前置议程;若所述目标议程配置有所述前置议程,则检测所述前置议程是否已执行;若检测到所述前置议程已执行,则检测所述目标议程是否被配置为可提前跳转;若检测到所述目标议程被配置为所述可提前跳转,则从所述当前对话流程跳转至所述目标议程对应的议程分支,并按照所述议程分支的对话流程执行对话;若检测到所述目标议程未被配置为所述可提前跳转,则继续执行所述当前对话流程,当所述当前对话流程转到所述目标议程的触发节点时,跳过所述触发节点并直接按照所述议程分支的对话流程执行对话。
上述智能对话方法、装置、计算机设备和存储介质,在与用户的当前对话流程中检测到用户触发的针对目标议程的触发意图时,确定该目标议程是否配置有前置议程,若是则检测该前置议程是否已执行;接着,在前置议程已执行时检测该目标议程是否被配置为可提前跳转,在被配置为可提前跳转的情况下,从当前对话流程跳转至该目标议程对应的议程分支并按照该议程分支的对话流程执行对话,在未被配置为可提前跳转的情况下,继续执行当前对话流程且当当前对话流程转到目标议程的触发节点时,跳过该触发节点并直接按照前述与目标议程对应的议程分支的对话流程执行对话。该方案通过对用户意图的抽象与整理并通过议程管理加以利用,实现基于意图的对话管理,减少对话交互流程上的触发节点的分支配置,大大降低对话管理的复杂度,同时增加智能机器人对话的灵活性,可以使得对话流程配置触发节点分支减少三分之一以上,配置流程画布显示更加简洁易用。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的智能对话方法,可以应用于如图1所示的应用环境中。该应用环境可以包括终端110和服务器120,终端110可通过网络与服务器120进行通信。其中,终端110可以由用户使用,可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器120可以通过终端110与用户进行智能对话,该服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
具体到本申请,服务器120响应于与用户的当前对话流程中检测到用户触发的针对目标议程的触发意图,确定目标议程是否配置有前置议程;若目标议程配置有前置议程,则服务器120进一步检测前置议程是否已执行;若服务器120检测到前置议程已执行,则服务器120再进一步检测目标议程是否被配置为可提前跳转;在目标议程被配置为可提前跳转的情况下,服务器120从当前对话流程跳转至目标议程对应的议程分支,并按照议程分支的对话流程执行对话;在目标议程未被配置为可提前跳转的情况下,则服务器120继续执行当前对话流程,且当该当前对话流程转到目标议程的触发节点时,服务器120跳过该触发节点并直接按照目标议程对应的议程分支的对话流程执行对话。
以下结合实施例和相应附图对本申请提供的智能对话方法进行说明。
在一个实施例中,如图2所示,提供了一种智能对话方法,以该方法应用于图1中的服务器120为例进行说明,该方法具体包括以下步骤:
步骤S201,响应于与用户的当前对话流程中检测到用户触发的针对目标议程的触发意图,确定目标议程是否配置有前置议程。
本步骤中,服务器120可以通过终端110与用户进行对话,服务器120可在与该用户的当前对话流程中持续检测用户是否触发针对目标议程的触发意图,并确定该目标议程是否配置有前置议程。
其中,服务器120可以在与用户对话之前,先对议程的相关信息进行配置,结合图3对议程的配置进行说明,图3为一个实施例中议程设置页面的界面示意图,该议程设置页面中包括多个议程列表字段,例如序号、议程名称、提前跳转、触发意图、触发环节、触发节点、触发分支和前置议程等。
具体的,序号是指议程的编号;议程名称是指该议程的具体名称,在当前对话流内唯一,不能重复;提前跳转,是指当触发了该议程时,是否需要抛弃当前对话流程,直接跳转到该议程对应的分支或称议程分支;触发意图是指触发该议程的意图,意图则是指用于描述当前搜集到的用户信息和意愿,每个议程都拥有一个触发的意图,该意图可以需要是经过细分处理的带有明确业务含义的意图,而议程配置的触发意图需要在整个对话过程中进行全局匹配;触发环节是指该议程触发的环节;触发节点是指该议程触发的环节内的节点;触发分支是指该议程触发的节点下的具体分支(数量仅一个);前置议程是指触发该议程的前置议程,只有前置议程触发了,该议程的结果才生效。示例性的,序号1至4的议程均可作为目标议程,其中对于序号1的议程名称为“确认本人身份”的议程,可以在检测到用户的触发意图为“本人”时列为目标议程,其前置议程是“本人”,触发环节为“本人环节”,触发节点为“本人/第三方话术判断”,触发分支为“本人”。
在一些实施例中,可在已配置的议程信息的基础上新增议程,具体可点击图3所示的添加按钮,在表格内添加一行新的议程,以可编辑表格形式进行编辑。其中,触发意图、触发环节、触发节点、触发分支和前置议程均可采用下拉选择,各字段备选项如下:触发意图:当前对话流程内的触发意图列表;触发环节:当前对话流程内的环节列表;触发节点:“触发环节”所选环节内的触发节点列表;触发分支:所选“触发节点”下的分支列表;前置议程:当前对话流程内已经存在的议程(不包含本议程;不包含相同触发环节-触发节点的议程)。
在一些实施例中,可对已配置的议程信息进行编辑,具体可点击图3所示的议程操作栏的“编辑”按钮,相应议程会进入编辑状态,并且“编辑”按钮变更为“保存”按钮。
由此,服务器120在当前对话流程中可通过识别或检测例如用户发出的语音或者文本信息中是否包含有前述已配置的各触发意图中所包含的关键字,检测用户是否触发针对目标议程的触发意图,若是,则服务器120确定目标议程是否配置有前置议程。
在一个实施例中,上述方法还可以包括:服务器120与用户的对话开始后,若服务器120未在与该用户的当前对话流程中检测到用户针对任一议程触发的触发意图,则服务器120持续按照该当前对话流程执行与用户的对话,直到检测到用户针对目标议程触发的触发意图或者直到与用户的对话结束。
步骤S202,若目标议程配置有前置议程,则检测前置议程是否已执行;
若目标议程配置有前置议程,则服务器120进一步检测该前置议程是否已执行。其中,前置议程是否已执行,是指该前置议程已经被触发或者该前置议程对应的议程分支在对话中被触发。
步骤S203,若检测到前置议程已执行,则检测目标议程是否被配置为可提前跳转;
若服务器120检测到前置议程已执行,则服务器120可触发该目标议程,也即此时服务器120检测到目标议程配置有前置议程且该前置议程已执行,服务器120可将该目标议程设为已触发,以标记该目标议程已被触发。当该目标议程被触发时,即服务器120进入议程触发后处理逻辑,此时服务器120需进一步检测该目标议程是否被配置为可提前跳转,其中,在检测到目标议程配置为可提前跳转的情况下,服务器120执行步骤S204,在检测到目标议程未配置为可提前跳转的情况下,服务器120执行步骤S205。
步骤S204,若检测到目标议程被配置为可提前跳转,则从当前对话流程跳转至目标议程对应的议程分支,并按照议程分支的对话流程执行对话;
本步骤中,若检测到目标议程被配置为可提前跳转,即前述“提前跳转”为“是”,则服务器120跳过正在进行的当前对话流程,直接跳转到目标议程对应的议程分支,按照该目标议程对应的议程分支的对话流程执行对话。
步骤S205,若检测到目标议程未被配置为可提前跳转,则继续执行当前对话流程,当该当前对话流程转到目标议程的触发节点时,跳过触发节点并直接按照议程分支的对话流程执行对话。
本步骤中,若检测到目标议程未被配置为可提前跳转,即前述“提前跳转”为“否”,则服务器120在当前对话流程的对话上下文内记录该目标议程的触发状态,当该当前对话流转到该目标议程的触发节点时,则服务器120直接跳过该触发节点,并直接按照议程分支的对话流程执行对话。
在另外一些实施例中,若目标议程未被配置为可提前跳转并服务器120继续执行该当前对话流程的情况下,且当服务器120与用户的全程对话均未流转到前述目标议程的触发节点时,也即整个对话都没有流转到该目标议程的触发节点的情况下,服务器120丢弃或称废弃针对该目标议程的触发结果。
上述智能对话方法,在与用户的当前对话流程中检测到用户触发的针对目标议程的触发意图时,服务器120确定该目标议程是否配置有前置议程,若是则服务器120检测该前置议程是否已执行;接着,在前置议程已执行时服务器120检测该目标议程是否被配置为可提前跳转,在被配置为可提前跳转的情况下,服务器120从当前对话流程跳转至该目标议程对应的议程分支并按照该议程分支的对话流程执行对话,在未被配置为可提前跳转的情况下,服务器120继续执行当前对话流程且当当前对话流程转到目标议程的触发节点时,服务器120跳过该触发节点并直接按照前述与目标议程对应的议程分支的对话流程执行对话。该方案通过对用户意图的抽象与整理并通过议程管理加以利用,实现基于意图的对话管理,减少对话交互流程上的触发节点的分支配置,大大降低对话管理的复杂度,同时增加智能机器人对话的灵活性,可以使得对话流程配置触发节点分支减少三分之一以上,配置流程画布显示更加简洁易用。
在一些实施例中,上述步骤S201中的确定目标议程是否配置有前置议程之后,上述方法还可以包括:若目标议程未配置有前置议程,则服务器120可直接执行上述步骤S203中的检测目标议程是否被配置为可提前跳转的步骤。也即当目标议程没有对应的潜质议程,服务器120可无需进行前置议程是否已执行的检测步骤而可以直接对目标议程是否配置有可提前跳转的检测步骤,提高对话效率,也即,当服务器120检测到目标议程未配置有前置议程,服务器120进入目标议程触发后处理逻辑,服务器120还可以进一步将该目标议程设为已触发,并执行对先目标议程是否被配置为可提前跳转的检测步骤。
在一些实施例中,上述步骤S202中的检测前置议程是否已执行之后,上述方法还可以包括如下步骤:
若检测到前置议程未执行,则继续按照当前对话流程执行对话,并持续检测前置议程的执行状态;若针对前置议程的执行状态的持续检测结果表征前置议程在与用户的全程对话中均未执行,则丢弃针对目标议程的触发结果。
用户触发了针对目标议程的触发意图后,服务器120先判断触发的目标议程是否存在前置议程,如果存在前置议程,则服务器120判断前置议程是否已经执行。
本实施例中,若服务器120检测到前置议程未执行,则继续按照当前对话流程执行与用户的对话,并持续检测前置议程的执行状态,得到针对前置议程的执行状态的持续检测结果,也即服务器120可在当前对话流程的上下文记录该前置议程的执行状态,持续判断该前置议程是否被执行。
其中,当该持续检测结果表征前置议程已执行时,可触发前述目标议程。而如果该持续检测结果表征前置议程在服务器120与用户的全程对话中均未执行,也即服务器120检测到前置议程在与用户的全程对话中均未执行,则服务器120丢弃或称废弃针对目标议程的触发结果。
进一步的,在一些实施例中,当上述实施例中的针对前置议程的执行状态的持续检测结果表征前置议程在全程对话中均未被触发,或者,前置议程对应的议程分支在全程对话中均未被触发时,服务器120判断针对前置议程的执行状态的持续检测结果表征前置议程在与用户的全程对话中均未执行。
本实施例中,前置议程已被执行的判断条件包括该前置议程在全程对话中已被触发,或者,该前置议程对应的议程分支在全程对话中已被触发,由此,服务器120可以在与用户的全程对话中对前置议程在全程对话中是否已被触发,以及前置议程对应的议程分支在全程对话中是否已被触发进行检测,从而根据检测结果识别前置议程是否已被执行。
结合图4对本申请提供的智能对话方法进行整体说明,具体的,每个议程都拥有一个触发的意图即触发意图,该触发意图可以需要是经过细分处理的带有明确业务含义的意图,每个议程所对应配置的触发意图需要在服务器120与用户的整个对话过程中进行全局匹配,如图4所示,智能对话方法具体包括:
1、前置议程判断:
在开始对话后,服务器120按照当前对话流程执行对话,当用户未触发目标议程的触发意图时,服务器120持续按照当前对话流程执行对话。当用户触发了针对目标议程的触发意图时,服务器120先判断触发的目标议程是否存在前置议程;如果不存在前置议程,则服务器120将目标议程标记为已触发并进入议程触发后处理逻辑;如果存在前置议程,则服务器120判断前置议程是否已经执行;其中,如果前置议程已执行,则服务器120触发该目标议程,也即服务器120将目标议程标记为已触发并进入议程触发后处理逻辑;如果前置议程未执行,则服务器120在对话上下文内记录该前置议程的执行状态,当前置议程已执行时,服务器120直接触发该目标议程;如果全程对话用户均未触发前置议程,则服务器120将前述目标议程的议程结果废弃。具体的,对于前置议程已执行的判断条件可以包括:在全程对话中该前置议程已经被触发或者该议程对应的议程分支在全程对话中被触发。
2、议程触发后处理逻辑:
当目标议程被触发时,服务器120进一步判断该目标议程是否配置了“提前跳转”。其中,如果目标议程配置的提前跳转为“是”,则服务器120跳过当前对话流程,直接跳转到目标议程对应的议程分支,并按照该议程分支继续执行对话;如果目标议程配置的提前跳转为“否”,则服务器120在对话上下文内记录该目标议程的触发状态,在当前对话流程转到该目标议程的触发节点时,服务器120直接跳过该触发节点,执行目标议程对应的议程分支对应的对话。而如果整个对话均未没有流转到该目标议程的触发节点,则服务器120将目标议程的触发结果废弃。
本申请提供的智能对话方法,通过意图抽象与整理,并通过议程管理加以利用,实现基于目标的对话管理来替换古板的基于流程的对话管理,减少流程上的触发节点的分支配置,大大降低对话管理的复杂度,同时增加智能机器人对话的灵活性,也使得智能机器人的维护更便捷高效。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种智能对话装置,该装置500可以包括:
触发意图检测模块501,用于响应于与用户的当前对话流程中检测到所述用户触发的针对目标议程的触发意图,确定所述目标议程是否配置有前置议程;
前置议程执行检测模块502,用于若所述目标议程配置有所述前置议程,则检测所述前置议程是否已执行;
可跳转配置检测模块503,用于若检测到所述前置议程已执行,则检测所述目标议程是否被配置为可提前跳转;
可跳转对话执行模块504,用于若检测到所述目标议程被配置为所述可提前跳转,则从所述当前对话流程跳转至所述目标议程对应的议程分支,并按照所述议程分支的对话流程执行对话;
不可跳转对话执行模块505,用于若检测到所述目标议程未被配置为所述可提前跳转,则继续执行所述当前对话流程,当所述当前对话流程转到所述目标议程的触发节点时,跳过所述触发节点并直接按照所述议程分支的对话流程执行对话。
在一个实施例中,上述装置500还可以包括:前置议程未配置处理单元,用于若所述目标议程未配置有所述前置议程,则执行所述检测所述目标议程是否被配置为可提前跳转的步骤。
在一个实施例中,上述装置500还可以包括:前置议程未执行处理单元,用于若检测到所述前置议程未执行,则继续按照所述当前对话流程执行对话,并持续检测所述前置议程的执行状态;若针对所述前置议程的执行状态的持续检测结果表征所述前置议程在与所述用户的全程对话中均未执行,则丢弃针对所述目标议程的触发结果。
在一个实施例中,上述装置500还可以包括:前置议程未执行判断单元,用于当所述针对所述前置议程的执行状态的持续检测结果表征所述前置议程在所述全程对话中均未被触发,或者,所述前置议程对应的议程分支在所述全程对话中均未被触发时,判断所述针对所述前置议程的执行状态的持续检测结果表征所述前置议程在与所述用户的全程对话中均未执行。
在一个实施例中,上述装置500还可以包括:结果丢弃单元,用于在所述目标议程未被配置为所述可提前跳转并继续执行所述当前对话流程的情况下,且当与所述用户的全程对话均未流转到所述目标议程的触发节点时,丢弃针对所述目标议程的触发结果。
在一个实施例中,上述装置500还可以包括:目标议程标记单元,用于若检测到所述目标议程配置有所述前置议程且所述前置议程已执行,则将所述目标议程设为已触发;和/或,若检测到所述目标议程未配置有所述前置议程,则将所述目标议程设为已触发。
在一个实施例中,上述装置500还可以包括:意图检测处理单元,用于与所述用户的对话开始后,若未在与所述用户的当前对话流程中检测到所述触发意图,则持续按照所述当前对话流程执行与所述用户的对话。
关于智能对话装置的具体限定可以参见上文中对于智能对话方法的限定,在此不再赘述。上述智能对话装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储议程、触发意图、前置议程等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种智能对话方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。