CN117633181A - 人机对话方法、对话中控服务器、对话引擎及存储介质 - Google Patents

人机对话方法、对话中控服务器、对话引擎及存储介质 Download PDF

Info

Publication number
CN117633181A
CN117633181A CN202311646407.7A CN202311646407A CN117633181A CN 117633181 A CN117633181 A CN 117633181A CN 202311646407 A CN202311646407 A CN 202311646407A CN 117633181 A CN117633181 A CN 117633181A
Authority
CN
China
Prior art keywords
engine
query information
cache
dialogue
information
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
CN202311646407.7A
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.)
Hangzhou Alibaba Cloud Feitian Information Technology Co ltd
Original Assignee
Hangzhou Alibaba Cloud Feitian Information Technology 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 Hangzhou Alibaba Cloud Feitian Information Technology Co ltd filed Critical Hangzhou Alibaba Cloud Feitian Information Technology Co ltd
Priority to CN202311646407.7A priority Critical patent/CN117633181A/zh
Publication of CN117633181A publication Critical patent/CN117633181A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种人机对话方法、对话中控服务器、对话引擎及存储介质。本申请的方法,对话中控服务器基于用户输入的第一查询信息,在各对话引擎缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据;根据各对话引擎对第一查询信息的缓存查找结果选择其中一个对话引擎作为目标引擎,控制目标引擎在命中缓存的情况下,不再调用模型,而是从缓存中获取模型处理结果,并生成答复信息;在未命中缓存的情况下,调用模型获得模型处理结果,生成答复信息,并缓存第一查询信息对应的模型处理结果数据,在后续人机对话过程中遇到相同或类似查询时无需再调用模型,可减少对话模型的调用,降低GPU资源成本,提升对话系统的响应速度和并发处理能力。

Description

