CN112883184A - 对话管理方法、设备、计算机可读存储介质及程序产品 - Google Patents

对话管理方法、设备、计算机可读存储介质及程序产品 Download PDF

Info

Publication number
CN112883184A
CN112883184A CN202110303936.1A CN202110303936A CN112883184A CN 112883184 A CN112883184 A CN 112883184A CN 202110303936 A CN202110303936 A CN 202110303936A CN 112883184 A CN112883184 A CN 112883184A
Authority
CN
China
Prior art keywords
conversation
routing
state
server
dialog
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110303936.1A
Other languages
English (en)
Inventor
李牧之
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202110303936.1A priority Critical patent/CN112883184A/zh
Publication of CN112883184A publication Critical patent/CN112883184A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3343Query execution using phonetics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供了一种对话管理方法、设备、计算机可读存储介质及程序产品,所述方法包括:获取路由服务端发送的第一路由请求;基于第一路由请求确定的标签信息对所述对话的状态进行恢复,得到所述对话的当前状态;基于所述标签信息确定触发事件;将所述触发事件持久化至事件存储空间,并基于所述触发事件和所述当前状态决策预执行动作;向所述路由服务端发送第一路由响应,以使所述路由服务端向所述终端发送携带有预执行动作的对话响应。如此,能够基于标签信息快速地对对话状态进行恢复,使得多轮对话无需固定请求路由,从而实现灵活地人机对话,并且事件存储空间中只需存储触发事件,无需存储大量中间对话状态,能够减小占用的内存空间。

Description

对话管理方法、设备、计算机可读存储介质及程序产品
技术领域
本申请涉及人工智能技术领域,涉及但不限于一种对话管理方法、设备、计算机可读存储介质及程序产品。
背景技术
对话管理(DM,Dialog Management)控制着人机对话的过程,它会根据对话的历史信息,决定对该用户做出什么样的反应。根据智能化程度的不同,对话管理表现形式可简单分为单轮对话和多轮对话两种。单轮对话类似于升级版的问答系统,可作为一个高效低成本的自动化信息检索或查询工具;多轮对话的核心功能在于在反复地询问和对话过程中,收集客户信息,进而明确客户需求。
由于多轮对话管理系统需要在系统内存中保持最新对话状态,根据当前状态决定下一个状态的候选集,并且业务存在多样性以及用户输入存在高度的随意性,导致多轮对话管理系统的状态结构与转换关系十分复杂。因此相关技术中多轮对话管理系统一般在单机系统的内存中维护用户配置的状态结构与状态间的转换关系,依据用户的对话内容(触发的事件),对状态机的当前状态进行跳转。在分布式系统的多机环境下,难以实现多轮对话管理系统的状态结构与转换关系,无法实现在任意机器上恢复指定时间点的对话上下文。
发明内容
本申请实施例提供一种对话管理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够在分布式系统的多机环境下实现基于事件溯源和有限状态机的多轮对话管理。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种对话管理方法,应用于分布式对话管理系统集群中的对话服务端,所述方法包括:
获取路由服务端发送的第一路由请求,所述第一路由请求是基于终端发送的对话请求得到的,所述对话请求携带有对话的标签信息;
基于所述标签信息对所述对话的状态进行恢复,得到所述对话的当前状态;
基于所述标签信息确定触发事件,所述触发事件用于将所述对话的当前状态转移到下一个状态;
将所述触发事件持久化至事件存储空间,并基于所述触发事件和所述当前状态决策预执行动作;
向所述路由服务端发送第一路由响应,所述第一路由响应携带有所述预执行动作,以使所述路由服务端向所述终端发送对话响应。
本申请实施例提供一种对话管理方法,应用于分布式对话管理系统集群的路由服务端,所述方法包括:
获取终端发送的用于执行对话管理任务的对话请求,所述对话请求携带有对话的标签信息;
从所述分布式对话管理系统集群中筛选用于执行对话管理任务的对话服务端,所述对话服务端为空闲状态;
基于所述对话请求确定第一路由请求,并将所述第一路由请求发送至所述对话服务端,以使所述对话服务端基于所述标签信息对所述对话进行恢复和决策,得到预执行动作;
获取所述对话服务端发送的第一路由响应,所述第一路由响应携带有所述预执行动作;
向所述终端发送对话响应,以使所述终端执行所述预执行动作。
本申请实施例提供一种对话管理装置,应用于分布式对话管理系统集群中的对话服务端,所述装置包括:
第一获取模块,用于获取路由服务端发送的第一路由请求,所述第一路由请求是基于终端发送的对话请求得到的,所述对话请求携带有对话的标签信息;
第一恢复模块,用于基于所述标签信息对所述对话的状态进行恢复,得到所述对话的当前状态;
第一确定模块,用于基于所述标签信息确定触发事件,所述触发事件用于将所述对话的当前状态转移到下一个状态;
持久化模块,用于将所述触发事件持久化至事件存储空间;
决策模块,用于基于所述触发事件和所述当前状态决策预执行动作;
第一发送模块,用于向所述路由服务端发送第一路由响应,所述第一路由响应携带有所述预执行动作,以使所述路由服务端向所述终端发送对话响应。
本申请实施例提供一种对话管理装置,应用于分布式对话管理系统集群的路由服务端,所述装置包括:
第二获取模块,用于获取终端发送的用于执行对话管理任务的对话请求,所述对话请求携带有对话的标签信息;
筛选模块,用于从所述分布式对话管理系统集群中筛选用于执行对话管理任务的对话服务端,所述对话服务端为空闲状态;
第二确定模块,用于基于所述对话请求确定第一路由请求;
第二发送模块,用于将所述第一路由请求发送至所述对话服务端,以使所述对话服务端基于所述标签信息对所述对话进行恢复和决策,得到预执行动作;
第三获取模块,用于获取所述对话服务端发送的第一路由响应,所述第一路由响应携带有所述预执行动作;
第三发送模块,用于向所述终端发送对话响应,以使所述终端执行所述预执行动作。
本申请实施例提供一种对话管理设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的方法。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的方法。
本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的方法。
本申请实施例具有以下有益效果:
在本申请实施例提供的对话管理方法中,分布式系统的路由服务端基于终端发送的对话请求确定第一路由请求,分布式系统的对话服务端获取到该第一路由请求后,基于对话请求携带的标签信息对对话进行恢复,将对话恢复至当前状态;然后基于标签信息确定触发事件,并依据有限状态机的原理,根据触发事件和对话的当前状态,决策预执行作动,然后将触发事件持久化至事件存储空间,以便在响应下次的对话请求时进行对话恢复。最后,对话服务端将携带有预执行动作的第一路由响应发送至路由服务端,以使路由服务端向终端发送对话响应,如此在分布式系统中完成一轮人机对话。本申请实施例提供的对话管理方法,应用于分布式系统中的对话管理系统,对话服务端能够基于标签信息快速地对对话状态进行恢复,使得多轮对话无需固定请求路由,每轮对话可以请求路由至分布式系统中任一服务端,从而实现灵活地人机对话,并且事件存储空间中只需存储触发事件,无需存储大量中间对话状态,能够减小占用的内存空间。
附图说明
图1为本申请实施例提供的对话管理方法的网络架构示意图;
图2是本申请实施例提供的对话管理设备的组成结构示意图;
图3为本申请实施例提供的对话管理方法的一种实现流程示意图;
图4为本申请实施例提供的对话管理方法的另一种实现流程示意图;
图5为本申请实施例提供的对话管理方法的又一种实现流程示意图;
图6为本申请实施例提供的对话管理方法的再一种实现流程示意图;
图7为本申请实施例提供的多轮会话管理方法的一种实现流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)多轮对话,与单轮对话相比,多轮对话的模式通常有问有答,聊天机器人也会发起询问,而且多轮对话中机器人会涉及“决策”过程,更接近一般意义上的对话模式。多轮对话功能的核心在于在反复地询问和对话过程中,收集客户信息,进而明确客户需求,但多轮对话仍限于目标明确的用户需求,也属于任务驱动型聊天机器人。
2)对话管理(DM,Dialog Management),控制着人机对话的过程,DM根据对话历史信息,决定此刻对用户的反应。DM的任务包括对话状态维护、生成系统决策、作为接口与后端/任务模型进行交互、提供语义表达的期望值等。本质上,任务驱动的对话管理实际就是一个决策过程,系统在对话过程中不断根据当前状态决定下一步应该采取的最优动作(如:提供结果,询问特定限制条件,澄清或确认需求…),从而最有效的辅助用户完成信息或服务获取的任务。
3)快照(Snapshot),是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。
4)状态机,由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。
5)自然语言理解(NLU,Natural Language Understanding),俗称人机对话,属于人工智能的分支学科,研究用电子计算机模拟人的语言交际过程,使计算机能理解和运用人类社会的自然语言如汉语、英语等,实现人机之间的自然语言通信,以代替人的部分脑力劳动,包括查询资料、解答问题、摘录文献、汇编资料以及一切有关自然语言信息的加工处理。
6)Nginx(即engine x),是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强。
7)负载均衡器,主要采取负载均衡技术进行各种灵活的分配计算,将全部的网络请求均衡地分布到其他服务器上的设备。
8)持久化,是将程序数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。
下面说明实现本申请实施例提供的对话管理设备的示例性应用,本申请实施例提供的对话管理设备可以实施为用户终端,也可以实施为服务器。下面,将说明对话管理设备实施为服务器时的示例性应用。
图1为本申请实施例提供的对话管理方法的网络架构示意图,如图1所示,在该网络架构中至少包括对话服务端100、路由服务端200、网络300和终端400。为实现支撑一个示例性应用,路由服务端200通过网络300连接对话服务端100和终端400,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
本申请实施例中,对话服务端100可以为分布式系统(或服务器集群)中任意一个包含有对话管理系统的服务端,路由服务端200为该分布式系统(或服务器集群)的前置机器,例如Nginx或负载均衡器等服务端。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
用户与终端400进行人机对话时,终端400发送对话请求至路由服务端200,由路由服务端200基于对话请求确定并发送第一路由请求至对话服务端100,其中,该对话请求携带有对话的标签信息。对话服务端100接收并响应该第一路由请求,基于标签信息对对话的状态进行恢复,将对话恢复至当前状态;并基于标签信息确定触发事件,该触发事件用于将对话的当前状态转移到下一个状态;然后对话服务端100将触发事件持久化至分布式系统的事件存储空间,基于触发事件和对话的当前状态决策预执行动作,并将该预执行动作携带于第一路由响应中发送至路由服务端200。路由服务端200基于该第一路由响应向终端400发送对话响应,以使终端400执行预执行动作,用户基于执行结果继续下一轮人机对话的内容,如此在分布式系统中完成一轮人机对话。本申请实施例提供的对话管理方法,应用于分布式系统中的对话管理系统,每轮对话可以请求路由至分布式系统中任一服务端,能够实现灵活地人机对话,并且事件存储空间中只需存储触发事件,无需存储大量中间对话状态,能够减小占用的内存空间。
参见图2,图2为本申请实施例提供的对话管理设备的结构示意图,对话管理设备10可以为对话服务端100或路由服务端200,根据图2示出的对话管理设备10的示例性结构,可以预见对话管理设备10的其他的示例性结构,因此这里所描述的结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用的特殊需求。
图2所示的对话管理设备10包括:至少一个处理器110、存储器140、至少一个网络接口120和用户接口130。对话管理设备10中的每个组件通过总线系统150耦合在一起。可理解,总线系统150用于实现这些组件之间的连接通信。总线系统150除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统150。
处理器110可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口130包括一个或多个输出装置131,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口130还包括一个或多个输入装置132,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器140可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器140可选地包括在物理位置上远离处理器110的一个或多个存储设备。
存储器140可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器140旨在包括任意适合类型的存储器。
本申请实施例中的存储器140能够存储数据以支持各种操作。这些数据的示例包括:用于在对话管理设备10上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。
作为本申请实施例提供的方法采用软件实施的示例,本申请实施例所提供的方法可以直接体现为由处理器110执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器140,处理器110读取存储器140中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器110以及连接到总线150的其他组件)完成本申请实施例提供的方法。
将结合本申请实施例提供的设备的示例性应用和实施,说明本申请实施例提供的对话管理方法。
图3为本申请实施例提供的对话管理方法的一种实现流程示意图,应用于图1所示网络架构中的对话服务端,将结合图3示出的步骤进行说明。
步骤S301,获取路由服务端发送的第一路由请求。
这里,所述第一路由请求是基于终端发送的对话请求得到的,所述对话请求携带有对话的标签信息。
用户在进行人机对话时,通过终端输入对话的信息,终端根据输入的信息确定对话的标签信息。然后将对话的标签信息携带于对话请求中发送至分布式系统(即服务器集群)的路由服务端。这里的路由服务端为该分布式系统的前置机器,例如Nginx或负载均衡器等服务端。
路由服务端接收到对话请求后,基于对话请求得到第一路由请求,在分布式系统(或服务器集群)中任意选择一个包含有对话管理系统的服务端作为人机对话的对话服务端,并将第一路由请求发送至该对话服务端,以在该对话服务端上恢复历史对话状态,并对当前的对话请求进行响应。
本申请实施例中,所述标签信息可以包括待加载的状态机F,对话标识S1,和用户输入至终端的当前输入信息。
其中,对话标识S1可以是终端设备的标识码,如设备识别码(Device ID,DeviceIdentity)、国际移动设备识别码(IMEI,International Mobile Equipment Identity)、唯一设备标识码(UDID,Unique Device Identifier)、通用唯一识别码(UUID,UniversallyUnique Identifier)等标识码中其中一个;也可以是能够标识用户身份信息的标识码,如身份证号码、手机号码等标识码中的其中一个。
用户输入至终端的当前输入信息,可以是用户直接输入至终端的文本信息,也可以是根据用户输入至终端的语音信息进行语音识别后得到的文本信息。
步骤S302,基于所述标签信息对所述对话的状态进行恢复,得到所述对话的当前状态。
基于所述标签信息,对话服务端从分布式系统的事件存储空间获取历史时间序列Event,从分布式系统的状态机配置信息存储空间获取状态机配置信息,基于状态机配置信息配置对应的状态机F,并将该状态机F进行初始化,将初始化得到的初始状态记为F0。然后基于历史时间序列Event和状态机F,将对话的状态恢复至最新状态,得到该对话的当前状态,记为Fn。
步骤S303,基于所述标签信息确定触发事件。
这里,所述触发事件用于将所述对话的当前状态转移到下一个状态。
对话服务端根据用户此轮对话输入的当前输入信息,确定触发事件,记为en+1(Fn,Fn+1)。其中Fn为对话的当前状态,Fn+1为当前状态的下一个状态。触发事件en+1(Fn,Fn+1)一般可简写为en+1
步骤S304,将所述触发事件持久化至事件存储空间。
将触发事件en+1存储至事件存储空间Event Store,为了能够在其他分布式系统的服务端中能够恢复对话,这里采用持久化存储方式,以使其能够长久保存,从而能够在其他服务端中对该对话的历史状态进行恢复。
本申请实施例中,事件存储空间中只需存储触发事件,无需存储大量中间对话状态,因此能够减小占用的内存空间,并且,由于仅存储触发事件,在恢复时传输的数据量少,从而能够提高恢复对话的速度,缩短恢复时长。
步骤S305,基于所述触发事件和所述当前状态决策预执行动作。
本申请实施例中,分布式系统的对话服务端是基于状态机进行状态恢复的,状态机可包括4个要素,即现态(即当前状态)、条件(即事件)、动作(即预执行动作)、次态(即下一个状态)。对话服务端根据触发事件en+1和对话的当前状态Fn,利用状态机原理决策得到预执行动作。该预执行动作即机器对用户的当前输入信息的回复动作,执行该预执行动作,即可得到回复信息,如此完成一轮人机对话。
其中,预执行动作为条件满足后执行的动作。动作执行完毕后,状态机就可以迁移到下一个状态。该下一个状态可以是新的状态,也可以是任意一个已有的历史状态。需要说明的是,条件满足后迁移至下一个状态后,该下一个状态被激活为新的当前状态。
步骤S306,向所述路由服务端发送第一路由响应。
这里,所述第一路由响应携带有所述预执行动作,以使所述路由服务端向所述终端发送对话响应。
对话服务端将预执行动作携带于第一路由响应中发送至路由服务端,再由路由服务端基于第一路由响应确定对话响应,将对话响应发送至终端,从而使得终端能够执行该预执行动作,完成对话请求对应的一轮人机对话。
本申请实施例提供的对话管理方法,应用于分布式对话管理系统集群中的对话服务端,所述方法包括:获取路由服务端发送的第一路由请求,所述第一路由请求是基于终端发送的对话请求得到的,所述对话请求携带有对话的标签信息;基于所述标签信息对所述对话的状态进行恢复,得到所述对话的当前状态;基于所述标签信息确定触发事件,所述触发事件用于将所述对话的当前状态转移到下一个状态;将所述触发事件持久化至事件存储空间,并基于所述触发事件和所述当前状态决策预执行动作;向所述路由服务端发送第一路由响应,所述第一路由响应携带有所述预执行动作,以使所述路由服务端向所述终端发送对话响应,如此在分布式系统中完成一轮人机对话。本申请实施例提供的对话管理方法,应用于分布式系统中的对话管理系统,对话服务端能够基于标签信息快速地对对话状态进行恢复,使得多轮对话无需固定请求路由,每轮对话可以请求路由至分布式系统中任一服务端,从而实现灵活地人机对话,并且事件存储空间中只需存储触发事件,无需存储大量中间对话状态,能够减小占用的内存空间。
在一些实施例中,图3所示实施例中步骤S302“基于所述标签信息对所述对话的状态进行恢复,得到所述对话的当前状态”,可以实现为以下步骤:
步骤S3021,基于所述标签信息,加载所述对话对应的状态机和历史事件序列。
对话服务端接收到标签信息后,对其进行解析,解析得到标签信息包括的待加载状态机F,对话标识S1和当前输入信息。然后根据待加载状态机F和对话标识S1将对话的状态恢复至最新状态。
在一些实施例中,上述步骤S3021可以实现为:
步骤S0211,对所述标签信息进行解析,得到所述对话对应的待加载状态机和对话标识。
步骤S0212,获取状态机配置信息。
这里,状态机配置信息存储在分布式系统的状态机配置存储空间。对话服务端根据解析后得到的待加载状态机F,从状态机配置存储空间中获取待加载状态F对应的配置信息。
步骤S0213,基于所述状态机配置信息加载所述待加载状态机。
对话服务端将获取到的配置信息载入至自身,得到配置信息对应的待加载状态机F。
步骤S0214,基于所述对话标识,从所述事件存储空间中加载与所述对话标识对应的历史事件序列。
对话服务端根据对话标识S1确定待恢复对话,从分布式系统的事件存储空间Event Store中加载该待恢复对话对应的历史事件序列,将该历史事件序列记为Event。其中,历史事件序列中包括至少一个历史触发事件e,历史事件序列中包括历史触发事件的个数,即为该人机对话进行的轮次(次数)。
本申请实施例中,若历史事件序列不包括历史触发事件,即历史事件序列为空,表明该用户之前未进行过人机对话,因此不存在历史触发事件。
步骤S3022,根据所述状态机和所述历史事件序列对所述对话的状态进行恢复,得到所述对话的当前状态。
根据已加载的状态机F和历史事件序列Event,对待恢复对话的状态进行恢复。在一些实施例中,上述步骤S3022可以实现为:
步骤S0221,对加载后的状态机进行初始化,得到所述对话的初始状态。
对话服务端对已加载的状态机F进行初始化,得到待恢复对话的初始状态F0。
步骤S0222,利用所述历史事件序列中包括的各个历史触发事件,触发所述对话的初始状态进行逐步转移,得到所述对话的当前状态。
由于事先已经确定历史事件序列中包括至少一个历史触发事件,即已经确定历史事件序列不为空,结合状态机原理,从初始状态F0开始,按照历史事件序列的顺序,对各个历史触发事件进行事件溯源,依次恢复对话中的各个状态,最终恢复到当前最新的状态,即对话的当前状态Fn。
本申请实施例提供的对话管理方法,对话服务端对标签信息进行解析,得到对话对应的待加载状态机和对话标识;获取状态机配置信息,基于所述状态机配置信息加载所述待加载状态机,并对加载后的状态机进行初始化,得到所述对话的初始状态;然后基于所述对话标识,从所述事件存储空间中加载与所述对话标识对应的历史事件序列,利用所述历史事件序列中包括的各个历史触发事件,触发所述对话的初始状态进行逐步转移,得到所述对话的当前状态。本申请实施例基于标签信息,实现在分布式系统的对话服务端上将对话进行恢复,无需再在分布式系统包括的各个服务端上维护对话的状态结构与转换关系,使得多轮对话无需固定请求路由,实现在分布式多机集群的环境下多轮对话管理系统。
在一些实施例中,图3所示实施例中步骤S303“基于所述标签信息确定触发事件”可以实现为以下步骤:
步骤S3031,对所述标签信息进行解析,得到当前输入信息。
这里,当前输入信息可以是用户直接输入至终端的文本信息,也可以是根据用户输入至终端的语音信息进行语音识别后得到的文本信息。
需要说明的是,若在执行步骤S0211时,对标签信息解析已经得到当前输入信息时,无需再执行步骤S3031,直接获取步骤S0211解析得到的当前输入信息即可。
步骤S3032,基于NLU对所述当前输入信息进行处理,得到目标对话内容。
由于用户输入的当前输入信息存在多种表达方式,但其语义都是相同的,为了对该多种表达方式进行统一,调用NLU服务对当前输入信息进行处理,得到目标对话内容。相同语义,不同表达方式的多个信息,进行NLU处理后,得到的内容是相同的,基于NLU对当前输入信息进行处理,相当于对当前输入信息进行标准化处理,以便机器识别。
步骤S3033,根据所述当前状态和所述目标对话内容,决策所述对话的下一个状态。
对话服务端利用状态机,将目标对话内容看做状态机的条件要素,根据当前状态Fn和目标对话内容进行决策,得到对话的下一个状态Fn+1。
步骤S3034,基于所述当前状态、所述下一个状态和所述目标对话内容确定触发事件。
对话服务端根据对话的当前状态Fn,下一个状态Fn+1,和目标对话内容,确定触发事件为en+1(Fn,Fn+1),一般可简写为en+1
本申请实施例提供的对话管理方法,对话服务端通过对所述标签信息进行解析,得到当前输入信息,基于NLU对所述当前输入信息进行处理,得到目标对话内容,根据所述当前状态和所述目标对话内容,决策所述对话的下一个状态,基于所述当前状态、所述下一个状态和所述目标对话内容确定触发事件,实现分布式环境下基于事件溯源与状态机的机器对话,从而能够实现分布式系统的人机对话。
基于图3所示实施例进行多轮对话后,本申请实施例再提供一种对话管理方法,以对多轮对话的历史状态进行查询。图4为本申请实施例提供的对话管理方法的另一种实现流程示意图,应用于图1所示网络架构中的对话服务端,如图4所示,所述对话管理方法包括以下步骤:
步骤S401,获取路由服务端发送的第一路由请求。
这里,所述第一路由请求是基于终端发送的对话请求得到的,所述对话请求携带有对话的标签信息。
本申请实施例中,步骤S401至步骤S406与图3所示实施例中步骤S301至步骤S306一一对应,其实现方式与效果,分别参见步骤S301至步骤S306中的实现方式与效果。
步骤S402,基于所述标签信息对所述对话的状态进行恢复,得到所述对话的当前状态。
步骤S403,基于所述标签信息确定触发事件。
这里,所述触发事件用于将所述对话的当前状态转移到下一个状态。
步骤S404,将所述触发事件持久化至事件存储空间。
步骤S405,基于所述触发事件和所述当前状态决策预执行动作。
步骤S406,向所述路由服务端发送第一路由响应。
这里,所述第一路由响应携带有所述预执行动作,以使所述路由服务端向所述终端发送对话响应。
步骤S407,获取路由服务端发送的第二路由请求。
这里,所述第二路由请求是基于终端发送的查询请求得到的,所述查询请求携带有查询条件信息,所述查询条件信息为截止时间、对话时长或对话次数中其中一个。
当用户想查看历史对话时,在终端中输入查询条件,终端根据查询条件确定查询请求,将该查询请求发送至路由服务端,由路由服务端根据该查询请求确定第二路由请求,并将第二路由请求发送至对话服务端。需要说明的是,在一些实施例中,进行查询时的对话服务端,可以和步骤S401至步骤S406中的对话服务端为同一个服务端,也可以为不同的服务端。
用户输入的查询条件可以是时间、对话轮次、时长等任一种,终端根据输入的查询条件生成对应的查询条件信息:截止时间、对话时长或对话次数。进一步根据查询条件信息,生成携带有查询条件信息的查询请求。
步骤S408,基于所述查询条件信息将所述对话的状态恢复至查询状态。
基于查询条件信息,对话服务端从分布式系统的事件存储空间获取历史时间序列Event,从分布式系统的状态机配置信息存储空间获取状态机配置信息,基于状态机配置信息配置对应的状态机F,并将该状态机F进行初始化,将初始化得到的初始状态记为F0。然后基于历史时间序列Event和状态机F,将对话的状态恢复至满足查询条件时对应的对话状态,即查询状态。
步骤S409,基于所述查询状态确定查询结果。
对话服务端根据查询状态,将恢复的历史对话的多轮交互信息确定为查询结果。
步骤S410,向所述路由服务端发送第二路由响应。
这里,所述第二路由响应携带有所述查询结果,以使所述路由服务端向所述终端发送所述查询结果。
对话服务端查询得到查询结果后,将该查询结果携带于第二路由响应中发送给路由服务端,再由路由服务端将查询结果携带于查询响应中发送给终端,终端接收到查询结果后对其输出,以便用户查看。
这里,输出查询结果时,可以按照文本方式输出,也可以按照语音方式输出,还可以按照其他可能的方式输出。
本申请实施例提供的对话管理方法,对话服务端通过获取路由服务端发送的第二路由请求,基于所述查询条件信息将所述对话的状态恢复至查询状态,基于所述查询状态确定查询结果,向所述路由服务端发送第二路由响应,该第二路由响应携带有所述查询结果,以使所述路由服务端向所述终端发送所述查询结果,实现历史对话的查询,能够在分布式系统的任意服务端上,快速恢复对话至查询状态,便于用户查询历史对话。
基于前述的实施例,本申请实施例再提供一种对话管理方法,图5为本申请实施例提供的对话管理方法的又一种实现流程示意图,应用于图1所示网络架构中的路由服务端,如图5所示,所述对话管理方法包括以下步骤:
步骤S501,获取终端发送的用于执行对话管理任务的对话请求。
这里,所述对话请求携带有对话的标签信息。
用户在进行人机对话时,通过终端输入对话的信息,终端根据输入的信息确定对话的标签信息。然后将对话的标签信息携带于对话请求中发送至分布式系统(即服务器集群)的路由服务端。这里的路由服务端为该分布式系统的前置机器,例如Nginx或负载均衡器等服务端。
本申请实施例中,所述标签信息可以包括待加载的状态机F,对话标识S1,和用户输入至终端的当前输入信息。
其中,对话标识S1可以是终端设备的标识码,如设备识别码(Device ID,DeviceIdentity)、国际移动设备识别码(IMEI,International Mobile Equipment Identity)、唯一设备标识码(UDID,Unique Device Identifier)、通用唯一识别码(UUID,UniversallyUnique Identifier)等标识码中其中一个;也可以是能够标识用户身份信息的标识码,如身份证号码、手机号码等标识码中的其中一个。
用户输入至终端的当前输入信息,可以是用户直接输入至终端的文本信息,也可以是根据用户输入至终端的语音信息进行语音识别后得到的文本信息。
步骤S502,从所述分布式对话管理系统集群中筛选用于执行对话管理任务的对话服务端。
这里,所述对话服务端为空闲状态。
本申请实施例中,第一终端可以是服务端对话管理系统集群中任一终端。筛选第一终端的一种实现方式可以为:从从所述服务端对话管理系统集群中随机选择一个终端;当所述一个终端为空闲状态时,将所述一个终端确定为第一终端。当所述一个终端为非空闲状态时,继续随机选择,直至选择得到的终端为空闲状态时为止。
步骤S503,基于所述对话请求确定第一路由请求。
路由服务端接收到对话请求后,基于对话请求确定第一路由请求,该第一路由请求中携带有对话的标签信息。
步骤S504,将所述第一路由请求发送至所述对话服务端,以使所述对话服务端基于所述标签信息对所述对话进行恢复和决策,得到预执行动作。
在分布式系统(或服务器集群)中任意选择一个包含有对话管理系统的服务端作为人机对话的对话服务端,将第一路由请求发送至该对话服务端,以在该对话服务端上恢复历史对话状态,并对当前的对话请求进行响应,得到预执行动作。
步骤S505,获取所述对话服务端发送的第一路由响应。
这里,所述第一路由响应携带有所述预执行动作。
步骤S506,向所述终端发送对话响应,以使所述终端执行所述预执行动作。
对话服务端将决策得到的预执行动作携带于第一路由响应中发送至路由服务端。路由服务端接收到第一路由响应后,基于该第一路由响应确定对应的对话响应,并将对话响应发送至终端,从而使得终端能够执行该预执行动作,完成对话请求对应的一轮人机对话。这里,所述对话响应携带有所述预执行动作。
本申请实施例提供的对话管理方法,应用于分布式对话管理系统集群的路由服务端,所述方法包括:获取终端发送的用于执行对话管理任务的对话请求,所述对话请求携带有对话的标签信息;从所述分布式对话管理系统集群中筛选用于执行对话管理任务的对话服务端,所述对话服务端为空闲状态;基于所述对话请求确定第一路由请求,并将所述第一路由请求发送至所述对话服务端,以使所述对话服务端基于所述标签信息对所述对话进行恢复和决策,得到预执行动作;获取所述对话服务端发送的第一路由响应,所述第一路由响应携带有所述预执行动作;向所述终端发送对话响应,以使所述终端执行所述预执行动作,如此在分布式系统中完成一轮人机对话。本申请实施例提供的对话管理方法,应用于分布式系统中的对话管理系统,路由服务端随机的从分布式系统中确定对话服务端,使得多轮对话无需固定请求路由,每轮对话可以请求路由至分布式系统中任一服务端,从而实现灵活地人机对话。
基于前述的实施例,本申请实施例再提供一种对话管理方法,图6为本申请实施例提供的对话管理方法的再一种实现流程示意图,应用于图1所示的网络架构,如图6所示,所述对话管理方法包括以下步骤:
步骤S601,终端发送对话请求至路由服务端。
这里,所述对话请求用于执行对话管理任务,所述对话请求携带有对话的标签信息。
用户在进行人机对话时,通过终端输入对话的信息,终端根据输入的信息确定对话的标签信息。然后将对话的标签信息携带于对话请求中发送至分布式系统(即服务器集群)的路由服务端。
本申请实施例中,所述标签信息可以包括待加载的状态机F,对话标识S1,和用户输入至终端的当前输入信息。
步骤S602,路由服务端从所述分布式对话管理系统集群中随机选择一个服务端。
步骤S603,当所述一个服务端为空闲状态时,路由服务端将所述一个服务端确定为对话服务端。
路由服务端从分布式对话管理系统集群中随机选择一个服务端作为对话服务端,使得多轮对话无需固定请求路由,每轮对话可以请求路由至分布式系统中任一服务端,从而实现灵活地人机对话。
步骤S604,路由服务端基于所述对话请求确定第一路由请求。
这里,所述第一路由请求携带有对话的标签信息。
步骤S605,路由服务端将所述第一路由请求发送至所述对话服务端。
步骤S606,对话服务端对所述标签信息进行解析,得到所述对话对应的待加载状态机和对话标识。
步骤S607,对话服务端获取状态机配置信息。
这里,状态机配置信息存储在分布式系统的状态机配置存储空间。对话服务端根据解析后得到的待加载状态机F,从状态机配置存储空间中获取待加载状态F对应的配置信息。
步骤S608,对话服务端基于所述状态机配置信息加载所述待加载状态机。
对话服务端将获取到的配置信息载入至自身,得到配置信息对应的待加载状态机F。
步骤S609,对话服务端基于所述对话标识,从所述事件存储空间中加载与所述对话标识对应的历史事件序列。
其中,历史事件序列中包括至少一个历史触发事件e,历史事件序列中包括历史触发事件的个数,即为该人机对话进行的轮次。
步骤S610,对话服务端对加载后的状态机进行初始化,得到所述对话的初始状态。
步骤S611,对话服务端利用所述历史事件序列中包括的各个历史触发事件,触发所述对话的初始状态进行逐步转移,得到所述对话的当前状态。
本申请实施例中,结合状态机原理,从对话的初始状态开始,按照历史事件序列的顺序,对各个历史触发事件进行事件溯源,依次恢复对话中的各个状态,最终恢复到当前最新的状态,即对话的当前状态。
步骤S612,对话服务端对所述标签信息进行解析,得到当前输入信息。
步骤S613,对话服务端基于NLU对所述当前输入信息进行处理,得到目标对话内容。
本申请实施例中,基于NLU对当前输入信息进行处理,相当于对当前输入信息进行标准化处理,以便机器识别。相同语义,不同表达方式的多个信息,进行NLU处理后,得到的内容是相同的。
步骤S614,对话服务端根据所述当前状态和所述目标对话内容,决策所述对话的下一个状态。
对话服务端利用状态机,根据当前状态和目标对话内容进行决策,得到对话的下一个状态。
步骤S615,对话服务端基于所述当前状态、所述下一个状态和所述目标对话内容确定触发事件。
这里,所述触发事件用于将所述对话的当前状态转移到下一个状态。
步骤S616,对话服务端将所述触发事件持久化至事件存储空间。
将触发事件存储至事件存储空间,为了能够在其他分布式系统的服务端中能够恢复对话,这里采用持久化存储方式,以使其能够长久保存,从而能够在其他服务端中对该对话的历史状态进行恢复。
步骤S617,对话服务端基于所述触发事件和所述当前状态决策预执行动作。
其中,预执行动作为满足触发事件后执行的动作。动作执行完毕后,状态机就可以由当前状态迁移到下一个状态。
步骤S618,对话服务端向所述路由服务端发送第一路由响应。
这里,所述第一路由响应携带有所述预执行动作,以使所述路由服务端向所述终端发送对话响应。
步骤S619,路由服务端向所述终端发送对话响应。
这里,所述第一路由响应携带有所述预执行动作,以使所述终端执行所述预执行动作。
步骤S620,终端执行所述预执行动作。
对话服务端将预执行动作携带于第一路由响应中发送至路由服务端,再由路由服务端基于第一路由响应确定对话响应,将对话响应发送至终端,从而使得终端能够执行该预执行动作,完成对话请求对应的一轮人机对话。
本申请实施例提供的对话管理方法,在分布式系统中实现多轮对话管理系统,能够基于标签信息快速地对对话状态进行恢复,使得多轮对话无需固定请求路由,每轮对话可以请求路由至分布式系统中任一服务端,从而实现灵活地人机对话,并且事件存储空间中只需存储触发事件,无需存储大量中间对话状态,能够减小占用的内存空间。
在一些实施例中,终端还可以查询历史对话,此时,在上述步骤S620之后,所述方法还可以包括以下步骤:
步骤S621,终端发送查询请求至路由服务端。
这里,所述查询请求携带有查询条件信息,所述查询条件信息为截止时间、对话时长或对话次数中其中一个。
当用户想查看历史对话时,在终端中输入查询条件,终端根据查询条件确定查询请求,将该查询请求发送至路由服务端。用户输入的查询条件可以是时间、对话轮次、时长等任一种,终端根据输入的查询条件生成对应的查询条件信息:截止时间、对话时长或对话次数。进一步根据查询条件信息,生成携带有查询条件信息的查询请求。
步骤S622,路由服务端从所述分布式对话管理系统集群中随机选择一个服务端。
需要说明的是,进行查询时的对话服务端,可以和步骤S601至步骤S620中的对话服务端为同一个服务端,也可以为不同的服务端。
步骤S623,当所述一个服务端为空闲状态时,路由服务端将所述一个服务端确定为对话服务端。
路由服务端从分布式对话管理系统集群中随机选择一个服务端作为对话服务端,能够在任一服务端查询历史对话。
步骤S624,路由服务端基于所述查询请求确定第二路由请求。
这里,所述第一路由请求携带有查询条件信息。
步骤S625,路由服务端将所述第二路由请求发送至所述对话服务端。
步骤S626,对话服务端基于所述查询条件信息将所述对话的状态恢复至查询状态。
基于查询条件信息,对话服务端从分布式系统的事件存储空间获取历史时间序列,从分布式系统的状态机配置信息存储空间获取状态机配置信息,基于状态机配置信息配置对应的状态机,并将该状态机进行初始化,得到初始状态。然后基于历史时间序列和状态机,将对话的状态恢复至满足查询条件时对应的对话状态,即查询状态。
步骤S627,对话服务端基于所述查询状态确定查询结果。
对话服务端根据查询状态,将恢复的历史对话的多轮交互信息确定为查询结果。
步骤S628,对话服务端向所述路由服务端发送第二路由响应。
这里,所述第二路由响应携带有所述查询结果,以使所述路由服务端向所述终端发送所述查询结果。
步骤S629,路由服务端向所述终端发送查询响应。
步骤S630,终端接收所述查询响应,并输出所述查询响应中携带的查询结果。
路由服务端将查询结果携带于查询响应中发送给终端,终端接收到查询结果后对其输出,以便用户查看。
本申请实施例提供的对话管理方法,在分布式系统中实现多轮对话管理的历史对话的查询,能够在分布式系统的任意服务端上,快速恢复对话至查询状态,便于用户查询历史对话。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
智能对话系统的工作简单来说就是理解人类语言,并与人类进行有效的沟通,进而根据对人类意图的理解执行特定任务或作出回答。根据智能化程度的不同,智能对话系统的会话表现形式可简单分为单轮和多轮对话两种。单轮对话类似于升级版的问答系统,可作为一个高效低成本的自动化信息检索或查询工具,并且可以引导用户进行自助服务,充分发挥企业知识库的作用;多轮对话功能的核心在于在反复地询问和对话过程中,收集客户信息,进而明确客户需求,但多轮对话仍限于目标明确的用户需求,也属于任务驱动型聊天机器人。
相关技术中,多轮会话(即上文中的对话)管理系统的主要方案有在单机系统的内存中维护用户配置的状态结构与状态间的转换关系,例如使用Hash表作为数据结构或者使用状态机作为逻辑抽象。依据用户的对话内容(触发的事件),对状态机的当前状态进行跳转。在此基础上,为了在集群环境下调度与恢复对话上下文,一般有两种方案:
方案一:通过固定的请求路由将相同会话定位到特定机器,依旧在内存中保持状态,此类方法要求在内存中保持所有状态,存储完整的会话状态与上下文信息,如果需要回溯历史,则需要对历史状态进行快照。
方案二:对会话上下文的状态实时快照,持久化存储。当调度到集群内不同机器后需要依据快照恢复整个内存状态。
由于多轮会话管理系统需要在系统内存中保持最新会话状态,并根据当前状态决定下一个状态的候选集。维护这样的状态结构与转换关系十分复杂,并难在分布式系统的多机环境下实现;并且,由于业务的多样性以及用户输入存在高度的随意性,相关技术中无法在任意机器上恢复指定时间点的会话上下文。
为解决上述问题,本申请实施例提供一种分布式环境下基于事件溯源与有限状态机的多轮会话管理方法,图7为本申请实施例提供的多轮会话管理方法的一种实现流程示意图,如图7所述,所述方法包括以下步骤:
步骤S701,服务端会话管理系统集群的前置机器向机器M1发送请求路由信息。
客户端连接服务端会话管理系统集群的前置机器(如Nginx或负载均衡器),前置机器可以将请求路由信息转发至集群内任意一个包含会话管理系统的实例机器M1,该请求路由信息包括对话的标签Meta信息。本申请实施例中,所述标签信息可以包括需要加载的状态机F,会话唯一标识S1,用户输入信息等。
步骤S702,M1加载历史事件序列Event和状态机。
M1获取从事件存储空间Event Store获取历史事件序列Event,从状态配置信息存储空间获取状态配置信息。机器M1依据请求路由信息加载对应的状态机F并将其初始化为F0,并依据会话唯一标识S1加载历史事件序列Event。
步骤S703,M1进行事件溯源与状态恢复。
如果Event非空,M1开始事件溯源,依次恢复状态(假设包含事件e1,e2,…,en,则状态机按照配置进行跳转F1,F2,…,Fn),最终恢复到当前最新的状态Fn。
步骤S704,M1调用NLU服务,对下一个状态进行决策,获得下一个状态Fn+1和预执行动作。
会话管理系统调用NLU服务,从状态机的下一个状态候选集中决策出当前状态Fn的下一个状态Fn+1。
步骤S705,M1触发新的事件en+1,并进行状态更新。
会话管理系统触发新的事件:en+1,此事件内部包括步骤S704中决策的状态信息,即设置状态机的下一状态为Fn+1。
步骤S706,M1对事件en+1进行持久化。
会话管理系统持久化en+1至事件存储空间,更新当前的事件序列为e1,e2,…,en,en+1;并根据en+1对状态机的状态进行修改,跳转为下一个状态Fn+1。
步骤S707,M1返回预执行动作给客户端。
会话管理系统返回此轮对话的结果给客户端,完成一次请求。
当新的客户端连接服务端会话管理系统时,重复上述步骤S701至步骤S707的过程,即可在任意机器内恢复并执行会话管理任务。
如需恢复状态上下文到任意时间点,则只需要根据历史事件序列Event恢复对话状态至对应时间点即可。
本申请实施例提出的对话管理方法,将事件溯源机制引入了会话管理系统,可以在分布式环境下实现多轮会话管理系统,而无需固定请求路由;能够减少中间状态的存储,可以快速恢复会话状态到任意指定的时间点;并且可以在分布式环境下快速对会话管理系统进行横向扩展。
下面继续说明本申请实施例提供的对话管理装置的实施为软件模块的示例性结构,在一些实施例中,存储在存储器140的对话管理装置80,可以应用于分布式对话管理系统集群中的对话服务端,也可以应用于分布式对话管理系统集群中的路由服务端,如图2所示,当对话管理装置80应用于分布式对话管理系统集群中的对话服务端时,所述对话管理装置80中的软件模块可以包括:
第一获取模块81,用于获取路由服务端发送的第一路由请求,所述第一路由请求是基于终端发送的对话请求得到的,所述对话请求携带有对话的标签信息;
第一恢复模块82,用于基于所述标签信息对所述对话的状态进行恢复,得到所述对话的当前状态;
第一确定模块83,用于基于所述标签信息确定触发事件,所述触发事件用于将所述对话的当前状态转移到下一个状态;
持久化模块84,用于将所述触发事件持久化至事件存储空间;
决策模块85,用于基于所述触发事件和所述当前状态决策预执行动作;
第一发送模块86,用于向所述路由服务端发送第一路由响应,所述第一路由响应携带有所述预执行动作,以使所述路由服务端向所述终端发送对话响应。
在一些实施例中,所述第一恢复模块82,还用于:
基于所述标签信息,加载所述对话对应的状态机和历史事件序列;
根据所述状态机和所述历史事件序列对所述对话的状态进行恢复,得到所述对话的当前状态。
在一些实施例中,所述第一恢复模块82,还用于:
对所述标签信息进行解析,得到所述对话对应的待加载状态机和对话标识;
获取状态机配置信息,并基于所述状态机配置信息加载所述待加载状态机;
基于所述对话标识,从所述事件存储空间中加载与所述对话标识对应的历史事件序列。
在一些实施例中,所述第一恢复模块82,还用于:
对加载后的状态机进行初始化,得到所述对话的初始状态;
利用所述历史事件序列中包括的各个历史触发事件,触发所述对话的初始状态进行逐步转移,得到所述对话的当前状态。
在一些实施例中,所述第一确定模块83,还用于:
对所述标签信息进行解析,得到当前输入信息;
基于自然语言理解NLU对所述当前输入信息进行处理,得到目标对话内容;
根据所述当前状态和所述目标对话内容,决策所述对话的下一个状态;
基于所述当前状态、所述下一个状态和所述目标对话内容确定触发事件。
在一些实施例中,所述对话管理装置80,还可以包括:
第四获取模块,用于获取路由服务端发送的第二路由请求,所述第二路由请求是基于终端发送的查询请求得到的,所述查询请求携带有查询条件信息,所述查询条件信息为截止时间、对话时长或对话次数中其中一个;
第二恢复模块,用于基于所述查询条件信息将所述对话的状态恢复至查询状态;
第三确定模块,用于基于所述查询状态确定查询结果;
第四发送模块,用于向所述路由服务端发送第二路由响应,所述第二路由响应携带有所述查询结果,以使所述路由服务端向所述终端发送所述查询结果。
在另一些实施例中,当对话管理装置应用于分布式对话管理系统集群中的路由服务端时,所述对话管理装置中的软件模块可以包括:
第二获取模块,用于获取终端发送的用于执行对话管理任务的对话请求,所述对话请求携带有对话的标签信息;
筛选模块,用于从所述分布式对话管理系统集群中筛选用于执行对话管理任务的对话服务端,所述对话服务端为空闲状态;
第二确定模块,用于基于所述对话请求确定第一路由请求;
第二发送模块,用于将所述第一路由请求发送至所述对话服务端,以使所述对话服务端基于所述标签信息对所述对话进行恢复和决策,得到预执行动作;
第三获取模块,用于获取所述对话服务端发送的第一路由响应,所述第一路由响应携带有所述预执行动作;
第三发送模块,用于向所述终端发送对话响应,以使所述终端执行所述预执行动作。
在一些实施例中,所述筛选模块,还用于:
从所述分布式对话管理系统集群中随机选择一个服务端;
当所述一个服务端为空闲状态时,将所述一个服务端确定为对话服务端。
这里需要指出的是:以上对话管理装置实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果。对于本申请对话管理装置实施例中未披露的技术细节,本领域的技术人员请参照本申请方法实施例的描述而理解。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的对话管理方法。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3至图7示出的方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (13)