人机对话方法、对话中控服务器、对话引擎及存储介质
技术领域
本申请涉及计算机技术,尤其涉及一种人机对话方法、对话中控服务器、对话引擎及存储介质。
背景技术
随着大模型技术的迅猛发展,越来越多的领域开始应用大模型技术,大型语言模型(Large Language Model,简称LLM)等大模型也被应用于智能对话机器人等人机对话场景。将大模型应用于人机对话系统时,人机对话系统在与用户的每轮对话中,需调用大模型来生成答复信息。
但是,申请人发现在将大模型技术应用在人机对话系统的过程中遇到了如下技术问题:一是图形处理器(Graphics Processing Unit,简称GPU)资源成本高,由于大模型具有大规模的参数量,其训练和推理过程需要依赖大量的GPU资源。二是响应速度慢,在许多实时应用(如对话系统、智能助手等)中,对应用的响应时间要求非常高,通常在毫秒级别。由于大模型具有大规模的参数量,其推理过程耗时较长(通常在秒级),响应速度较慢,导致无法实时返回答复信息。
发明内容
本申请提供一种人机对话方法、对话中控服务器、对话引擎及存储介质,用以解决基于大模型的人机对话系统的GPU资源成本高、响应速度慢的问题。
第一方面,本申请提供一种人机对话方法,应用于对话中控服务器,包括:基于用户输入的第一查询信息,在至少一个对话引擎缓存的模型处理结果数据中,查找与所述第一查询信息匹配的缓存数据,得到各对话引擎对所述第一查询信息的缓存查找结果;根据各对话引擎对所述第一查询信息的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制所述目标引擎根据对所述第一查询信息的缓存查找结果,生成答复信息。
第二方面,本申请提供一种人机对话方法,应用于对话引擎,所述方法包括:接收对话中控服务器发送的第一查询信息;在缓存的模型处理结果数据中,查找与所述第一查询信息匹配的缓存数据,得到所述第一查询信息的缓存查找结果;向所述对话中控服务器返回所述第一查询信息的缓存查找结果;基于所述对话中控服务器的控制信息,根据所述第一查询信息的缓存查找结果,生成答复信息。
第三方面,本申请提供一种人机对话方法,应用于智能客服系统中的对话中控服务器,所述方法包括:接收用户所需咨询的第一问题,在至少一个对话引擎缓存的模型处理结果数据中,查找与所述第一问题的缓存数据,得到各对话引擎对所述第一问题的缓存查找结果;根据各对话引擎对所述第一问题的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制所述目标引擎根据对所述第一问题的缓存查找结果,生成答复信息。
第四方面,本申请提供一种对话中控服务器,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述对话中控服务器执行前述第一方面或第三方面所述的方法。
第五方面,本申请提供一种对话引擎,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述对话引擎执行前述第二方面所述的方法。
第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面、第二方面或第三方面所述的方法。
本申请提供的人机对话方法、对话中控服务器、对话引擎及存储介质,在进行人机对话时,对话中控服务器基于用户输入的第一查询信息(query),在各对话引擎缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到各对话引擎对第一查询信息的缓存查找结果;根据各对话引擎对第一查询信息的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制目标引擎根据对第一查询信息的缓存查找结果,生成答复信息,通过在各对话引擎缓存历史查询信息的模型处理结果数据,在后续人机对话过程中遇到相同或类似查询时,无需调用对话模型,基于当前查询信息(即第一查询信息)命中的模型处理结果的缓存数据,生成答复信息,可以减少对话模型的调用,降低人机对话的GPU资源成本,提升人机对话的响应速度,进而提升人机对话系统的并发处理能力,提升人机对话系统的总体响应速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请所适用的一示例系统架构的示意图;
图2为本申请一示例性实施例提供的一种对话系统的二阶段调度方案的示例框架图;
图3为本申请一示例性实施例提供的人机对话方法的流程图;
图4为本申请一示例性实施例提供的基于缓存查找结果生成答复信息的流程图;
图5为本申请另一示例性实施例提供的人机对话方法流程图;
图6为本申请另一示例性实施例提供的对话系统二阶段调度方案的示例框架图;
图7为本申请一示例性实施例提供的智能客服系统的人机对话流程图;
图8为本申请实施例提供的一种对话中控服务器的结构示意图;
图9为本申请实施例提供的一种对话引擎的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户属性信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
首先对本申请所涉及的名词进行解释:
大型语言模型(Large Language Model,简称LLM):也称为大规模语言模型、大语言模型,是一种基于机器学习和自然语言处理技术的模型,它通过对大量的文本数据进行训练,来学习服务人类语言理解和生成的能力。LLM的核心思想是通过大规模的无监督训练来学习自然语言的模式和语言结构,这在一定程度上能够模拟人类的语言认知和生成过程。与传统的自然语言处理(Natural Language Processing,简称NLP)模型相比,LLM能够更好地理解和生成自然文本,同时还能够表现出一定的逻辑思维和推理能力。
人机对话系统:基于自然语言理解技术和对话管理技术实现的人机对话系统,在智能客服、智能外呼、在线教育、办公软件、电子商务等场景有广泛应用。
对话中控服务器:也称为对话中控。对话系统需要支持的对话引擎有多个,包括但不限于实现任务型对话、常见问题解答(Frequently-Asked Questions,简称FAQ)、图谱问答、表格问答、文档问答、闲聊等对话任务的引擎,这些对话引擎分别支持不同的使用场景。任务型对话引擎主要针对查天气、订酒店、流量充值等可以抽象成意图、槽位的多轮任务型问答场景;FAQ引擎用来支持基于问答对的对话场景;图谱问答引擎用来支持基于知识图谱数据的对话场景;表格问答引擎用来支持基于表格数据的对话场景;文档问答引擎用来支持基于文档阅读理解的对话场景;闲聊用来支持基于寒暄、闲聊等业务相关性不强的开放域的对话场景。在人机对话过程中,往往需要多对话引擎的配合。对话中控在多对话引擎对话系统中实现各对话引擎调度及排序的能力,是多对话引擎对话系统的核心模块,在提升对话能力方面承担着非常关键的作用。
缓存:是指可以进行高速数据交换的存储器,通俗点来说,就是通过将数据提前存放到内存,以提高访问速度。
多模态任务:是指输入输出数据涉及图像和文本等多种模态数据的下游任务,例如视觉问答任务、图像描述任务、视觉蕴涵任务、指代表达与理解任务、图像生成任务等。
多模态预训练模型:是指输入输出数据涉及图像和文本等多种模态数据的预训练模型,经过微调训练后可以应用于多模态任务处理。
大模型是指具有大规模模型参数的深度学习模型,通常包含上亿、上百亿、甚至上千亿的模型参数。大模型又可以称为基石模型/基础模型(Foundation Model,简称FM),通过大规模无标注的语料进行大模型的预训练,产出亿级以上参数的预训练模型,这种模型能适应广泛的下游任务,模型具有较好的泛化能力,例如大型语言模型(LLM)、多模态预训练模型(Multi-modal Pre-training Model)等。
大模型在实际应用时,仅需少量样本对预训练模型进行微调即可应用于不同的任务中,大模型可以广泛应用于自然语言处理、计算机视觉等领域,具体可以应用于如视觉问答(Visual Question Answering,简称VQA)、图像描述(Image Caption,简称IC)、图像生成等计算机视觉领域任务,以及基于文本的情感分类、文本摘要生成、机器翻译等自然语言处理领域任务,大模型主要的应用场景包括数字助理、智能机器人、搜索、在线教育、办公软件、电子商务、智能设计等。
随着大模型技术的迅猛发展,越来越多的领域开始应用大模型技术,大型语言模型(Large Language Model,简称LLM)等大模型也被应用于智能对话机器人等人机对话场景。将大模型应用于人机对话系统时,人机对话系统在与用户的每轮对话中,需调用大模型来生成答复信息。
但是,申请人发现在将大模型技术应用在人机对话系统的过程中遇到了如下技术问题:一是图形处理器(Graphics Processing Unit,简称GPU)资源成本高,由于大模型具有大规模的参数量,其训练和推理过程需要依赖大量的GPU资源。二是响应速度慢,在许多实时应用(如对话系统、智能助手等)中,对应用的响应时间要求非常高,通常在毫秒级别。由于大模型具有大规模的参数量,其推理过程耗时较长(通常在秒级),响应速度较慢,导致无法实时返回答复信息。
本申请提供一种人机对话方法,在进行人机对话时,对话中控服务器基于用户输入的第一查询信息(query),在各对话引擎缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到各对话引擎对第一查询信息的缓存查找结果;根据各对话引擎对第一查询信息的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制目标引擎根据对第一查询信息的缓存查找结果,生成答复信息,通过在各对话引擎缓存历史查询信息的模型处理结果数据,在后续人机对话过程中遇到相同或类似查询时,无需调用对话模型,基于当前查询信息(即第一查询信息)命中的模型处理结果的缓存数据,生成答复信息,可以减少对话模型的调用,降低人机对话的GPU资源成本,提升人机对话的响应速度,进而提升人机对话系统的并发处理能力,提升人机对话系统的总体响应速度。
图1为本申请所适用的一示例系统架构的示意图。如图1所示,该系统架构包括提供人机对话服务的人机对话系统和用户使用的端侧设备。
其中,用户端设备可以是能够获取用户输入的各种终端设备,其中用户输入可以是文本,也可以是语音等形式。用户端设备可以是有屏设备,也可以是具备语音交互功能的设备。包括但不限于:智能移动终端、智能家居设备、可穿戴式设备、个人计算机(PersonalComputer,简称PC)等。其中,智能移动设备可以包括诸如手机、平板电脑、笔记本电脑、互联网汽车等。智能家居设备可以包括智能家电设备,诸如智能电视、智能空调、智能冰箱等等。可穿戴式设备可以包括诸如智能手表、智能眼镜、智能手环、虚拟现实(Virtual Reality,简称VR)设备、增强现实(Augmented Reality,简称AR)设备、混合现实设备(即可以支持虚拟现实和增强现实的设备)等等。用户可以通过用户端设备获取用户输入的查询信息,将用户输入的查询信息(Query)发送给对话中控服务器。
人机对话系统包括:对话中控服务器和至少一个对话引擎。这些对话引擎分别支持不同的使用场景,包括但不限于实现任务型对话、常见问题解答FAQ、图谱问答、表格问答、文档问答、闲聊等各类对话任务的引擎。对话引擎上运行有实现对应对话能力的对话模型,该对话模型可以使用大型语言模型等大模型、也可以使用其他非大规模的模型实现,此处不做具体限定。例如,任务型对话引擎运行任务型多轮对话模型,主要针对查天气、订酒店、流量充值等可以抽象成意图、槽位的多轮任务型问答场景。FAQ引擎运行知识问答模型,用来实现基于问答对的对话场景。图谱问答引擎运行知识图谱问答模型,用来实现基于知识图谱数据的对话场景。表格问答引擎运行表格问答模型,用来实现基于表格数据的对话场景。文档问答引擎运行知识问答模型,用来实现基于文档阅读理解的对话场景。还可以有闲聊等其他对话引擎,用来支持基于寒暄、闲聊等业务相关性不强的开放域的对话场景。对话系统支持哪些对话引擎可以根据实际应该用场景的需要进行配置和调整,此处不做具体限定。
在人机对话过程中,往往需要多对话引擎的配合。对话中控服务器在多对话引擎对话系统中实现各对话引擎调度及排序的能力,是多对话引擎对话系统的核心模块,在提升对话能力方面承担着非常关键的作用。对话中控服务器负载获取用户输入的查询信息,对多个对话引擎进行调度和排序,选择一个对话引擎作为本轮对话使用的目标引擎,控制目标引擎生成答复信息。然后,对话中控服务器将答复信息返回给用户端侧设备。
上述对话中控服务器、对话引擎等可以设置于单一服务器,也可以设置于多个服务器构成的服务器群组,还可以是云服务器。
应该理解,图1中的用户使用的端侧设备、对话中控服务器和对话引擎的数目仅仅是示意性的。根据实现需要,人机对话系统可以具有任意数目的端侧设备、对话中控服务器和对话引擎。
基于图1的系统架构,在进行人机对话时,端侧设备将用户输入的第一查询信息发送至对话中控服务器。对话中控服务器基于用户输入的第一查询信息,对至少一个对话引擎进行调度,在至少一个对话引擎缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到各对话引擎对第一查询信息的缓存查找结果。进一步地,对话中控服务器根据各对话引擎对第一查询信息的缓存查找结果,选择其中一个对话引擎作为目标引擎,并控制目标引擎根据对第一查询信息的缓存查找结果,生成答复信息。进一步地,对话中控服务器将答复信息返回给端侧设备。
在对话引擎使用LLM等大模型的场景下,对话系统中对话中控服务器对多个对话引擎的调度方案采用两阶段调度方案,一阶段为分流阶段,二阶段为执行阶段。在分流阶段,对话中控服务器并行调用多个对话引擎的分流接口,使得对话引擎运行分流接口的实现程序,针对当前的查询信息进行分流阶段的处理,得到分流结果。进一步地,对话中控服务器根据预设分流排序策略对各个对话引擎的分流结果进行排序,得到分流排序结果。其中,分流接口是对话引擎向对话中控服务器提供的自然语言理解(Natural LanguageUnderstanding,简称NLU)接口,用于实现对查询信息的分流处理,获得分流结果。
在执行阶段,对话中控服务器根据分流排序结果,选择一个对话引擎作为目标引擎,调用目标引擎的执行接口,使得目标引擎运行执行接口的实现程序,基于对当前查询信息的分流结果,生成答复信息。另外,对话中控服务器还可以通知各个对话引擎本轮对话的执行结果,该执行结果可以包含本轮对话的查询信息、分流选择的目标引擎、生成的答复信息等。
示例性地,图2为本实施例提供的一种对话系统的二阶段调度方案的示例框架图。如图2所示,在对话系统的二阶段调度方案中,对话中控服务器基于用户本轮输入的查询信息(query)和上下文信息(context)进行各个对话引擎的并行分流。具体地,对话中控服务器并行调用各个对话引擎的分流接口,并将查询信息(query)和上下文信息(context)作为分流接口的输入参数传输至各对话引擎。各对话引擎基于查询信息(query)和上下文信息(context)进行分流阶段的处理,得到分流结果,并将分流结果返回至对话中控服务器。对话中控服务器基于给定的排序策略,对各个对话引擎的分流结果排序,分解分流结果排序的结果,选择一个对话引擎作为目标引擎。进一步地,对话中控服务器调度目标引擎进行执行阶段的处理,基于分流阶段的中间结果生成答复信息。具体地,对话中控服务器可以调用目标引擎的执行接口,并将分流阶段的中间结果作为输入参数传输至目标引擎,以使目标引擎运行该执行接口的实现程序,以基于分流阶段的中间结果生成答复信息,并将答复信息返回至对话中控服务器。进一步地,对话中控服务器根据本轮对话的查询信息和答复信息,更新对话中控存储的上下文信息。对话中控服务器还可以将本轮对话的执行结果(包括但不限于查询信息、答复信息)传输至出目标引擎之外的各个对话引擎,以使各个对话引擎更新引擎内部存储的上下文信息。
其中,对话中控服务器和各个对话引擎分别存储和维护了一份上下文信息,将对话中控服务器存储的上下文信息称为全局上下文信息,将各对话引擎存储的上下文信息称为单引擎的上下文信息(或局部上下文信息)。
需要说明的是,基于实际应用场景的需要,可以配置对话系统支持多个不同的对话引擎,对于不同的应用场景对话系统支持的多个对话引擎的数量和种类可以不同。图2中以对话系统支持任务型多轮对话引擎、表格问答引擎、知识问答引擎(可同时支持FAQ和文档问答)、开放域对话引擎(支持闲聊)这些对话引擎为例,来示例性地说明对话系统中多引擎的二阶段调度方案的流程框架,对于对话系统可支持的对话引擎的数量和种类不做限定。其中,开放域对话的目的不是设法完成任务,而是在没有任务和域限制的情况下与用户进行聊天,通常是数据驱动的。
另外,不同对话引擎在分流阶段所做的处理可能不同,在执行阶段所做的处理也可以能不同。在智能客服领域,对话机器人多数基于已有的静态知识数据进行问答,可以使用知识问答引擎,如文档问答引擎、基于问答对的FAQ引擎等。分流结果为基于查询信息召回的候选集。对于文档问答引擎,候选集包含至少一个文档,分流结果对应的知识类型为文档(记为Doc型)。对于FAQ引擎,候选集包含至少一个问答对,分流结果对应的知识类型为问答对(记为FAQ型)。在分流阶段,基于查询信息和上下文信息获取候选集(如候选文档、候选问答对等)。在执行阶段,使用知识问答模型(如文档问答LLM、FAQ问答LLM),根据查询信息、上下文信息和候选集,生成答复信息。
对于任务型多轮对话场景,如针对流程类知识的问答场景,可以使用任务型多轮对话引擎。在分流阶段,使用任务型多轮对话模型(如LLM),基于查询信息和上下文信息进行自然语言理解(Natural Language Understanding,简称NLU),得到本轮对话的意图和/或实体信息。分流结果对应的知识类型可以分为命中预设意图后直出结果的知识类型(记为Ds非其他,或Ds非Anything Else)、以及未命中意图命中了“其他”后结果的知识类型(记为Ds其他或Ds Anything Else)。在执行阶段,根据查询信息、上下文信息、意图和/或实体信息生成答复信息。
对于针对表格数据的表格问答场景,可以使用对于表格问答引擎。在分流阶段,使用表格问答模型(如LLM),基于查询信息和上下文信息,将查询信息转换为结构化查询语句(Structured Query Language,简称SQL)。分流结果为SQL,分流结果对应的知识类型记为表格查询(Table)。在执行阶段,使用分流阶段生成的SQL查询表格数据,得到SQL的查询结果,根据查询信息、上下文信息和SQL的查询结果生成答复信息。在一些可选实施例中,在执行阶段,表格问答引擎也可以使用大模型(如LLM),根据查询信息、上下文信息和SQL查询结果生成答复信息。
对于闲聊类的开放域对话场景,可以使用开放域对话引擎。开放域对话引擎可以不参与并行分流,基于并行分流的各对话引擎的分流结果,在其他各对话引擎均未命中的情况下,将开放域对话引擎作为目标引擎。在执行阶段,基于查询信息和上下文信息进行开放域搜索,得到开放域搜索结果;使用开放域对话模型(如LLM)根据查询信息、上下文信息和开放域搜索结果,生成答复信息。
基于各个对话引擎的分流结果对应的知识类型的优先级、结果置信度等,对各个对话引擎的分流结果进行排序,根据分流结果的排序结果选择一个对话引擎作为选择一个对话引擎作为目标引擎。
示例性地,各个知识类型的优先级可以配置为:FAQ>Ds非Anything Else>Table>Doc>Ds Anything Else>开放域搜索。另外分流阶段中各个对话引擎返回的分流结果对应知识类型的优先级,可以根据实际应用场景的需要进行配置和调整,此处不做具体限定。可选地,预设分流排序策略中,可以根据各个对话引擎返回的分流结果对应知识类型的优先级对分流结果进行排序,对应知识类型的优先级高的排序靠前,对应知识类型的优先级低的排序靠后。
另外,分流结果的结果置信度是对话引擎给出的对于本次分流结果的置信度,体现分流结果的可靠程度。对话中控服务器还可以综合各个对话引擎的分流结果对应的知识类型的优先级、结果置信度,设置预设分流排序策略,具体可以根据实际应用对话系统进行配置和调整,此处不做具体限定。
基于多对话引擎的两阶段调度方案,在一些实施例中,基于多对话引擎的两阶段调度方案,对话中控服务器负责各个对话引擎的并行分流和执行。各个对话引擎各自缓存模型处理结果数据,负责缓存的召回和写入。考虑到有些对话引擎在分流阶段就会调用对话模型,例如任务型多轮对话引擎、表格问答引擎等。若对话中控服务器无条件对各个对话引擎进行并行分流,也即并行地调用各个对话引擎的分流阶段,不管最终命中了哪个目标引擎的缓存,此次并行分流阶段不可避免地存在对话模型的无效调用,影响对话效率。例如,任务型多轮对话引擎、表格问答引擎均在分流阶段调用大模型,若后续命中了任务型多轮对话引擎的缓存,那么分流阶段表格问答引擎对大模型的调用为无效调用,应该避免掉。
为了更大程度地减少对话模型的调用,在一些实施例中,在分流阶段之前增加缓存阶段,对话中控服务器缓存各对话引擎对查询信息的分流结果,对于分流阶段调用对话模型的对话引擎,分流结果中包含模型处理结果数据。在缓存阶段,基于当前的第一查询信息查找(即召回)缓存。基于缓存查找结果,若命中了某一对话引擎的缓存,也即命中了某一对话引擎缓存的分流结果,直接基于命中的分流结果,调度对应的对话引擎进行分流后的执行阶段。
这种方案中,若命中的缓存是由召回能力强的对话引擎(如表格问答引擎、文档问答引擎)返回的分流结果,当优先级更高的对话引擎(如FAQ引擎、任务型多轮对话引擎)配置了相关的知识信息,容易产生引擎间的误拦问题。例如,一次会话(记为session1)中用户输入:“A保险”,经分流选择文档问答引擎,生成答复:“A保险是一家不错的保险公司”。另一次会话(记为session2)中,第一轮对话用户输入:“办保险”,系统输出:“你想办什么保险”;第二轮对话用户输入:“A保险”。第二轮对话中用户输入与session1中用户输入完全一致,会命中文档问答引擎中session1的缓存,并基于命中的缓存输出session1中的答复:“A保险是一家不错的保险公司”。这显然与用户办理保险的意图不匹配。基于用户实际意图,对话系统应该命中任务型多轮对话模型来生成答复,出现预期应该命中任务型多轮对话模型的缓存,实际命中文档问答引擎的缓存的情况。
本申请实施例中,基于多对话引擎的两阶段调度方案,各个对话引擎缓存对话模型的模型处理结果数据,在分流阶段之前增加缓存阶段,在缓存阶段对话中控服务器基于用户输入的第一查询信息,在至少一个对话引擎缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到各对话引擎对第一查询信息的缓存查找结果,根据各对话引擎对第一查询信息的缓存查找结果进行多对话引擎的两阶段调度,选择其中一个对话引擎作为目标引擎,控制目标引擎根据对第一查询信息的缓存查找结果,生成答复信息,以减少非必要的对话模型调用,提升人机对话的响应速度,进而提升人机对话系统的并发处理能力,提升人机对话系统的总体响应速度。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图3为本申请一示例性实施例提供的人机对话方法的流程图。本实施例的执行主体为前述系统架构中的对话中控服务器。如图3所示,该方法具体步骤如下:
步骤S301、基于用户输入的第一查询信息,在至少一个对话引擎缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到各对话引擎对第一查询信息的缓存查找结果。
其中,第一查询信息是指用户当前输入的查询信息(query)。用户输入可以是文本,也可以是语音等形式。第一查询信息是指用户输入的文本内容。对于用户输入的文本,可以直接作为第一查询信息、或经改写后作为第一查询信息。对于用户输入的语音,可以将用户输入语音转换为文本,作为第一查询信息。
在传统对话中控的调度方案中,无论选择使用哪个对话引擎,都需要对话引擎调用对应的对话模型(如LLM)进行推理,来生成答复信息。而对于对话模型尤其在对话模型使用大模型(如LLM)的场景中,对话模型的推理耗时长(通常为秒级),且依赖大量的GPU资源,导致人机对话的响应速度慢。
本实施例中,各个对话引擎缓存查询信息的模型处理结果数据。在人机对话过程中,对话中控服务器基于用户输入的第一查询信息,在调度对话引擎运行对话模型之前,先在至少一个对话引擎缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到各对话引擎对第一查询信息的缓存查找结果。
其中,根据各对话引擎自身的知识数据特点,为不同的对话引擎配置不同的缓存策略。例如,任务型多轮对话引擎缓存的键(key)可以包括查询信息和上一轮答复信息,值(value)可以包括任务型多轮对话模型对查询信息的处理结果,例如意图识别结果、实体识别结果等。通过在缓存键(key)中增加上一轮答复信息,通过加入必要的上下文信息来提高缓存的准确率。例如,表格问答引擎缓存的键(key)可以包括查询信息和上一轮的SQL,值(value)包括表格问答模型对查询信息的处理结果,例如本轮查询信息转换成的SQL。例如,文档问答引擎缓存的键(key)可以包括查询信息和候选集,值(value)为查询信息的答复信息。
第一查询信息的缓存查找结果包括缓存命中状态、命中的模型处理结果的知识类型。可选地,第一查询信息的缓存查找结果还可以包括命中的模型处理结果、置信度等,此处对于缓存查找结果包含的信息不做具体限定。
可选地,对话中控服务器可以在全部对话引擎的模型处理结果数据中,查找与第一查询信息匹配的缓存数据;或者,对话中控服务器根据各个对话引擎的优先级、使用对话模型的推理耗时、使用GPU资源量等因素,选择部分对话引擎进行缓存查找,在选出的至少一个对话引擎缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据。
步骤S302、根据各对话引擎对第一查询信息的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制目标引擎根据对第一查询信息的缓存查找结果,生成答复信息。
对话中控服务器基于预设排序策略,对各对话引擎对第一查询信息的缓存查找结果进行排序,基于排序结果选择缓存查找结果排序靠前的一个对话引擎作为目标引擎,并控制目标引擎基于对第一查询信息的缓存查找结果,在命中缓存的情况下,使用命中的模型处理结果生成答复信息。在未命中缓存的情况下,通过调用对应的对话模型来获得第一查询信息的模型处理结果,再基于第一查询信息的模型处理结果生成答复信息。
本实施例的方法,通过增加缓存机制,各个对话引擎缓存查询信息的模型处理结果数据。在进行人机对话过程中,对话中控服务器基于用户输入的第一查询信息,在各对话引擎缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到各对话引擎对第一查询信息的缓存查找结果;根据各对话引擎对第一查询信息的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制目标引擎根据对第一查询信息的缓存查找结果,生成答复信息,通过在各对话引擎缓存历史查询信息的模型处理结果数据,在后续人机对话过程中遇到相同或类似查询时,无需调用对话模型,基于当前查询信息(即第一查询信息)命中的模型处理结果的缓存数据,生成答复信息,可以减少对话模型的调用,降低人机对话的GPU资源成本,提升人机对话的响应速度,进而提升人机对话系统的并发处理能力,提升人机对话系统的总体响应速度。
在一可选实施例中,前述步骤S301可以采用如下方式实现:对话中控服务器将用户输入的第一查询信息发送至各对话引擎,控制各对话引擎在缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到第一查询信息的缓存查找结果。对话中控服务器接收各对话引擎返回的第一查询信息的缓存查找结果。
具体地,各个对话引擎向对话中控服务器提供缓存查找状态接口,对话中控服务器可以通过调用任一对话引擎的缓存查找状态接口,并将第一查询信息作为该接口的输入参数传输至该对话引擎,来控制该对话引擎在缓存的模型处理结果数据中查找与第一查询信息匹配的缓存数据,得到该对话引擎对第一查询信息的缓存查找结果,并向对话中控服务器返回该对话引擎对第一查询信息的缓存查找结果。对话中控服务器接收各对话引擎返回的对第一查询信息的缓存查找结果。
可选地,对话中控服务器调用任一对话引擎的缓存查找状态接口时,将第一查询信息及第一查询信息的分词结果,作为该接口的输入参数传输至该对话引擎。对话引擎根据第一查询信息及第一查询信息的分词结果,在缓存的模型处理结果数据中查找与第一查询信息匹配的缓存数据,得到该对话引擎对第一查询信息的缓存查找结果。
在另一可选实施例中,对话中控服务器可以缓存接收到的查询信息。前述步骤S301还可以采用如下方式实现:对话中控服务器在缓存的历史查询信息中查找用户输入的第一查询信息的相似查询信息。对话中控服务器将第一查询信息及相似查询信息发送至各对话引擎,控制各对话引擎在缓存的模型处理结果数据中,查找与第一查询信息或相似查询信息匹配的缓存数据,得到第一查询信息的缓存查找结果,以提升各对话引擎的缓存命中率。对话中控服务器接收各对话引擎返回的第一查询信息的缓存查找结果。
具体地,各个对话引擎向对话中控服务器提供缓存查找状态接口。对话中控服务器通过调用任一对话引擎的缓存查找状态接口,并将第一查询信息及相似查询信息作为该接口的输入参数传输至该对话引擎,以控制该对话引擎运行该缓存查找状态接口的实现程序,实现在缓存的模型处理结果数据中,查找与第一查询信息或相似查询信息匹配的缓存数据,得到第一查询信息的缓存查找结果,并向对话中控服务器返回该对话引擎对第一查询信息的缓存查找结果。对话中控服务器接收各对话引擎返回的对第一查询信息的缓存查找结果。其中,对话引擎返回的缓存查找结果中可以包含对话引擎的标识信息,对话中控服务器基于对话引擎的标识信息来区分不同对话引擎返回的缓存查找结果。
可选地,对话中控服务器调用任一对话引擎的缓存查找状态接口时,将第一查询信息及第一查询信息的分词结果,和相似查询信息及相似查询信息的分词结果,作为该接口的输入参数传输至该对话引擎。对话引擎根据第一查询信息及第一查询信息的分词结果,和相似查询信息及相似查询信息的分词结果,在缓存的模型处理结果数据中,查找与第一查询信息或相似查询信息匹配的缓存数据,得到第一查询信息的缓存查找结果。
可选地,对话中控服务器在缓存的历史查询信息中查找用户输入的第一查询信息的相似查询信息时,可以采用ES(Elastic Search,弹性搜索)算法、或者其他任意一种基于查询信息相似度的搜索算法或检索算法,从缓存的历史查询信息中召回第一查询信息的相似查询信息,本实施例此处不做具体限定。
可选地,对话中控服务器在缓存的历史查询信息中查找用户输入的第一查询信息的相似查询信息时,先采用ES(Elastic Search,弹性搜索)算法从缓存的历史查询信息中召回第一查询信息的第一相似查询信息;然后,计算第一查询信息与ES召回的第一相似查询信息间的相似度,基于相似度对第一相似查询信息进行排序,将与第一查询信息相似度较高的预设数量(如TOP N)的第一相似查询信息,作为对话中控服务器确定的第一查询信息的相似查询信息。其中,N为预设数量,N是正整数,具体可以根据实际应用场景进行配置,例如N可以取值为1、3、5等,此处不做具体限定。
另外,对话中控服务器还可以将与第一查询信息的相似度大于或等于相似度阈值的第二相似查询信息,确定为第一查询信息的相似查询信息。其中,相似度阈值可以根据实际应用场景的需要进行配置和调整,此处不做具体限定。
本实施例的方法,通过对话中控服务器从缓存的历史查询信息中搜索当前的第一查询信息的多个相似查询信息,基于第一查询信息及其相似查询信息,并行查找各对话引擎缓存的模型处理结果数据,可以尽可能提升各对话引擎的模型处理结果数据缓存的利用率,从而尽可能减少对话模型的调用,提升人机对话的响应速度。
在一可选实施例中,如图4所示,为了更大程度地减少对话模型的调用,基于多对话引擎的两阶段调度策略,前述步骤S302根据各对话引擎对第一查询信息的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制目标引擎根据对第一查询信息的缓存查找结果,生成答复信息,具体可以采用如下步骤实现:
步骤S401、根据预设排序策略,对各对话引擎对第一查询信息的缓存查找结果进行排序,根据排序结果确定优选引擎。
本实施例中,对于各对话引擎对第一查询信息的缓存查找结果,按照预设排序策略进行排序,根据排序结果选择排序靠前(如排在第一位)的一个对话引擎作为本次命中缓存的优选引擎。
其中,预设排序策略基于各对话引擎缓存的模型处理结果的知识类型、各知识类型的优先级、不同对话引擎的召回能力之间导致误拦的可能性等因素配置。基于预设排序策略合理地对各对话引擎返回的缓存查找结果进行排序,以选择本次命中缓存的对话引擎,可以在减少对话模型调用的同时保证命中缓存的准确率。
示例性地,对于任务型多轮对话场景,如针对流程类知识的问答场景,可以使用任务型多轮对话引擎。任务型多轮对话引擎的缓存中,键(key)可以包括查询信息和上一轮答复信息,值(value)可以包括任务型多轮对话模型对查询信息的处理结果,例如意图识别结果、实体识别结果等。缓存的模型处理结果的知识类型可以分为命中预设意图后直出结果的知识类型(记为Ds非其他、或Ds非Anything Else型)、以及未命中意图而命中了“其他”后结果的知识类型(记为Ds其他、或Ds Anything Else型)。
对于针对表格数据的表格问答场景,可以使用对于表格问答引擎。表格问答引擎的缓存中,键(key)可以包括查询信息和上一轮的SQL,值(value)包括表格问答模型对查询信息的处理结果,例如本轮查询信息转换成的SQL。缓存的模型处理结果的知识类型记为表格查询(Table型)。
在智能客服领域,对话机器人多数基于已有的静态知识数据进行问答,如文档问答、基于问答对的FAQ等,可以使用知识问答引擎。知识问答引擎的缓存中,键(key)可以包括查询信息和候选集,值(value)为查询信息的答复信息。根据候选集中知识类型不同,知识问答引擎缓存的模型处理结果的知识类型可以分为文档(记为Doc型)和问答对(记为FAQ型)。
示例性地,前述各个知识类型的优先级可以配置为:FAQ>Ds非Anything Else>Table>Doc>。预设排序策略可以根据各对话引擎缓存的模型处理结果的知识类型的优先级进行排序。
另外,各个对话引擎返回的缓存查找结果还可以包含置信度,表示缓存查找结果中命中缓存的可靠程度。对话中控服务器还可以综合各个对话引擎返回的缓存查找结果对应的知识类型的优先级、置信度,设置各对话引擎的缓存查找结果的预设排序策略,具体可以根据实际应用对话系统进行配置和调整,此处不做具体限定。
在一可选实施例中,在基于各对话引擎返回的对第一查询信息的缓存查找结果进行排序,选择确定优选引擎之后,若优选引擎对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存,则对话中控服务器将优选引擎作为目标引擎,串行调用目标引擎的分流接口和执行接口,使得目标引擎基于第一查询信息的缓存查找结果,串行进行分流阶段和执行阶段的处理,生成第一查询信息的答复信息。
考虑到若命中的优选引擎是召回能力强的对话引擎,如表格问答引擎(命中缓存的知识类型为Table型)、文档问答引擎(命中缓存的知识类型为Doc型),当优先级更高的对话引擎(如FAQ引擎、任务型多轮对话引擎)配置了相关的知识信息,容易产生对话引擎间的误拦问题。
本实施例中,配置第一引擎集合和第二引擎集合,其中第一引擎集合包含预设配置的优先级较高的对话引擎,如包括FAQ引擎、任务型多轮对话引擎等。第二引擎集合包含预设配置的召回能力较强的对话引擎,如表格问答引擎、文档问答引擎等。对于第二引擎集合中任一召回能力较强的对话引擎,配置该对话引擎对用的可能误拦的对话引擎。例如,对于召回能力较强的文档问答模型,其可能误拦的对话引擎是任务型多轮对话引擎。第一引擎集合和第二引擎集合可以根据实际应用场景和经验进行配置,此处不做具体限定。
在基于各对话引擎返回的对第一查询信息的缓存查找结果进行排序,选择确定优选引擎之后,若优选引擎命中缓存并且是优先级较高的对话引擎,通过步骤S402-S403,直接将优选引擎作为目标引擎,串行调用目标引擎的分流阶段和执行阶段,通过目标引擎基于缓存查找结果生成答复信息。
若优选引擎命中缓存并且是召回能力较强的对话引擎,通过步骤S404-S407,将优选引擎及优选引擎可能误拦的对话引擎一起加入并行分流的候选引擎列表,对候选引擎列表中的候选引擎进行并行分流,基于分流结果选择目标引擎,调用目标引擎的执行阶段,来生成答复信息,可以解决召回能力强的对话引擎的误拦问题。
若优选引擎未命中缓存,通过步骤S408-S411,将各个对话引擎一起加入并行分流的候选引擎列表,对候选引擎列表中的候选引擎进行并行分流,基于分流结果选择目标引擎,调用目标引擎的执行阶段,来生成答复信息。
步骤S402、若优选引擎对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存,且优选引擎属于第一引擎集合,则将优选引擎作为目标引擎。
本实施例中,若优选引擎对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存,且优选引擎属于第一引擎集合,也即是本次命中缓存的优选引擎是优先级较高的对话引擎,对话中控服务器直接将命中缓存的优选引擎作为目标引擎。
步骤S403、控制目标引擎基于第一查询信息的缓存查找结果,进行分流阶段和执行阶段的处理,生成第一查询信息的答复信息。
该步骤中,对话中控服务器串行调用目标引擎的分流接口和执行接口,使得目标引擎基于第一查询信息的缓存查找结果,串行执行分流阶段和执行阶段的处理,来生成第一查询信息的答复信息,并向对话中控服务器返回第一查询信息的答复信息。
在实际应用中,不同对话引擎调用对话模型的阶段不同,有的在分流阶段调用模型,有的引擎在执行阶段调用模型,有的引擎在两个阶段调用不同的模型。例如,任务型多轮对话引擎在分流阶段调用对话模型,生成包含意图识别或实体识别结果的分流结果;在执行阶段不调用模型,根据分流结果生成答复信息。表格问答引擎在分流阶段调用表格问答模型,将查询信息转换为SQL,作为分流结果;在执行阶段调用另一大模型,根据SQL查询结果数据、查询信息及上下文信息生成答复信息。FAQ引擎在分流阶段不调用模型,仅召回查询信息的候选集,在执行阶段调用模型,基于查询信息、候选集和上下文信息生成答复信息。基于此,不同的对话引擎缓存的模型处理结果数据不同,缓存数据对应的阶段也不相同。
对话中控服务器串行调用目标引擎的分流接口和执行接口。目标引擎基于第一查询信息的缓存查找结果,串行执行分流阶段和执行阶段的处理,在任一阶段的处理过程中,在需要调用模型时,若第一查询信息命中的缓存数据包含模型处理结果,则不再调用模型,直接从第一查询信息命中的缓存数据中获取模型处理结果;仅在缓存数据中不存在模型处理结果的情况下,才调用模型,通过模型推理来生成模型处理结果。
该步骤中,由于目标引擎对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存,目标引擎在针对第一查询信息进行分流阶段和执行阶段的处理过程中,无需调用模型,直接从第一查询信息命中的缓存数据中获取模型处理结果,并基于模型处理结果确定答复信息,可以减少模型调用,提升人机对话的响应速度。
步骤S404、若优选引擎对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存,且优选引擎属于第二引擎集合,则将优选引擎和会被优选引擎误拦的对话引擎,作为候选引擎。
本实施例中,若优选引擎对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存,且优选引擎属于第二引擎集合,也即是优选引擎命中缓存并且是召回能力较强的对话引擎,则对话中控服务器将优选引擎及优选引擎可能误拦的对话引擎一起作为候选引擎,加入并行分流的候选引擎列表,对候选引擎列表中的候选引擎进行并行分流,基于分流结果选择目标引擎,调用目标引擎的执行阶段,来生成答复信息,可以解决召回能力强的对话引擎的误拦问题。
步骤S405、控制各候选引擎基于对第一查询信息的缓存查找结果,进行分流阶段的处理,得到各候选引擎的分流结果。
该步骤中,基于前一步骤确定的候选引擎,对话中控服务器将第一查询信息作为分流接口的输入参数,并行调用各个候选引擎的分流接口。各候选引擎分别对第一查询信息进行分流阶段的处理,获得分流结果,并将分流结果返回给对话中控服务器。
需要说明的是,不同候选引擎对第一查询信息的缓存查询结果中缓存命中状态可能不同,也即有的候选引擎中第一查询信息命中了缓存数据,有的候选引擎中第一查询信息未命中缓存数据。另外,不同候选引擎命中的缓存数据也不相同。
对于在分流阶段调用模型的候选引擎(如表格问答引擎、任务型多轮对话引擎),若候选引擎未命中缓存数据,在针对第一查询信息进行分流阶段的处理过程中,候选引擎正常调用模型,通过模型推理来生成模型处理结果。若候选引擎命中了缓存数据,在针对第一查询信息进行分流阶段的处理过程中,候选引擎无需调用模型,直接从第一查询信息命中的缓存数据中获取模型处理结果,并基于模型处理结果确定答复信息,可以减少模型调用,提升人机对话的响应速度。对于在分流阶段不需调用模型的候选引擎(如文档问答引擎、FAQ引擎),目标引擎可以不考虑缓存,正常进行分流阶段的处理,根据第一查询信息生成分流结果。
步骤S406、根据各候选引擎的分流结果,选择一个候选引擎作为目标引擎。
对话中控服务器根据预设分流排序策略,对各候选引擎返回的分流结果进行排序,根据分流结果的排序结果,选择排序靠前(如排在第一位)的一个候选引擎作为目标引擎。其中,预设分流排序策略可以根据各个对话引擎的分流结果对应的知识类型的优先级、结果置信度等进行配置和调整,此处不做具体限定。
可选地,预设分流排序策略中,可以根据各个对话引擎返回的分流结果对应知识类型的优先级对分流结果进行排序,对应知识类型的优先级高的排序靠前,对应知识类型的优先级低的排序靠后。示例性地,各个知识类型的优先级可以配置为:FAQ>Ds非AnythingElse>Table>Doc>Ds Anything Else>开放域搜索。另外分流阶段中各个对话引擎返回的分流结果对应知识类型的优先级,可以根据实际应用场景的需要进行配置和调整,此处不做具体限定。
可选地,分流结果的结果置信度是对话引擎给出的对于本次分流结果的置信度,体现分流结果的可靠程度。对话中控服务器还可以综合各个对话引擎的分流结果对应的知识类型的优先级、结果置信度,设置预设分流排序策略,具体可以根据实际应用对话系统进行配置和调整,此处不做具体限定。
步骤S407、控制目标引擎对第一查询信息的缓存查找结果,进行执行阶段的处理,生成第一查询信息的答复信息。
在确定目标引擎之后,对话中控服务器调用目标引擎的执行接口,并将第一查询信息、上下文信息、分流结果作为执行接口的输入参数传输至目标引擎。目标引擎根据第一查询信息、上下文信息、分流结果进行执行阶段的处理,获得第一查询信息的答复信息,并将第一查询信息的答复信息返回给对话中控服务器。
需要说明的是,不同候选引擎对第一查询信息的缓存查询结果中缓存命中状态可能不同,也即有的候选引擎中第一查询信息命中了缓存数据,有的候选引擎中第一查询信息未命中缓存数据。另外,不同候选引擎命中的缓存数据也不相同。因此,从候选引擎中选择的目标引擎对第一查询信息的缓存查询结果中缓存命中状态可能是命中缓存、或者未命中缓存。
对于目标引擎在执行阶段调用模型的情况(如文档问答引擎、FAQ引擎),若目标引擎未命中缓存数据,在针对第一查询信息进行执行阶段的处理过程中,目标引擎正常调用模型,通过模型推理来生成模型处理结果。若目标引擎命中了缓存数据,在针对第一查询信息进行执行阶段的处理过程中,目标引擎无需调用模型,直接从第一查询信息命中的缓存数据中获取模型处理结果,并基于模型处理结果确定答复信息,可以减少模型调用,提升人机对话的响应速度。
对于目标引擎在执行阶段不调用模型的情况(如表格问答引擎),目标引擎可以不考虑缓存,正常进行执行阶段的处理,根据第一查询信息、上下文信息、分流结果,生成第一查询信息的答复信息。
步骤S408、若优选引擎对第一查询信息的缓存查找结果中的缓存命中状态为未命中缓存,则将各对话引擎作为候选引擎。
本实施例中,若优选引擎对第一查询信息的缓存查找结果中的缓存命中状态为未命中缓存,则说明第一查询信息没有命中任何对话引擎的缓存,这种情况下对话中控服务器将各个对话引擎均作为候选引擎,添加到候选引擎列表,对候选引擎列表中的候选引擎进行并行分流,基于分流结果选择目标引擎,调用目标引擎的执行阶段,来生成答复信息。
步骤S409、控制各候选引擎基于对应的对话模型,进行分流阶段的处理,得到各候选引擎的分流结果。
该步骤中,对话中控服务器将第一查询信息作为分流接口的输入参数,并行调用各个候选引擎的分流接口。各候选引擎对第一查询信息进行分流阶段的处理,获得分流结果,并将分流结果返回给对话中控服务器。
需要说明的是,由于各个候选引擎中第一查询信息未命中缓存数据,各候选引擎基对话模型正常进行分流阶段的处理,在需要调用模型时,直接调用模型,不再查找缓存数据。
步骤S410、根据各候选引擎的分流结果,选择一个候选引擎作为目标引擎。
该步骤与前述步骤S406的实现方式类似,不同之处在于候选引擎的数量和种类可能不同,具体参见步骤S406的相关内容,此处不再赘述。
步骤S411、控制目标引擎基于对应的对话模型,进行执行阶段的处理,生成第一查询信息的答复信息。
在确定目标引擎之后,对话中控服务器调用目标引擎的执行接口,并将第一查询信息、上下文信息、分流结果作为执行接口的输入参数传输至目标引擎。目标引擎根据第一查询信息、上下文信息、分流结果进行执行阶段的处理,获得第一查询信息的答复信息,并将第一查询信息的答复信息返回给对话中控服务器。
需要说明的是,由于各个候选引擎中第一查询信息未命中缓存数据,各候选引擎基于对应的会话模型,正常进行执行阶段的处理,在需要调用模型时,直接调用模型,不再查找缓存数据。
在未命中任何对话引擎的缓存的情况下,对话中控服务器对多个对话引擎的两阶段调度方案,可以采用现有的任意一种多对话引擎的两阶段调度方案实现,此处不做具体限定。
进一步地,在未命中任何对话引擎的缓存的情况下,对话中控服务器将第一查询信息写入缓存中。示例性地,对话中控服务器可以通过消息队列(Message Queue,简称MQ)的方式将第一查询信息写入缓存。可选地,无论是否命中对话引擎的缓存,对话中控服务器都可以将第一查询信息写入缓存中,并对缓存中的查询信息进行去重处理。
在一可选实施例中,对话中控服务器在选择确定目标引擎之后,向各个对话引擎发送本轮对话的分流结果,以通知各个对话引擎用于生成本轮答复信息的目标引擎。
本实施例的方案,在对话中控服务器的多对话引擎的两阶段调度方案中,在分流阶段之前增加缓存阶段,各对话引擎根据自身知识数据特点来缓存模型处理结果。在缓存阶段,并行地查询各个对话引擎中第一查询信息的缓存查找结果,采用合理的缓存查找结果排序策略进行排序,并选择本轮命中的优选引擎;若优选引擎中命中缓存且优先级较高,基于缓存查找结果串行执行优选引擎的分流阶段和执行阶段,可以减少优先级低的对话引擎的模型调用。若优选引擎中命中缓存且召回能力较强,则将优选引擎及可能被优选引擎误拦的引擎一起作为候选引擎,对各个候选引擎进行两阶段调度来生成答复信息,在提高缓存命中率的基础上,尽量避免由于各个引擎召回能力不同导致的引擎之间的误拦问题,保证命中缓存的准确率。
下面从对话引擎这一侧,对人机对话过程中对话引擎的处理流程进行详细说明。图5为本申请一示例性实施例提供的人机对话方法流程图。本实施例的执行主体为前述系统架构中的任意对话引擎。如图5所示,该方法具体步骤如下:
步骤S501、接收对话中控服务器发送的第一查询信息。
其中,第一查询信息是指用户当前输入的查询信息(Query)。用户输入可以是文本,也可以是语音等形式。第一查询信息是指用户输入的文本内容。对于用户输入的文本,可以直接作为第一查询信息、或经改写后作为第一查询信息。对于用户输入的语音,可以将用户输入语音转换为文本,作为第一查询信息。
在传统对话中控的调度方案中,无论选择使用哪个对话引擎,都需要对话引擎调用对应的对话模型(如LLM)进行推理,来生成答复信息。而对于对话模型尤其在对话模型使用大模型(如LLM)的场景中,对话模型的推理耗时长(通常为秒级),且依赖大量的GPU资源,导致人机对话的响应速度慢。
本实施例中,各个对话引擎缓存查询信息的模型处理结果数据,并向对话中控服务器提供缓存查找状态接口。在人机对话过程中,对话中控服务器基于用户输入的第一查询信息,在调度对话引擎运行对话模型之前,将第一查询信息作为输入参数,并行调用各个对话引擎的缓存查找状态接口。对话引擎接收对话中控服务器发送的第一查询信息。
步骤S502、在缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到第一查询信息的缓存查找结果。
该步骤中,对话引擎执行缓存查找状态接口的实现程序,在缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到第一查询信息的缓存查找结果。
可选地,对话中控服务器调用任一对话引擎的缓存查找状态接口时,将第一查询信息及第一查询信息的分词结果,作为该接口的输入参数传输至该对话引擎。对话引擎根据第一查询信息及第一查询信息的分词结果,在缓存的模型处理结果数据中查找与第一查询信息匹配的缓存数据,得到该对话引擎对第一查询信息的缓存查找结果。
在一可选实施例中,对话中控服务器可以缓存接收到的查询信息。对话中控服务器根据用户输入的第一查询信息,在缓存的历史查询信息中查找第一查询信息的一个或者多个相似查询信息。在调用各对话引擎的缓存查找状态接口时,对话中控服务器将第一查询信息及相似查询信息一起作为输入参数,并行调用各个对话引擎的缓存查找状态接口。对话引擎接收对话中控服务器发送的第一查询信息及相似查询信息。对话引擎执行缓存查找状态接口的实现程序,在缓存的模型处理结果数据中,查找与第一查询信息或相似查询信息匹配的缓存数据,得到第一查询信息的缓存查找结果。
可选地,对话引擎根据相似查询信息与第一查询信息的相似度对相似查询信息进行排序,先根据第一查询信息查找缓存数据,若找到与第一查询信息匹配的缓存数据,则将与第一查询信息匹配的缓存数据,作为第一查询信息命中的缓存数据,得到第一查询信息的缓存查找结果。若未找到与第一查询信息匹配的缓存数据,根据相似查询信息的排序结果,依次查找与相似查询信息匹配的缓存数据,直至找到与相似查询信息匹配的缓存数据时,停止查找,将找到的与相似查询信息匹配的缓存数据,作为第一查询信息命中的缓存数据,得到第一查询信息的缓存查找结果;或者直至确定未找到任何与第一查询信息或相似查询信息匹配的缓存数据,确定第一查询信息未命中缓存数据,得到第一查询信息的缓存查找结果。
可选地,对话引擎可以分别查找与第一查询信息、相似查询信息命中的缓存数据及第一置信度,根据相似查询信息与第一查询信息的相似程度,对命中的缓存数据的第一置信度进行加权计算,得到命中的缓存数据的第二置信度,根据第二置信度选择其中一个置信度较高的缓存数据作为第一查询信息命中的缓存数据,得到第一查询信息的缓存查找结果。
步骤S503、向对话中控服务器返回第一查询信息的缓存查找结果。
步骤S504、基于对话中控服务器的控制信息,根据第一查询信息的缓存查找结果,生成答复信息。
其中,对话中控服务器的控制信息可以是对话中控服务器向对话引擎提供的接口的调用,向对话引擎发送的指令、请求等,对话中控服务器可以通过调用接口、发送指令/请求的方式实现对话引擎的调度和控制,本实施例此处对于对话中控服务器对于对话引擎的调度和控制的交互方式不做具体限定。
本实施例中,对话引擎缓存了模型结果处理数据。对话中控服务器根据各个对话引擎返回的第一查询信息的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制目标引擎根据对第一查询信息的缓存查找结果,生成答复信息。
该步骤中,作为目标引擎的对话引擎,基于对话中控服务器的控制信息,根据第一查询信息的缓存查找结果,生成答复信息。
具体地,基于对话中控服务器的控制信息,在对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存的情况下,对话引擎基于对第一查询信息的缓存查找结果,进行分流阶段和/或执行阶段的处理,以根据第一查询信息命中的模型处理结果数据,生成答复信息,以减少对模型的调用,提升人机对话的响应速度。
在对第一查询信息的缓存查找结果中的缓存命中状态为未命中缓存的情况下,基于对应的对话模型进行分流阶段和/或执行阶段的处理,以通过对应的对话模型对第一查询信息进行处理,并根据得到的模型处理结果生成答复信息。
示例性地,对于模型调用处于分流阶段的对话引擎,对话中控服务器在调用对话引擎的分流接口时,在对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存的情况下,对话引擎进行分流阶段的处理的过程中,不再调用模型,而是从缓存数据中获取对应的模型处理结果,并向对话中控服务器返回分流结果,可以减少模型调用,提升对话引擎在分流阶段的响应速度。在对第一查询信息的缓存查找结果中的缓存命中状态为未命中缓存的情况下,基于对应的对话模型进行分流阶段的处理,以通过对应的对话模型对第一查询信息进行处理,得到的模型处理结果,向对话中控服务器返回分流结果。对话中控服务器在调用对话引擎的执行接口时,由于执行阶段原本不需要调用模型,对话引擎正常进行执行阶段的处理,生成答复信息,并向对话中控服务器返回答复信息。
示例性地,对于模型调用处于执行阶段的对话引擎,对话中控服务器在调用对话引擎的分流接口时,由于分流阶段原本就不需要调用模型,对话引擎正常进行分流阶段的处理,得到分流结果,并向对话中控服务器返回分流结果。对话中控服务器在调用对话引擎的执行接口时,在对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存的情况下,对话引擎进行执行阶段的处理过程中,不再调用模型,而是从缓存数据中获取对应的模型处理结果,可以减少模型调用,提升对话引擎在执行阶段的响应速度。在对第一查询信息的缓存查找结果中的缓存命中状态为未命中缓存的情况下,基于对应的对话模型进行执行阶段的处理,以通过对应的对话模型对第一查询信息和分流结果进行处理,得到的模型处理结果(答复信息),并向对话中控服务器返回答复信息。
示例性地,对于模型调用同时处于分流阶段和执行阶段的对话引擎,对话中控服务器在调用对话引擎的分流接口时,在对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存的情况下,对话引擎进行分流阶段的处理的过程中,不再调用模型,而是从缓存数据中获取对应的模型处理结果,并向对话中控服务器返回分流结果,可以减少模型调用,提升对话引擎在分流阶段的响应速度。在对第一查询信息的缓存查找结果中的缓存命中状态为未命中缓存的情况下,基于对应的对话模型进行分流阶段的处理,以通过对应的对话模型对第一查询信息进行处理,得到的模型处理结果,向对话中控服务器返回分流结果。
对话中控服务器在调用对话引擎的执行接口时,在对第一查询信息的缓存查找结果中的缓存命中状态为命中缓存的情况下,对话引擎进行执行阶段的处理过程中,不再调用模型,而是从缓存数据中获取对应的模型处理结果,可以减少模型调用,提升对话引擎在执行阶段的响应速度。在对第一查询信息的缓存查找结果中的缓存命中状态为未命中缓存的情况下,基于对应的对话模型进行执行阶段的处理,以通过对应的对话模型对第一查询信息和分流结果进行处理,得到的模型处理结果(答复信息),并向对话中控服务器返回答复信息。其中,对于模型调用同时处于分流阶段和执行阶段的对话引擎,在两个阶段使用的对话模型可以是同一模型、也可以是两个不同的模型,此处不做具体限定。
进一步地,对话引擎在使用对话模型对第一查询信息进行处理之后,缓存第一查询信息的模型处理结果数据。
在实际应用中,可以根据各对话引擎自身的知识数据特点,为不同的对话引擎配置不同的缓存策略,使得各个对话引擎根据自身的知识数据特点,缓存不同的数据,以提升缓存命中率,在保证缓存准确率的前提下,尽可能减少模型的调用次数。
示例性地,对于用于表格问答的对话引擎(即表格问答引擎),其对应的对话模型为表格问答模型。表格问答引擎在分流阶段通过表格问答模型,将查询信息转换为结构化查询语句SQL,在执行阶段获取查询信息的SQL的查询结果,并根据查询结果、查询信息和上下文信息,生成答复信息。
表格问答引擎缓存的模型处理结果数据包括缓存键(key)和缓存值(value),其中缓存键包括查询信息和上一轮的SQL,缓存值为查询信息转换成的本轮的SQL。通过在缓存键中增加上一轮的SQL,可以提高命中缓存的准确率。
对话引擎在查找与第一查询信息匹配的缓存数据时,先获取第一查询信息的上一轮的SQL,基于第一查询信息及上一轮的SQL与缓存数据中的缓存键进行匹配,来确定第一查询信息及上一轮的SQL命中的缓存数据,作为与第一查询信息匹配的缓存数据。
可选地,基于第一查询信息及上一轮的SQL与缓存数据中的缓存键进行匹配时,可以进行一致性匹配,在第一查询信息及上一轮的SQL与缓存键中的查询信息和上一轮SQL一致时,确定第一查询信息及上一轮的SQL命中缓存数据,可以提升命中缓存的准确率。
另外,还可以基于第一查询信息及上一轮的SQL与缓存数据中的缓存键进行模糊匹配,在第一查询信息及上一轮的SQL与缓存数据中的缓存键的匹配度达到第一匹配度阈值时,确定第一查询信息及上一轮的SQL命中的缓存数据。其中,第一匹配度阈值可以根据实际应用场景的需要进行配置和调整,此处不做具体限定。另外,还可以采用其他缓存数命中方式来查找第一查询信息及上一轮的SQL命中的缓存数据,此处不做具体限定。
其中,第一查询信息的上一轮的SQL可以由对话引擎记录的上下文信息中获取,也可以由对话中控服务器向对话引擎提供,本实施例此处不做具体限定。
示例性地,对话引擎对应的对话模型为知识问答模型,例如文档问答模型、FAQ模型。对话引擎在分流阶段获取查询信息的知识候选集,在执行阶段通过知识问答模型根据查询信息、查询信息的上下文和知识候选集,生成答复信息。对话引擎缓存的模型处理结果数据中的缓存键包括查询信息和知识候选集,缓存值为答复信息。
例如,对话引擎可以为文档问答引擎,使用的对话模型为文档问答模型。文档问答引擎在分流阶段获取查询信息的文档候选集,该文档候选集包含查询信息匹配到的至少一个文档。在执行阶段,文档问答引擎根据查询信息及其上下文、文档候选集,使用文档问答模型,生成答复信息。文档问答引擎缓存的模型处理结果数据包括缓存键(key)和缓存值(value),其中缓存键包括查询信息和查询信息的文档候选集,缓存值为查询信息的答复信息。通过在缓存键中增加查询信息的文档候选集,可以提高文档问答引擎命中缓存的准确率。
文档问答引擎在查找与第一查询信息匹配的缓存数据时,先获取第一查询信息的文档候选集,基于第一查询信息及文档候选集与缓存数据中的缓存键进行匹配,来确定第一查询信息及文档候选集命中的缓存数据,作为与第一查询信息匹配的缓存数据。
可选地,基于第一查询信息及文档候选集与缓存数据中的缓存键进行匹配时,可以进行一致性匹配,在第一查询信息及文档候选集与缓存键中的查询信息和文档候选集均一致时,确定第一查询信息及文档候选集命中缓存数据,可以提升命中缓存的准确率。
另外,还可以基于第一查询信息及文档候选集与缓存数据中的缓存键进行模糊匹配,在第一查询信息及文档候选集与缓存数据中的缓存键的匹配度达到第二匹配度阈值时,确定第一查询信息及文档候选集命中的缓存数据。其中,第二匹配度阈值可以根据实际应用场景的需要进行配置和调整,此处不做具体限定。另外,还可以采用其他缓存数命中方式来查找第一查询信息及文档候选集命中的缓存数据,此处不做具体限定。其中,第一查询信息的文档候选集可以由文档问答引擎在缓存阶段根据第一查询信息从知识库的候选文档中召回,获得文档候选集。文档问答引擎在分流阶段可以直接使用已召回的文档候选集,无需重复召回文档候选集。
例如,对话引擎可以为FAQ引擎,使用的对话模型为FAQ模型。FAQ引擎在分流阶段获取查询信息的问答对候选集,该问答对候选集包含查询信息匹配到的至少一个问答对。在执行阶段,FAQ引擎根据查询信息及其上下文、问答对候选集,使用FAQ模型,生成答复信息。FAQ引擎缓存的模型处理结果数据包括缓存键(key)和缓存值(value),其中缓存键包括查询信息和查询信息的问答对候选集,缓存值为查询信息的答复信息。通过在缓存键中增加查询信息的问答对候选集,可以提高FAQ引擎命中缓存的准确率。
FAQ引擎在查找与第一查询信息匹配的缓存数据时,先获取第一查询信息的问答对候选集,基于第一查询信息及问答对候选集与缓存数据中的缓存键进行匹配,来确定第一查询信息及问答对候选集命中的缓存数据,作为与第一查询信息匹配的缓存数据。
可选地,基于第一查询信息及问答对候选集与缓存数据中的缓存键进行匹配时,可以进行一致性匹配,在第一查询信息及问答对候选集与缓存键中的查询信息和问答对候选集均一致时,确定第一查询信息及问答对候选集命中缓存数据,可以提升命中缓存的准确率。
另外,还可以基于第一查询信息及问答对候选集与缓存数据中的缓存键进行模糊匹配,在第一查询信息及问答对候选集与缓存数据中的缓存键的匹配度达到第三匹配度阈值时,确定第一查询信息及问答对候选集命中的缓存数据。其中,第三匹配度阈值可以根据实际应用场景的需要进行配置和调整,此处不做具体限定。另外,还可以采用其他缓存数命中方式来查找第一查询信息及问答对候选集命中的缓存数据,此处不做具体限定。其中,第一查询信息的问答对候选集可以由FAQ引擎在缓存阶段根据第一查询信息从知识库的候选文档中召回,获得问答对候选集。FAQ引擎在分流阶段可以直接使用已召回的问答对候选集,无需重复召回问答对候选集。
示例性地,对话引擎可以是任务型多轮对话引擎,对应的对话模型为任务型多轮对话模型,对话引擎在分流阶段通过任务型多轮对话模型对查询信息进行自然语言处理,在执行阶段根据查询信息、查询信息的上下文和自然语言处理结果,生成答复信息。
任务型多轮对话引擎缓存的模型处理结果数据包括缓存键(key)和缓存值(value),其中的缓存键包括查询信息和上一轮的答复信息,缓存值为本轮的答复信息。通过在缓存键中增加上一轮的答复信息,可以提高任务型多轮对话引擎命中缓存的准确率。
任务型多轮对话引擎在查找与第一查询信息匹配的缓存数据时,先获取上一轮的答复信息,基于第一查询信息及上一轮的答复信息与缓存数据中的缓存键进行匹配,来确定第一查询信息及上一轮的答复信息命中的缓存数据,作为与第一查询信息匹配的缓存数据。
可选地,基于第一查询信息及上一轮的答复信息与缓存数据中的缓存键进行匹配时,可以进行一致性匹配,在第一查询信息及上一轮的答复信息与缓存键中的查询信息和上一轮的答复信息均一致时,确定第一查询信息及上一轮的答复信息命中缓存数据,可以提升命中任务型多轮对话引擎缓存的准确率。
另外,还可以基于第一查询信息及上一轮的答复信息与缓存数据中的缓存键进行模糊匹配,在第一查询信息及上一轮的答复信息与缓存数据中的缓存键的匹配度达到第五匹配度阈值时,确定第一查询信息及上一轮的答复信息命中的缓存数据。其中,第五匹配度阈值可以根据实际应用场景的需要进行配置和调整,此处不做具体限定。另外,还可以采用其他缓存数命中方式来查找第一查询信息及上一轮的答复信息命中的缓存数据,此处不做具体限定。其中,第一查询信息的上一轮的答复信息可以由任务型多轮对话引擎从记录的上下文信息中获取,也可以由对话中控服务器向任务型多轮对话引擎提供,本实施例此处不做具体限定。
另一可选实施例中,各对话引擎的缓存数据中缓存键包含查询信息,而各个对话引擎根据自身的知识数据特点缓存不同的缓存值,在查找缓存时,基于当前的第一查询信息、或者第一查询信息及相似查询信息,与缓存数据中的缓存键匹配,来确定第一查询信息命中的缓存数据。
本实施例中,在对话中控服务器的多对话引擎的两阶段调度方案中,在分流阶段之前增加缓存阶段,各对话引擎根据自身知识数据特点来缓存模型处理结果,可以提升各对话引擎命中缓存的准确率。在缓存阶段,并行地查询各个对话引擎中第一查询信息的缓存查找结果,采用合理的缓存查找结果排序策略进行排序,并选择本轮命中的优选引擎;若优选引擎中命中缓存且优先级较高,基于缓存查找结果串行执行优选引擎的分流阶段和执行阶段,可以减少优先级低的对话引擎的模型调用。若优选引擎中命中缓存且召回能力较强,则将优选引擎及可能被优选引擎误拦的引擎一起作为候选引擎,对各个候选引擎进行两阶段调度来生成答复信息,在提高缓存命中率的基础上,尽量避免由于各个引擎召回能力不同导致的引擎之间的误拦问题,保证命中缓存的准确率。
图6为本申请一示例性实施例提供的一种对话系统的二阶段调度方案的示例框架图。如图6所示,本实施例提供的二阶段调度方案中,在分流阶段之前增加缓存阶段,对话中控服务器基于用户本轮输入的查询信息(query),在本地缓存的历史查询信息中查找用户输入的第一查询信息的相似查询信息;基于第一查询信息及相似查询信息,并行调用各对话引擎的缓存查找状态接口,使得各对话引擎在缓存的模型处理结果数据中查找与第一查询信息匹配的缓存数据,得到第一查询信息的缓存查找结果。对话中控服务器对各对话引擎返回的第一查询信息的缓存查找结果进行排序,根据排序结果选择优选引擎。在优选引擎命中缓存的情况下,对话中控服务器串行调用优选引擎的分流接口和执行接口,使得优选引擎串行进行分流阶段和执行阶段。在优选引擎执行分流阶段和执行阶段的过程中,在需要调用模型时,从缓存数据中获取第一查询信息对应的模型处理结果,不再调用模型,可以减少模型的调用次数。在优选引擎未命中缓存的情况下,对话中控服务器对各个对话引擎进行并行分流,对分流结果排序并选择目标引擎,调用目标引擎的执行阶段。
可选地,为了避免不同引擎召回能力之间导致误拦的问题,在选择优选引擎之后,在优选引擎命中缓存的情况下,若优选引擎是召回能力较强的对话引擎(如表格问答引擎、文档问答引擎),将优选引擎及优选引擎可能误拦的对话引擎一起加入并行分流的候选引擎列表,对候选引擎列表中的候选引擎进行并行分流,基于分流结果选择目标引擎,调用目标引擎的执行阶段,来生成答复信息,可以解决召回能力强的对话引擎的误拦问题。在优选引擎命中缓存的情况下,若优选引擎是优先级较高的对话引(如FAQ引擎、任务型多轮对话引擎),直接将优选引擎作为目标引擎,串行调用目标引擎的分流阶段和执行阶段,通过目标引擎基于缓存查找结果生成答复信息。
图7为本申请一示例性实施例提供的智能客服系统的人机对话流程图。本实施例的执行主体为对话中控服务器。如图7所示,应用于智能客服场景时,人机对话的具体流程如下:
步骤S701、对话中控服务器接收用户所需咨询的第一问题,在至少一个对话引擎缓存的模型处理结果数据中,查找与第一问题的缓存数据,得到各对话引擎对第一问题的缓存查找结果。
其中,第一问题是指智能客服系统中用户想要咨询的问题,也即是用户当前输入的第一查询信息(query)。第一问题是指用户输入的文本内容。对于用户输入的文本,可以直接作为第一问题、或经改写后作为第一问题。对于用户输入的语音,可以将用户输入语音转换为文本,作为第一问题。
在一可选实施例中,该步骤中,对话中控服务器可以在缓存的历史问题信息中查找第一问题的相似问题;将第一问题及相似问题发送至各对话引擎,控制各对话引擎在缓存的模型处理结果数据中,查找与第一问题或相似问题匹配的缓存数据,得到第一问题的缓存查找结果;接收各对话引擎返回的第一问题的缓存查找结果。
该步骤中,对话中控服务器在至少一个对话引擎缓存的模型处理结果数据中,查找与第一问题的缓存数据,得到各对话引擎对第一问题的缓存查找结果,与前述步骤S301中对话中控服务器在至少一个对话引擎缓存的模型处理结果数据中,查找与第一查询信息匹配的缓存数据,得到各对话引擎对第一查询信息的缓存查找结果的实现方式一致,第一问题即是第一查询信息,历史问题信息即是历史查询信息,第一问题的相似问题即是第一查询信息的相似查询信息,具体参见前述实施例的相关内容,此处不再赘述。
步骤S702、对话中控服务器根据各对话引擎对第一问题的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制目标引擎根据对第一问题的缓存查找结果,生成答复信息。
该步骤中,对话中控服务器基于预设排序策略,对各对话引擎对第一问题的缓存查找结果进行排序,基于排序结果选择缓存查找结果排序靠前的一个对话引擎作为目标引擎,并控制目标引擎基于对第一问题的缓存查找结果,在命中缓存的情况下,使用命中的模型处理结果生成答复信息。在未命中缓存的情况下,通过调用对应的对话模型来获得第一问题的模型处理结果,再基于第一问题的模型处理结果生成答复信息。
具体地,对话中控服务器根据预设排序策略,对各对话引擎对第一问题的缓存查找结果进行排序,根据排序结果确定优选引擎;若优选引擎对第一问题的缓存查找结果中的缓存命中状态为命中缓存,且优选引擎属于第一引擎集合,则将优选引擎作为目标引擎;控制目标引擎基于第一问题的缓存查找结果,进行分流阶段和执行阶段的处理,生成第一问题的答复信息。
若优选引擎对第一问题的缓存查找结果中的缓存命中状态为命中缓存,且优选引擎属于第二引擎集合,则将优选引擎和会被优选引擎误拦的对话引擎,作为候选引擎;控制各候选引擎基于对第一问题的缓存查找结果,进行分流阶段的处理,得到各候选引擎的分流结果;根据各候选引擎的分流结果,选择一个候选引擎作为目标引擎;控制目标引擎对第一问题的缓存查找结果,进行执行阶段的处理,生成第一问题的答复信息。
若优选引擎对第一问题的缓存查找结果中的缓存命中状态为未命中缓存,则将各对话引擎作为候选引擎;控制各候选引擎基于对应的对话模型,进行分流阶段的处理,得到各候选引擎的分流结果;根据各候选引擎的分流结果,选择一个候选引擎作为目标引擎;控制目标引擎基于对应的对话模型,进行执行阶段的处理,生成第一问题的答复信息。
本实施例中,预设排序策略、第一引擎集合和第二引擎集合的含义和设置方式参见前述实施例的步骤S302中的相关描述,此处不再赘述。该步骤S702的具体实现方式与前述步骤S302的实现方式类似,具体参见步骤S401-S411的具体实现,此处不再赘述。
本实施例还提供一种应用于智能客服系统的对话引擎的人机对话方法,需要说明的是,在应用于智能客服系统时,各对话引擎在对话中控服务器的调度下所做的处理,与前述任一方法实施例中对话引擎所做的处理类似,具体参见前述方法实施例的详细内容,此处不再赘述。
本实施例的方案应用于智能客服场景,在对话中控服务器的多对话引擎的两阶段调度方案中,在分流阶段之前增加缓存阶段,各对话引擎根据自身知识数据特点来缓存模型处理结果。在缓存阶段,并行地查询各个对话引擎中用户想要咨询的第一问题的缓存查找结果,采用合理的缓存查找结果排序策略进行排序,并选择本轮命中的优选引擎;若优选引擎中命中缓存且优先级较高,基于缓存查找结果串行执行优选引擎的分流阶段和执行阶段,可以减少优先级低的对话引擎的模型调用。若优选引擎中命中缓存且召回能力较强,则将优选引擎及可能被优选引擎误拦的引擎一起作为候选引擎,对各个候选引擎进行两阶段调度来生成答复信息,在提高缓存命中率的基础上,尽量避免由于各个引擎召回能力不同导致的引擎之间的误拦问题,保证命中缓存的准确率。
图8为本申请实施例提供的一种对话中控服务器的结构示意图。如图8所示,该对话中控服务器包括:存储器801和处理器802。存储器801,用于存储计算机执行指令,并可被配置为存储其它各种数据以支持在对话中控服务器上的操作。处理器802,与存储器801通信连接,用于执行存储器801存储的计算机执行指令,以实现上述任一方法实施例所提供的技术方案,其具体功能和所能实现的技术效果类似,此处不再赘述。
可选的,如图8所示,该对话中控服务器还包括:防火墙803、负载均衡器804、通信组件805、电源组件806等其它组件。图8中仅示意性给出部分组件,并不意味着对话中控服务器只包括图8所示组件。
图9为本申请实施例提供的一种对话引擎的结构示意图。该对话引擎可以运行在云服务器上。如图9所示,该对话引擎包括:存储器901和处理器902。存储器901,用于存储计算机执行指令,并可被配置为存储其它各种数据以支持在云服务器上的操作。处理器902,与存储器901通信连接,用于执行存储器901存储的计算机执行指令,以实现上述任一方法实施例所提供的技术方案,其具体功能和所能实现的技术效果类似,此处不再赘述。可选的,如图9所示,该对话引擎还包括:防火墙903、负载均衡器904、通信组件905、电源组件906等其它组件。图9中仅示意性给出部分组件,并不意味着对话引擎只包括图9所示组件。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现前述任一实施例中对话中控服务器或对话引擎所执行的方法流程,具体功能和所能实现的技术效果此处不再赘述。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一实施例的方法。计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一方法实施例中对话中控服务器或对话引擎所执行的方法流程,具体功能和所能实现的技术效果此处不再赘述。
本申请实施例提供一种芯片,包括:处理模块与通信接口,该处理模块能执行前述方法实施例中电子设备的技术方案。可选的,该芯片还包括存储模块(如,存储器),存储模块用于存储指令,处理模块用于执行存储模块存储的指令,并且对存储模块中存储的指令的执行使得处理模块执行前述任一方法实施例中对话中控服务器或对话引擎所执行的方法流程。
应理解,上述处理器可以是处理单元(Central Processing Unit,简称CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
上述存储器可以是对象存储(Object Storage Service,简称OSS)。上述存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(ElectricallyErasable Programmable Read Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Read Only Memory,简称PROM),只读存储器(Read Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
上述通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如移动热点(WiFi),第二代移动通信系统(2G)、第三代移动通信系统(3G)、第四代移动通信系统(4G)/长期演进(LongTerm Evolution,简称LTE)、第五代移动通信系统(5G)等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(Near FieldCommunication,简称NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RadioFrequency Identification,简称RFID)技术,红外技术,超宽带(Ultra Wide Band,简称UWB)技术,蓝牙技术和其他技术来实现。上述电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例的顺序仅仅为了描述,不代表实施例的优劣。另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。“多个”的含义是两个以上,除非另有明确具体的限定。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (17)

1.一种人机对话方法,其特征在于,应用于对话中控服务器,所述方法包括:
基于用户输入的第一查询信息,在至少一个对话引擎缓存的模型处理结果数据中,查找与所述第一查询信息匹配的缓存数据,得到各对话引擎对所述第一查询信息的缓存查找结果;
根据各对话引擎对所述第一查询信息的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制所述目标引擎根据对所述第一查询信息的缓存查找结果,生成答复信息。
2.根据权利要求1所述的方法,其特征在于,所述基于用户输入的第一查询信息,在至少一个对话引擎缓存的模型处理结果数据中,查找与所述第一查询信息匹配的缓存数据,得到各对话引擎对所述第一查询信息的缓存查找结果,包括:
将用户输入的第一查询信息发送至各对话引擎,控制各对话引擎在缓存的模型处理结果数据中,查找与所述第一查询信息匹配的缓存数据,得到所述第一查询信息的缓存查找结果;
接收各对话引擎返回的所述第一查询信息的缓存查找结果。
3.根据权利要求1所述的方法,其特征在于,所述基于用户输入的第一查询信息,在至少一个对话引擎缓存的模型处理结果数据中,查找与所述第一查询信息匹配的缓存数据,得到各对话引擎对所述第一查询信息的缓存查找结果,包括:
在缓存的历史查询信息中查找用户输入的第一查询信息的相似查询信息;
将所述第一查询信息及相似查询信息发送至各对话引擎,控制各对话引擎在缓存的模型处理结果数据中,查找与所述第一查询信息或所述相似查询信息匹配的缓存数据,得到所述第一查询信息的缓存查找结果;
接收各对话引擎返回的所述第一查询信息的缓存查找结果。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据各对话引擎对所述第一查询信息的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制所述目标引擎根据对所述第一查询信息的缓存查找结果,生成答复信息,包括:
根据预设排序策略,对各对话引擎对所述第一查询信息的缓存查找结果进行排序,根据排序结果确定优选引擎;
若所述优选引擎对所述第一查询信息的缓存查找结果中的缓存命中状态为命中缓存,且所述优选引擎属于第一引擎集合,则将所述优选引擎作为目标引擎;
控制所述目标引擎基于所述第一查询信息的缓存查找结果,进行分流阶段和执行阶段的处理,生成所述第一查询信息的答复信息。
5.根据权利要求4所述的方法,其特征在于,所述根据排序结果确定优选引擎之后,还包括:
若所述优选引擎对所述第一查询信息的缓存查找结果中的缓存命中状态为命中缓存,且所述优选引擎属于第二引擎集合,则将所述优选引擎和会被所述优选引擎误拦的对话引擎,作为候选引擎;
控制各候选引擎基于对所述第一查询信息的缓存查找结果,进行分流阶段的处理,得到各候选引擎的分流结果;
根据各候选引擎的分流结果,选择一个候选引擎作为目标引擎;
控制所述目标引擎对所述第一查询信息的缓存查找结果,进行执行阶段的处理,生成所述第一查询信息的答复信息。
6.根据权利要求4所述的方法,其特征在于,所述根据排序结果确定优选引擎之后,还包括:
若所述优选引擎对所述第一查询信息的缓存查找结果中的缓存命中状态为未命中缓存,则将所述各对话引擎作为候选引擎;
控制各候选引擎基于对应的对话模型,进行分流阶段的处理,得到各候选引擎的分流结果;
根据各候选引擎的分流结果,选择一个候选引擎作为目标引擎;
控制所述目标引擎基于对应的对话模型,进行执行阶段的处理,生成所述第一查询信息的答复信息。
7.一种人机对话方法,其特征在于,应用于对话引擎,所述方法包括:
接收对话中控服务器发送的第一查询信息;
在缓存的模型处理结果数据中,查找与所述第一查询信息匹配的缓存数据,得到所述第一查询信息的缓存查找结果;
向所述对话中控服务器返回所述第一查询信息的缓存查找结果;
基于所述对话中控服务器的控制信息,根据所述第一查询信息的缓存查找结果,生成答复信息。
8.根据权利要求7所述的方法,其特征在于,所述在缓存的模型处理结果数据中,查找与所述第一查询信息匹配的缓存数据,得到所述第一查询信息的缓存查找结果,包括:
接收所述对话中控服务器发送的所述第一查询信息的相似查询信息;
在缓存的模型处理结果数据中,查找与所述第一查询信息或所述相似查询信息匹配的缓存数据,得到所述第一查询信息的缓存查找结果。
9.根据权利要求7所述的方法,其特征在于,所述根据所述对话中控服务器的控制信息,根据所述第一查询信息的缓存查找结果,生成答复信息,包括:
基于所述对话中控服务器的控制信息,在对所述第一查询信息的缓存查找结果中的缓存命中状态为命中缓存的情况下,基于对所述第一查询信息的缓存查找结果,进行分流阶段和/或执行阶段的处理,以根据所述第一查询信息命中的模型处理结果数据,生成答复信息;
在对所述第一查询信息的缓存查找结果中的缓存命中状态为未命中缓存的情况下,基于对应的对话模型进行分流阶段和/或执行阶段的处理,以通过对应的对话模型对所述第一查询信息进行处理,并根据得到的模型处理结果生成答复信息。
10.根据权利要求9所述的方法,其特征在于,所述通过对应的对话模型对所述第一查询信息进行处理之后,还包括:
缓存所述第一查询信息的模型处理结果数据。
11.根据权利要求7-10中任一项所述的方法,其特征在于,所述对话引擎对应的对话模型为表格问答模型,
所述对话引擎在分流阶段通过表格问答模型将查询信息转换为结构化查询语句,在执行阶段获取查询信息的结构化查询语句的查询结果,并根据查询结果、查询信息和上下文信息,生成答复信息;
所述对话引擎缓存的模型处理结果数据中的缓存键包括查询信息和上一轮的结构化查询语句,缓存值为查询信息转换成的本轮的结构化查询语句。
12.根据权利要求7-10中任一项所述的方法,其特征在于,所述对话引擎对应的对话模型为知识问答模型,
所述对话引擎在分流阶段获取查询信息的知识候选集,在执行阶段通过知识问答模型根据查询信息、查询信息的上下文和知识候选集,生成答复信息;
所述对话引擎缓存的模型处理结果数据中的缓存键包括查询信息和知识候选集,缓存值为答复信息。
13.一种人机对话方法,其特征在于,应用于智能客服系统中的对话中控服务器,所述方法包括:
接收用户所需咨询的第一问题,在至少一个对话引擎缓存的模型处理结果数据中,查找与所述第一问题的缓存数据,得到各对话引擎对所述第一问题的缓存查找结果;
根据各对话引擎对所述第一问题的缓存查找结果,选择其中一个对话引擎作为目标引擎,控制所述目标引擎根据对所述第一问题的缓存查找结果,生成答复信息。
14.根据权利要求13所述的方法,其特征在于,所述在至少一个对话引擎缓存的模型处理结果数据中,查找与所述第一问题的缓存数据,得到各对话引擎对所述第一问题的缓存查找结果,包括:
在缓存的历史问题信息中查找所述第一问题的相似问题;
将所述第一问题及相似问题发送至各对话引擎,控制各对话引擎在缓存的模型处理结果数据中,查找与所述第一问题或所述相似问题匹配的缓存数据,得到所述第一问题的缓存查找结果;
接收各对话引擎返回的所述第一问题的缓存查找结果。
15.一种对话中控服务器,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述对话中控服务器执行权利要求1-6、13-14中任一项所述的方法。
16.一种对话引擎,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述对话引擎执行权利要求7-12中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-14中任一项所述的方法。
CN202311646407.7A 2023-12-01 2023-12-01 人机对话方法、对话中控服务器、对话引擎及存储介质 Pending CN117633181A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311646407.7A CN117633181A (zh) 2023-12-01 2023-12-01 人机对话方法、对话中控服务器、对话引擎及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311646407.7A CN117633181A (zh) 2023-12-01 2023-12-01 人机对话方法、对话中控服务器、对话引擎及存储介质

Publications (1)

Publication Number Publication Date
CN117633181A true CN117633181A (zh) 2024-03-01

Family

ID=90028454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311646407.7A Pending CN117633181A (zh) 2023-12-01 2023-12-01 人机对话方法、对话中控服务器、对话引擎及存储介质

Country Status (1)

Country Link
CN (1) CN117633181A (zh)

Similar Documents

Publication Publication Date Title
US20240137423A1 (en) Proactive environment-based chat information system
CN110998567B (zh) 用于对话语义分析的知识图谱
CN110956956A (zh) 基于策略规则的语音识别方法及装置
AU2011209760A1 (en) Integration of embedded and network speech recognizers
US11271877B2 (en) Primary chat bot service and secondary chat bot service integration
JP7488871B2 (ja) 対話推薦方法、装置、電子機器、記憶媒体ならびにコンピュータプログラム
CN109977216A (zh) 基于场景的对话推荐方法及系统
CN110399459B (zh) 在线文档的搜索方法、装置、终端、服务器及存储介质
CN115424624A (zh) 一种人机互动的服务处理方法、装置及相关设备
EP4060517A1 (en) System and method for designing artificial intelligence (ai) based hierarchical multi-conversation system
CN112052316A (zh) 模型评估方法、装置、存储介质及电子设备
CN112579031A (zh) 一种语音交互的方法、系统和电子设备
CN110443382A (zh) 一种基于智能客服平台的用户交互方法
EP3848801A1 (en) Speech interaction method and apparatuses
CN113408567A (zh) 基于多分析任务的数据分析方法及电子设备
CN117421398A (zh) 人机交互方法、装置、设备以及存储介质
CN117575008A (zh) 训练样本生成方法、模型训练方法、知识问答方法及设备
CN117370520A (zh) 分流的对话处理方法、装置、设备及介质
CN117633181A (zh) 人机对话方法、对话中控服务器、对话引擎及存储介质
CN106484417A (zh) 一种应用程序列表展示方法及装置
CN116521832A (zh) 对话交互方法、装置及系统、电子设备和存储介质
CN109710939A (zh) 用于确定主题的方法和装置
CN109002498A (zh) 人机对话方法、装置、设备及存储介质
CN114860910A (zh) 智能对话方法及系统
CN112929751B (zh) 用于确定动作执行的系统、方法及终端

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