1.一种对话管理方法,其特征在于,应用于分布式对话管理系统集群中的对话服务端,所述方法包括:
获取路由服务端发送的第一路由请求,所述第一路由请求是基于终端发送的对话请求得到的,所述对话请求携带有对话的标签信息;
基于所述标签信息对所述对话的状态进行恢复,得到所述对话的当前状态;
基于所述标签信息确定触发事件,所述触发事件用于将所述对话的当前状态转移到下一个状态;
将所述触发事件持久化至事件存储空间,并基于所述触发事件和所述当前状态决策预执行动作;
向所述路由服务端发送第一路由响应,所述第一路由响应携带有所述预执行动作,以使所述路由服务端向所述终端发送对话响应。
2.根据权利要求1所述的方法,其特征在于,所述基于所述标签信息对所述对话的状态进行恢复,得到所述对话的当前状态,包括:
基于所述标签信息,加载所述对话对应的状态机和历史事件序列;
根据所述状态机和所述历史事件序列对所述对话的状态进行恢复,得到所述对话的当前状态。
3.根据权利要求2所述的方法,其特征在于,所述基于所述标签信息,加载所述对话对应的状态机和历史事件序列,包括:
对所述标签信息进行解析,得到所述对话对应的待加载状态机和对话标识;
获取状态机配置信息,并基于所述状态机配置信息加载所述待加载状态机;
基于所述对话标识,从所述事件存储空间中加载与所述对话标识对应的历史事件序列。
4.根据权利要求2所述的方法,其特征在于,所述根据所述状态机和所述历史事件序列对所述对话的状态进行恢复,得到所述对话的当前状态,包括:
对加载后的状态机进行初始化,得到所述对话的初始状态;
利用所述历史事件序列中包括的各个历史触发事件,触发所述对话的初始状态进行逐步转移,得到所述对话的当前状态。
5.根据权利要求1所述的方法,其特征在于,所述基于所述标签信息确定触发事件,包括:
对所述标签信息进行解析,得到当前输入信息;
基于自然语言理解NLU对所述当前输入信息进行处理,得到目标对话内容;
根据所述当前状态和所述目标对话内容,决策所述对话的下一个状态;
基于所述当前状态、所述下一个状态和所述目标对话内容确定触发事件。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取路由服务端发送的第二路由请求,所述第二路由请求是基于终端发送的查询请求得到的,所述查询请求携带有查询条件信息,所述查询条件信息为截止时间、对话时长或对话次数中其中一个;
基于所述查询条件信息将所述对话的状态恢复至查询状态;
基于所述查询状态确定查询结果;
向所述路由服务端发送第二路由响应,所述第二路由响应携带有所述查询结果,以使所述路由服务端向所述终端发送所述查询结果。
7.一种对话管理方法,其特征在于,应用于分布式对话管理系统集群的路由服务端,所述方法包括:
获取终端发送的用于执行对话管理任务的对话请求,所述对话请求携带有对话的标签信息;
从所述分布式对话管理系统集群中筛选用于执行对话管理任务的对话服务端,所述对话服务端为空闲状态;
基于所述对话请求确定第一路由请求,并将所述第一路由请求发送至所述对话服务端,以使所述对话服务端基于所述标签信息对所述对话进行恢复和决策,得到预执行动作;
获取所述对话服务端发送的第一路由响应,所述第一路由响应携带有所述预执行动作;
向所述终端发送对话响应,以使所述终端执行所述预执行动作。
8.根据权利要求7所述的方法,其特征在于,所述从所述分布式对话管理系统集群中筛选用于执行对话管理任务的对话服务端,包括:
从所述分布式对话管理系统集群中随机选择一个服务端;
当所述一个服务端为空闲状态时,将所述一个服务端确定为对话服务端。
9.一种对话管理装置,其特征在于,应用于分布式对话管理系统集群中的对话服务端,所述装置包括:
第一获取模块,用于获取路由服务端发送的第一路由请求,所述第一路由请求是基于终端发送的对话请求得到的,所述对话请求携带有对话的标签信息;
第一恢复模块,用于基于所述标签信息对所述对话的状态进行恢复,得到所述对话的当前状态;
第一确定模块,用于基于所述标签信息确定触发事件,所述触发事件用于将所述对话的当前状态转移到下一个状态;
持久化模块,用于将所述触发事件持久化至事件存储空间;
决策模块,用于基于所述触发事件和所述当前状态决策预执行动作;
第一发送模块,用于向所述路由服务端发送第一路由响应,所述第一路由响应携带有所述预执行动作,以使所述路由服务端向所述终端发送对话响应。
10.一种对话管理装置,其特征在于,应用于分布式对话管理系统集群的路由服务端,所述装置包括:
第二获取模块,用于获取终端发送的用于执行对话管理任务的对话请求,所述对话请求携带有对话的标签信息;
筛选模块,用于从所述分布式对话管理系统集群中筛选用于执行对话管理任务的对话服务端,所述对话服务端为空闲状态;
第二确定模块,用于基于所述对话请求确定第一路由请求;
第二发送模块,用于将所述第一路由请求发送至所述对话服务端,以使所述对话服务端基于所述标签信息对所述对话进行恢复和决策,得到预执行动作;
第三获取模块,用于获取所述对话服务端发送的第一路由响应,所述第一路由响应携带有所述预执行动作;
第三发送模块,用于向所述终端发送对话响应,以使所述终端执行所述预执行动作。
11.一种对话管理设备,其特征在于,所述设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至6或7至8任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有可执行指令,用于引起处理器执行时,实现权利要求1至6或7至8任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6或7至8任一项所述的方法。
CN202110303936.1A 2021-03-22 2021-03-22 对话管理方法、设备、计算机可读存储介质及程序产品 Pending CN112883184A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110303936.1A CN112883184A (zh) 2021-03-22 2021-03-22 对话管理方法、设备、计算机可读存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110303936.1A CN112883184A (zh) 2021-03-22 2021-03-22 对话管理方法、设备、计算机可读存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN112883184A true CN112883184A (zh) 2021-06-01

Family

ID=76041709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110303936.1A Pending CN112883184A (zh) 2021-03-22 2021-03-22 对话管理方法、设备、计算机可读存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN112883184A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303571A (zh) * 1998-05-26 2001-07-11 英国电讯有限公司 服务供应支持系统
US20030097369A1 (en) * 2001-10-31 2003-05-22 International Business Machines Corporation Dynamic generic framework for distributed tooling
CN1859074A (zh) * 2006-03-30 2006-11-08 华为技术有限公司 一种防止用户设备在基站间切换时数据丢失的方法
CN101030964A (zh) * 2006-03-03 2007-09-05 华为技术有限公司 会话控制装置和方法
CN102239481A (zh) * 2007-12-01 2011-11-09 朗讯科技公司 具有负载平衡的ims diameter路由器
EP2763374A1 (en) * 2013-02-05 2014-08-06 Nuance Communications, Inc. Method and apparatus for supporting scalable multi-modal dialog application sessions
CN105229989A (zh) * 2013-04-12 2016-01-06 微软技术许可有限责任公司 针对移动设备的节能数据处理
CN108446290A (zh) * 2017-02-16 2018-08-24 谷歌有限责任公司 流式实时对话管理
CN111414242A (zh) * 2020-03-13 2020-07-14 天津美腾科技股份有限公司 状态机的运行方法、装置、服务器、系统和存储介质
CN111831795A (zh) * 2019-04-11 2020-10-27 北京猎户星空科技有限公司 多轮对话处理方法、装置、电子设备及存储介质
CN112487170A (zh) * 2020-12-14 2021-03-12 南京三眼精灵信息技术有限公司 面向场景配置的人机交互对话机器人系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303571A (zh) * 1998-05-26 2001-07-11 英国电讯有限公司 服务供应支持系统
US20030097369A1 (en) * 2001-10-31 2003-05-22 International Business Machines Corporation Dynamic generic framework for distributed tooling
CN101030964A (zh) * 2006-03-03 2007-09-05 华为技术有限公司 会话控制装置和方法
CN1859074A (zh) * 2006-03-30 2006-11-08 华为技术有限公司 一种防止用户设备在基站间切换时数据丢失的方法
CN102239481A (zh) * 2007-12-01 2011-11-09 朗讯科技公司 具有负载平衡的ims diameter路由器
EP2763374A1 (en) * 2013-02-05 2014-08-06 Nuance Communications, Inc. Method and apparatus for supporting scalable multi-modal dialog application sessions
CN105229989A (zh) * 2013-04-12 2016-01-06 微软技术许可有限责任公司 针对移动设备的节能数据处理
CN108446290A (zh) * 2017-02-16 2018-08-24 谷歌有限责任公司 流式实时对话管理
CN111831795A (zh) * 2019-04-11 2020-10-27 北京猎户星空科技有限公司 多轮对话处理方法、装置、电子设备及存储介质
CN111414242A (zh) * 2020-03-13 2020-07-14 天津美腾科技股份有限公司 状态机的运行方法、装置、服务器、系统和存储介质
CN112487170A (zh) * 2020-12-14 2021-03-12 南京三眼精灵信息技术有限公司 面向场景配置的人机交互对话机器人系统

Similar Documents

Publication Publication Date Title
CN112118565B (zh) 多租户服务灰度发布方法、装置、计算机设备和存储介质
CN111492383B (zh) 使用意图分类器的自动化通信
CN101589599B (zh) 移动设备管理代理系统
CN108196915B (zh) 基于应用容器引擎的代码处理方法、设备及存储介质
CN108961033B (zh) 多业务系统交互方法及装置、存储介质、电子终端
CN105593817B (zh) 本地或分布式计算机系统上的柔性节点组成的方法和系统
EP2369480A2 (en) Mashup infrastructure with learning mechanism
CN110083455B (zh) 图计算处理方法、装置、介质及电子设备
CN101853152B (zh) 一种生成用户图形界面的方法和系统
CN112130937A (zh) 页面显示方法与装置、存储介质、电子设备
CN112787999B (zh) 跨链调用方法、装置、系统与计算机可读存储介质
CN111400350B (zh) 配置数据读取方法、系统、电子设备和存储介质
CN113626095A (zh) 配置中心的切换方法、切换系统、电子设备及存储介质
CN104620218A (zh) 任务链的方法与装置
CN106302125A (zh) 一种对请求信息进行响应的方法、装置及系统
CN112883184A (zh) 对话管理方法、设备、计算机可读存储介质及程序产品
US10248452B2 (en) Interaction framework for executing user instructions with online services
CN116848580A (zh) 用于针对多方对话的话语解析的结构自感知模型
CN112948141A (zh) 一种基于消息中间件的数据处理方法、装置和系统
CN107301089A (zh) 一种app部署及调用方法和终端
CN112527290A (zh) 基于生物特征信息搭建页面的方法和装置
CN111414232B (zh) 虚拟机模板数据处理方法及装置
CN112100338B (zh) 一种智能机器人的对话主题扩展方法、装置和系统
US11803358B1 (en) Adaptive issue type identification platform
US20230359908A1 (en) Optimizing cogbot retraining

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination