CN118132721A - 智能问答方法、装置、相关设备及计算机程序产品 - Google Patents
智能问答方法、装置、相关设备及计算机程序产品 Download PDFInfo
- Publication number
- CN118132721A CN118132721A CN202410319858.8A CN202410319858A CN118132721A CN 118132721 A CN118132721 A CN 118132721A CN 202410319858 A CN202410319858 A CN 202410319858A CN 118132721 A CN118132721 A CN 118132721A
- Authority
- CN
- China
- Prior art keywords
- tools
- subtasks
- tool
- large model
- subtask
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000004590 computer program Methods 0.000 title claims abstract description 14
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 76
- 238000012216 screening Methods 0.000 claims abstract description 12
- 230000008569 process Effects 0.000 claims description 47
- 230000001419 dependent effect Effects 0.000 claims description 22
- 238000013473 artificial intelligence Methods 0.000 claims description 16
- 230000002194 synthesizing effect Effects 0.000 claims description 7
- 239000010410 layer Substances 0.000 abstract description 61
- 239000002356 single layer Substances 0.000 abstract description 4
- 230000007774 longterm Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 235000002198 Annona diversifolia Nutrition 0.000 description 1
- 241000282842 Lama glama Species 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Abstract
本申请公开了一种智能问答方法、装置、相关设备及计算机程序产品,调用配置的人工智能大模型,以通过大模型基于设置的分层级的工具集,对问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具,其中,每一级分解后的子任务所依赖的工具,在工具集中属于分解前的任务所依赖的工具的子集;对于问题请求经各层级分解所得到的各子任务,从中筛选出目标子任务,目标子任务所依赖的工具在工具集中不存在子集;调用目标子任务所依赖的工具,执行目标子任务得到任务执行结果;综合各目标子任务的任务执行结果生成答案回复。本申请采用并行递归地分解逻辑,单层级平铺的工具类别可以被控制在较好的阈值下,且通过设置多层级的工具集,可以支持依据该分层级的工具集逐层深入分解子任务,解决传统方案覆盖度不足的问题,提高了输出的答案回复内容的准确度。
Description
技术领域
本申请涉及人工智能技术领域,更具体的说,是涉及一种智能问答方法、装置、相关设备及计算机程序产品。
背景技术
随着人工智能的不断发展,人们对人机交互的智能化要求逐步提高。智能问答越来越多的应用于各行各业,示例如:在智能客服领域,设置机器人自动回答用户提出的问题。在人机对话聊天领域,设置机器人与用户进行互动对话,回答用户提出的问题等。
现有的智能问答方法一般是首先对用户请求进行分类,确定请求类型。进而按照确定的类型,调用系统业务接口来响应用户请求,给出回复内容。现有方法在对用户请求进行分类时一般采用平铺逻辑,即预先梳理出所有可能的请求类型并列地置于一个集合内,当接收到用户请求时,在该集合中查找与用户请求最匹配的一个目标请求类型。这种方式,当对请求类型的分类粒度较细时,在分类时容易存在语义纠缠的问题,即难以准确界定用户请求所匹配的准确的目标请求类型。当对请求类型的分类粒度较粗时,容易存在分类不精确、覆盖度不够的问题。进一步地,当用户请求较为复杂时,特别是一条用户请求中包含有多个不同的任务意图时,采用现有分类方法仅会输出最匹配的一个目标请求类型,也即会遗漏用户的任务意图。在此基础上,更加无法准确的给出与用户请求对应的回复内容。
发明内容
鉴于上述问题,提出了本申请以便提供一种智能问答方法、装置、相关设备及计算机程序产品,以提高输出的答案回复内容的准确度。具体方案如下:
第一方面,提供了一种智能问答方法,包括:
接收用户的问题请求;
调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具,其中,每一级分解后的子任务所依赖的工具,在所述分层级的工具集中,属于分解前的任务所依赖的工具的子集;
对于所述问题请求经各层级分解所得到的各所述子任务,从中筛选出目标子任务,所述目标子任务所依赖的工具在所述工具集中不存在子集;
调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果;
综合各所述目标子任务的任务执行结果,生成所述问题请求对应的答案回复。
在一种可能的设计中,在本申请实施例的第一方面的另一种实现方式中,调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具的过程,包括:
调用配置的人工智能大模型,向所述大模型输入第一提示指令prompt,以指示所述大模型基于所述工具集中第一层级的工具信息对所述问题请求进行分解,输出分解后的子任务及每一所述子任务所依赖的工具;
对于每一所述子任务,若所述子任务所依赖的工具在所述工具集中不存在子集,则停止对所述子任务继续分解;
若所述子任务所依赖的工具在所述工具集中存在子集,则迭代地调用所述大模型,每次调用所述大模型时向所述大模型输入第二提示指令prompt,以指示大模型基于当前层级的子任务所依赖的工具在所述工具集中的子集对当前层级的子任务继续分解,输出分解后的子任务及每一所述子任务所依赖的工具,直至分解后的子任务所依赖的工具在所述工具集中不存在子集为止停止调用所述大模型,得到各级分解后的子任务及其所依赖的工具。
在一种可能的设计中,在本申请实施例的第一方面的另一种实现方式中,调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具的过程,包括:
调用配置的人工智能大模型,向所述大模型输入第三提示指令prompt,以指示所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在所述工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具。
在一种可能的设计中,在本申请实施例的第一方面的另一种实现方式中,向所述大模型输入第一提示指令prompt,以指示所述大模型基于所述工具集中第一层级的工具信息对所述问题请求进行分解,输出分解后的子任务及每一所述子任务所依赖的工具的过程,包括:
获取第一类型prompt格式模板,所述第一类型prompt格式模板包括第一任务指令、工具槽及问题槽,所述第一任务指令用于指示大模型按照所述工具槽内提供的工具信息,对所述问题槽内的问题请求进行分解,输出分解后的子任务及每一子任务所依赖的工具;
将所述分层级的工具集中第一层级的工具信息填充到所述工具槽,将所述问题请求填充到所述问题槽,得到第一提示指令prompt;
将所述第一提示指令prompt送入所述大模型,得到大模型输出的分解后的子任务及每一所述子任务所依赖的工具。
在一种可能的设计中,在本申请实施例的第一方面的另一种实现方式中,每次调用所述大模型时向所述大模型输入第二提示指令prompt,以指示大模型基于当前层级的子任务所依赖的工具在所述工具集中的子集对当前层级的子任务继续分解,输出分解后的子任务及每一所述子任务所依赖的工具的过程,包括:
获取所述第一类型prompt格式模板;
将当前层级的子任务所依赖的工具在所述工具集中的子集填充到所述工具槽,将所述当前层级的子任务填充到所述问题槽,得到第二提示指令prompt;
将所述第二提示指令prompt送入所述大模型,得到大模型输出的分解后的子任务及每一所述子任务所依赖的工具。
在一种可能的设计中,在本申请实施例的第一方面的另一种实现方式中,向所述大模型输入第三提示指令prompt,以指示所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在所述工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具的过程,包括:
获取第二类型prompt格式模板,所述第二类型prompt格式模板包括第二任务指令、工具槽及问题槽,所述第二任务指令用于指示大模型按照所述工具槽内提供的分层级的工具集,对所述问题槽内的问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在所述工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具;
将所述分层级的工具集填充到所述工具槽,将所述问题请求填充到所述问题槽,得到第三提示指令prompt;
将所述第三提示指令prompt送入所述大模型,得到大模型输出的每一级分解后的子任务及其所依赖的工具。
在一种可能的设计中,在本申请实施例的第一方面的另一种实现方式中,综合各所述目标子任务的任务执行结果,生成所述问题请求对应的答案回复的过程,包括:
调用所述大模型,以指示所述大模型结合所述问题请求分解后的各所述目标子任务,及所述目标子任务的执行结果,汇总生成所述问题请求对应的完整的答案回复。
在一种可能的设计中,在本申请实施例的第一方面的另一种实现方式中,调用所述大模型,以指示所述大模型结合所述问题请求分解后的各所述目标子任务,及所述目标子任务的执行结果,汇总生成所述问题请求对应的完整的答案回复的过程,包括:
获取第三类型prompt格式模板,所述第三类型prompt格式模板包括第三任务指令、问题槽、子任务槽及任务结果槽,所述第三任务指令用于指示大模型结合所述问题槽内的问题请求、所述子任务槽内分解后的各目标子任务及所述任务结果槽内各目标子任务的任务执行结果,汇总生成完整的答案回复;
将所述问题请求填充到所述问题槽,将所述目标子任务填充到所述子任务槽,将所述目标子任务的任务执行结果填充到所述任务结果槽,得到第四提示指令prompt;
将所述第四提示指令prompt送入所述大模型,得到大模型输出的答案回复。
在一种可能的设计中,在本申请实施例的第一方面的另一种实现方式中,调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果的过程,包括:
按照所述目标子任务所依赖的工具执行时所需的字段信息,从所述问题请求中提取所述字段信息;
采用所述字段信息调用所述目标子任务所依赖的工具,以执行所述目标子任务得到任务执行结果。
在一种可能的设计中,在本申请实施例的第一方面的另一种实现方式中,在通过所述大模型输出每一级分解后的子任务及其所依赖的工具的同时,还通过所述大模型提取所述问题请求中每一工具执行时所需的字段信息;
则调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果的过程,包括:
采用所述目标子任务所依赖的工具执行时所需的字段信息调用对应的工具,以执行所述目标子任务得到任务执行结果。
在一种可能的设计中,在本申请实施例的第一方面的另一种实现方式中,所述工具集包括如下至少一种或多种类型工具:
知识库、关系型数据库、系统接口。
第二方面,提供了一种智能问答装置,包括:
请求接收单元,用于接收用户的问题请求;
大模型调用单元,用于调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具,其中,每一级分解后的子任务所依赖的工具,在所述分层级的工具集中,属于分解前的任务所依赖的工具的子集;
目标子任务筛选单元,用于对于所述问题请求经各层级分解所得到的各所述子任务,从中筛选出目标子任务,所述目标子任务所依赖的工具在所述工具集中不存在子集;
目标子任务执行单元,用于调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果;
答案生成单元,用于综合各所述目标子任务的任务执行结果,生成所述问题请求对应的答案回复。
第三方面,提供了一种智能问答设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现本申请前述第一方面中任一项所描述的智能问答方法。
第四方面,提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现本申请前述第一方面中任一项所描述的智能问答方法。
第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现本申请前述第一方面中任一项所描述的智能问答方法。
借由上述技术方案,本申请预先设置了分层级的工具集,也即按照工具间的隶属关系将工具集内各工具划分为若干层级,以银行业务场景为例进行说明,第一层级的工具有理财接口,该理财接口工具之下又可以包括第二层级的理财办理接口、理财赎回接口、理财查询接口等工具。在此基础上,本申请调用大模型的能力,通过大模型根据分层级的工具集递归地对用户的问题请求进行逐层级分解,并输出每一级分解后的子任务及子任务所依赖的工具,其中,每一级分解后的子任务所依赖的工具,属于分解前的任务所依赖的工具的子集。本申请采用并行递归地分解逻辑,单层级平铺的工具类别可以被控制在较好的阈值下,且通过设置多层级的工具集,可以支持依据该分层级的工具集逐层深入分解子任务,解决传统方案覆盖度不足的问题。
此外,对于复杂的用户请求,如包含多个不同任务意图的用户请求,采用本申请方案只要配置的工具集足以支持各不同意图的任务,即可对用户请求分解得到其所包含的各个子任务及所依赖的工具,不会遗漏用户的任意意图。最后筛选出目标子任务(目标子任务所依赖的工具在工具集中不存在子集,也即目标子任务通过所依赖的工具即可直接执行),调用目标子任务所依赖的工具执行目标子任务,得到任务执行结果,综合各目标子任务的任务执行结果即可生成问题请求对应的答案回复,提高了输出的答案回复内容的准确度。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例提供的智能问答方法的一流程示意图;
图2为本申请实施例提供的智能问答方法的另一流程示意图;
图3为本申请实施例提供的智能问答方法的一实现场景示意图;
图4为本申请实施例提供的一种智能问答装置结构示意图;
图5为本申请实施例提供的一种智能问答设备的结构示意图。
具体实施方式
在介绍本申请方案之前,首先对本文中涉及到的英文进行解释:
prompt:指示指令。在与AI(如人工智能模型)进行交互时,需要向AI发送的指令,其可以是一段文字描述,比如你和AI交互时输入的“请帮我推荐一首流行音乐”,也可以是按照一定格式的参数描述,比如让AI按照一定格式进行绘图,需要描述相关绘图参数。
人工智能大模型:又可以称之为大型深度学习模型,是一种基于深度学习技术的人工智能模型,它由数以亿计的参数组成,可以通过对大量数据的学习、训练,实现自然语言处理、图像识别、语音识别等复杂任务。人工智能大模型可以包括大语言模型、多模态大模型。
大语言模型:(Large language model,LLM)通常是指具有大量参数和能力的语言模型,它通过在大规模文本数据上进行预训练来学习语言的统计规律和语义关系。这些模型通常使用无监督学习方法,预测下一个词或填充缺失的词,以捕捉语言的上下文和语义信息。大语言模型能够生成连贯的语句、回答问题、完成翻译任务等。LLM的特点是规模庞大,包含数十亿甚至更多的参数,帮助它们学习语言数据中的复杂模式。大语言模型涌现的能力包括上下文学习、指令遵循和循序渐进的推理能力等,随着ChatGPT的发布,LLM相关的研究和应用逐渐爆发,比如Google的PaLM模型、Meta的LLaMA模型等。训练完成后,一个LLM可以作为一个基座,解决各类任务,如文本分类、情感分析、问答系统等,还具备针对新任务的泛化能力以及很好地交互能力。
多模态大模型是在大语言模型的基础上进一步融合了多模态能力,能够对多种模态的信息进行处理,如图像、文本、音频等。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种智能问答方案,可以适用于各种人机交互问答场景,示例如在智能客服领域,设置机器人自动回答用户提出的问题。在人机对话聊天领域,设置机器人与用户进行互动对话,回答用户提出的问题等。
本申请方案可以基于具备数据处理能力的终端实现,该终端可以是手机、电脑、客服机器人、聊天机器人、服务器、云端等。
本申请提出了一种使用并行递归方法利用大模型对用户问题请求进行分解和执行,最终完成用户问题请求的回复。该方案可以实现以一个统一的方法处理用户问题请求,并且能够根据用户问题请求的特性,自动调用不同类型的工具,动态且综合性的完成用户问题请求。
本申请设置的工具集采用分层级结构,类似于树状结构中的父节点和子节点,子节点对应的工具属于父节点对应工具的子集。示例性的,工具集中第一层级的工具可以包含知识库、关系型数据库、系统接口等。以知识库为例,其可以包括第二层级的工具,如文档知识库、媒体知识库等。再以系统接口工具为例,其可以包括第二层级的工具,如理财接口。理财接口又可以包括第三层级的工具,如理财查询接口、理财办理接口、理财赎回接口等。工具集的设置方式可以根据具体的智能问答场景而定。
传统方案在判断用户问题请求的类型时,采用的是平铺逻辑,将整理的所有可能的用户请求类型并列至于一个集合内。当请求类型分类特别细的时候,集合内并列的各请求类型的数量可能达到1000以上,此时容易存在语义纠缠的问题(一般的,当并列的分类数量在200以下时,分类准确度可以做到90%左右,当并列的分类数量达到500以上时会骤降到80%)。在分类粒度较粗的时候容易存在分类不精确、覆盖度不够的问题。
在采用本申请的并行递归方法利用大模型对用户问题请求进行分解和执行的方案时,由于设计了分层级的工具集,因而对用户问题请求分解后的单层级的子任务可以被控制在较好的阈值下,同时又可以根据工具集逐渐深入对子任务进行分解,解决覆盖度问题,其中单层级的子任务数量不超过200,综合各层级的子任务的总数量可以得到1000以上,也即可以较好地覆盖各类型的用户请求。采用本申请方案对用户问题请求进行子任务分解,可以更加准确地得到用户的任务意图,准确度可以达到90%以上,相对于现有方案提升至少10%。
此外,由于现有方案用户的请求被分类逻辑限定在某一个固定的分类下,而本申请方案可以调用大模型对用户问题请求进行拆分,得到用户问题请求对应的若干个子任务,不会遗漏用户请求中包含的多个不同的任务意图。以金融、电商客服等领域的智能问答场景为例,一般多分类的请求在整体访问请求中的占比大约有5%-7%,因而在采用现有方案时一次性解决用户问题请求的比例理论上限只能达到95%。而采用本申请的方案可以拆分用户的问题请求得到多个不同的子任务,一次性解决用户问题请求的比例理论上限可以达到100%。
接下来,结合图1所述,本申请的智能问答方法可以包括如下步骤:
步骤S100、接收用户的问题请求。
具体地,在人机交互过程,用户可以向机器提出问题,由机器接收用户的问题请求。问题请求可以是语音、文本、图像等任意一种或多种模态的信息。以银行理财中心问答场景为例,用户可以提出问题请求:我三个月后想用钱,之前在你们这里办理了一个长期理财A,你看下能不能帮我赎回,再给我推荐个短期理财办理下。
步骤S110、调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具。
具体地,本申请预先配置了分层级的工具集,工具集内的各工具为适配于具体业务场景的工具。工具集内的工具可以包括工具描述信息,如工具的能力、存储形式、子工具集等。以资产查询接口为例,其描述信息可以包括:通过API接口调用,执行该工具可获得资产相关信息,包括固定资产查询接口、银行余额查询接口……。再以金融知识库为例,其描述信息可以包括:通过检索方式使用,执行该工具可获取金融相关知识,包括保险知识库、理财知识库……。
本步骤中,调用大模型的能力,以通过大模型基于工具集,对问题请求进行逐层级分解,得到每一级分解后的子任务及子任务所依赖的工具(即子任务执行时所使用的工具)。其中,每一级分解后的子任务所依赖的工具,在分层级的工具集中,属于分解前的任务所依赖的工具的子集。
以上一步骤中示例的问题请求为例,定义工具集中两层,第一层中包含理财接口和理财数据库。第二层中包括归属于理财接口的理财办理接口、理财赎回接口和理财查询接口。则调用大模型对用户的问题请求进行逐层级分解后,首先基于第一层的工具将问题请求分解为任务1和任务2,其中任务1为:赎回长期理财A,所依赖的工具为:理财接口。任务2为:推荐3个月以内的短期理财,所依赖的工具为:理财数据库。
进一步,由于理财接口存在子工具集,因此可以调用大模型基于该子工具集进一步对任务1进行分解,任务1被分解为任务11和任务12,其中任务11为:查询长期理财A,所依赖的工具为:理财查询接口。任务12为:赎回长期理财A,所依赖的工具为:理财赎回接口。
步骤S120、对于所述问题请求经各层级分解所得到的各所述子任务,从中筛选出目标子任务,所述目标子任务所依赖的工具在所述工具集中不存在子集。
具体地,上一步骤中递归分解后得到的各子任务中,某些子任务所依赖的工具在工具集中存在子集,也即表示该子任务的执行需要依赖下一层级的工具,对于此类子任务可以忽略,本步骤中从中挑选出目标子任务,该目标子任务所依赖的工具在工具集中不存在子集,也即可以直接调用目标子任务所依赖的工具以执行目标子任务。
以上述示例分解后得到的各子任务为例,其包括:任务1、任务2、任务11、任务12。其中,任务1被进一步分解为任务11和任务12,任务11、任务12和任务2所依赖的工具在工具集中均不存在子集,因此可以将任务11、任务12和任务2确定为目标子任务。
需要说明的是,本步骤筛选目标子任务的执行时机,可以是在每一层级分解得到子任务之后即依次从分解后的子任务中筛选出目标子任务,也可以是在对问题请求进行各层级分解得到全部的子任务之后,再统一从全部的子任务中筛选出目标子任务。
步骤S130、调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果。
具体地,对于上一步骤中筛选得到的目标子任务,由于已知每一目标子任务所依赖的工具,因此可以调用对应工具以执行目标子任务,得到每一目标子任务的任务执行结果。
以上述示例的目标子任务为例,调用任务11(查询长期理财A)所依赖的工具(理财查询接口)执行任务11,得到的任务执行结果为:目标有查询理财A赎回需要在x月x日之后。调用任务12(赎回长期理财A)所依赖的工具(理财赎回接口)执行任务12,得到任务执行结果为:赎回理财A赎回失败。调用任务2(推荐3个月以内的短期理财)所依赖的工具(理财数据库)执行任务2,得到任务执行结果为:短期理财有:理财B赎回期1个月,理财C赎回期2个月。
步骤S140、综合各所述目标子任务的任务执行结果,生成所述问题请求对应的答案回复。
具体地,前述已经将用户的问题请求分解为各目标子任务,并调用对应的工具得到目标子任务的任务执行结果。在此基础上,可以汇总各目标子任务的任务执行结果,得到与问题请求所对应的答案回复。
以上述示例的各目标子任务的任务执行结果为例,汇总后生成的答案回复可以包括:尊敬的客户您好,您的长期理财A产品赎回失败,经过查询需要在x月x日以后赎回,关于短期理财为您推荐以下几款产品:1个月可赎回理财B,2个月可赎回理财C,请您选择理财产品进行办理。
本申请实施例提供的智能问答方法,预先设置了分层级的工具集,也即按照工具间的隶属关系将工具集内各工具划分为若干层级,综合利用工具集内各不同类型的工具,可以解决复杂用户请求在现有技术中不能被全面处理的问题。
在此基础上,本申请调用大模型的能力,通过大模型根据分层级的工具集递归地对用户的问题请求进行逐层级分解,并输出每一级分解后的子任务及子任务所依赖的工具,其中,每一级分解后的子任务所依赖的工具,属于分解前的任务所依赖的工具的子集。本申请采用并行递归地分解逻辑,单层级平铺的工具类别可以被控制在较好的阈值下,且通过设置多层级的工具集,可以支持依据该分层级的工具集逐层深入分解子任务,解决传统方案覆盖度不足的问题。
此外,对于复杂的用户请求,如包含多个不同任务意图的用户请求,采用本申请方案只要配置的工具集足以支持各不同意图的任务,即可对用户请求分解得到其所包含的各个子任务及所依赖的工具,不会遗漏用户的任意意图。最后筛选出目标子任务(目标子任务所依赖的工具在工具集中不存在子集,也即目标子任务通过所依赖的工具即可直接执行),调用目标子任务所依赖的工具执行目标子任务,得到任务执行结果,综合各目标子任务的任务执行结果即可生成问题请求对应的答案回复,提高了输出的答案回复内容的准确度。
在本申请的一些实施例中,对上述步骤S110、调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具的过程进行说明。
本实施例中提供了两种可选的大模型调用方式,以借助大模型能力对问题请求进行分解以及得到每一子任务所依赖的工具。
第一种方式:
本实施例中提供了一种递归地逐级分解子任务的方案,具体包括如下步骤:
S1、调用配置的人工智能大模型,向所述大模型输入第一提示指令prompt,以指示所述大模型基于所述工具集中第一层级的工具信息对所述问题请求进行分解,输出分解后的子任务及每一所述子任务所依赖的工具。
具体地,首先从分层级的工具集中提取出第一层级的各工具信息。调用大模型基于该第一层级的工具信息对问题请求进行分解,得到分解后的子任务及子任务所依赖的工具。
为了更好的调用大模型,本申请实施例设计了一种prompt格式模板,定义为第一类型prompt格式模板,第一类型prompt格式模板包括第一任务指令、工具槽及问题槽。其中,第一任务指令用于指示大模型按照工具槽内提供的工具信息,对问题槽内的问题请求进行分解,输出分解后的子任务及每一子任务所依赖的工具。
如下示例了第一类型prompt格式模板的一种可选示例:
“请使用提供的工具信息解决用户的问题。当前你可以使用的工具包括:[工具槽],用户的问题包括:[问题槽]。现在需要你对用户的问题进行分解,并输出解决用户的问题需要使用哪些工具。请按照如下表示方式提供回答:{1、分解后的子任务:xxx,使用的工具:xxx;2、分解后的子任务:xxx,使用的工具:xxx;……}”。
进一步地,将配置的分层级的工具集中第一层级的工具信息填充到第一类型prompt格式模板的工具槽,将用户的问题请求填充到问题槽,得到第一提示指令prompt。
将得到的第一提示指令prompt送入大模型,得到大模型输出的分解后的子任务及每一所述子任务所依赖的工具。
以问题请求“我三个月后想用钱,之前在你们这里办理了一个长期理财A,你看下能不能帮我赎回,再给我推荐个短期理财办理下”为例,定义工具集中两层,第一层中包含理财接口和理财数据库。第二层中包括归属于理财接口的理财办理接口、理财赎回接口和理财查询接口。
则将第一层的工具信息填充到工具槽,将上述用户问题请求填充到问题槽,得到第一提示指令prompt,并送入大模型,得到大模型输出的分解后的子任务及所依赖的工具:
子任务1为:赎回长期理财A,所依赖的工具为:理财接口。任务2为:推荐3个月以内的短期理财,所依赖的工具为:理财数据库。
S2、对于每一子任务,若子任务所依赖的工具在工具集中不存在子集,则停止对所述子任务继续分解。
以上述例子进行说明,其中子任务1所依赖的工具在工具集中存在子集,而子任务2所依赖的工具在工具集中不存在子集,因此可以停止对子任务2继续分解。
S3、若子任务所依赖的工具在工具集中存在子集,则迭代地调用大模型,每次调用大模型时向大模型输入第二提示指令prompt,以指示大模型基于当前层级的子任务所依赖的工具在所述工具集中的子集对当前层级的子任务继续分解,输出分解后的子任务及每一所述子任务所依赖的工具,直至分解后的子任务所依赖的工具在所述工具集中不存在子集为止停止调用大模型,得到各级分解后的子任务及其所依赖的工具。
具体地,可以获取前述配置的第一类型prompt格式模板。将当前层级的子任务所依赖的工具在工具集中的子集填充到所述工具槽,将当前层级的子任务填充到问题槽,得到第二提示指令prompt。
以上述示例为例,对于子任务1,将其填充到问题槽,将子任务1所依赖的工具在工具集中的子集填充到工具槽,得到第二提示指令prompt:
“请使用提供的工具信息解决用户的问题。当前你可以使用的工具包括:[{工具名称:理财办理接口,工具的功能:调用该接口提供理财办理功能}、{工具名称:理财查询接口,工具的功能:调用该接口提供理财查询功能}、{工具名称:理财赎回接口,工具的功能:调用该接口提供理财赎回功能}],用户的问题包括:[赎回长期理财A]。现在需要你对用户的问题进行分解,并输出解决客户的问题需要使用哪些工具。请按照如下表示方式提供回答:{1、分解后的子任务:xxx,使用的工具:xxx;2、分解后的子任务:xxx,使用的工具:xxx;……}”。
进一步地,将第二提示指令prompt送入大模型,得到大模型输出的分解后的子任务及每一所述子任务所依赖的工具。
以上述示例进行说明,任务1被分解为任务11和任务12,其中任务11为:查询长期理财A,所使用的工具为:理财查询接口。任务12为:赎回长期理财A,所使用的工具为:理财赎回接口。
由于上述任务11和任务12所使用的工具在工具集中不存在子集,因此可以停止对任务11和任务12继续分解,得到用户的问题请求各层级分解后的所有子任务,包括:任务1、任务2、任务11、任务12。
本实施例提供的递归地逐级分解子任务的方案,对用户的问题请求进行逐级递归的分解,每层级分解时采用待分解的任务所依赖的工具在工具集中的子集作为参考工具信息,调用大模型基于该参考工具信息对待分解的任务进行子任务的分解。通过逐层级的分解,可以提升对用户的问题请求的分解准确度,覆盖用户的全部任务意图。
第二种方式:
本实施例中提供了另一种问题请求分解方案,通过一次性调用大模型,即可得到全部的子任务及每一子任务所依赖的工具。具体包括如下步骤:
S1、调用配置的人工智能大模型,向大模型输入第三提示指令prompt,以指示大模型基于设置的分层级的工具集,对问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具。
为了更好的调用大模型,本申请实施例设计了一种prompt格式模板,定义为第二类型prompt格式模板,第二类型prompt格式模板包括第二任务指令、工具槽及问题槽,第二任务指令用于指示大模型按照工具槽内提供的分层级的工具集,对问题槽内的问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具。
如下示例了第二类型prompt格式模板的一种可选示例:
“请使用提供的工具信息解决用户的问题。当前你可以使用的工具包括:[工具槽],用户的问题包括:[问题槽]。现在需要你对用户的问题进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在工具集中属于分解前的任务所依赖的工具的子集,并输出解决用户的问题需要使用哪些工具。请按照如下表示方式提供回答:{1、分解后的子任务:xxx,使用的工具:xxx;2、分解后的子任务:xxx,使用的工具:xxx;……}”。
进一步地,将配置的分层级的工具集填充到工具槽,将用户的问题请求填充到问题槽,得到第三提示指令prompt。
将第三提示指令prompt送入大模型,得到大模型输出的每一级分解后的子任务及其所依赖的工具。
本实施例提供的方案,仅需通过配置的第三提示指令prompt调用一次大模型,即可得到大模型输出的对用户问题请求逐层级分解后的各子任务及每一子任务所依赖的工具,在保证能够对用户问题请求进行逐层级分解,得到分解后子任务及所依赖的工具的情况下,减少了大模型的调用次数。
在本申请的一些实施例中,对上述步骤S140,综合各目标子任务的任务执行结果,生成问题请求对应的答案回复的过程进行说明。
一种可选的方式下,可以采用配置的答案模板,结合各目标子任务的任务执行结果,生成问题请求对应的答案回复。其中,答案模板中包括一些固定话术,通过将各目标子任务的任务执行结果填充到答案模板中,得到答案回复。
通过采用答案模板对目标子任务的任务执行结果进行组装,可以更加快速、方便地得到答案回复。
另一种可选的方式下,还可以调用大模型的能力,以生成问题请求对应的答案回复。
具体地,调用大模型,以指示大模型结合所述问题请求分解后的各所述目标子任务,及所述目标子任务的执行结果,汇总生成所述问题请求对应的完整的答案回复。
为了更好的调用大模型,本申请实施例设计了一种prompt格式模板,定义为第三类型prompt格式模板,第三类型prompt格式模板包括第三任务指令、问题槽、子任务槽及任务结果槽。其中,第三任务指令用于指示大模型结合问题槽内的问题请求、子任务槽内分解后的各目标子任务及任务结果槽内各目标子任务的任务执行结果,汇总生成完整的答案回复。
如下示例了第三类型prompt格式模板的一种可选示例:
“现在需要你对用户问题请求拆解后的结果进行总结,形成一个完整性的答案回复描述。用户的问题请求包括:[问题槽],问题请求分解后的结果包括:[子任务槽],分解后子任务的任务执行结果包括:[任务结果槽]”。
进一步地,将用户的问题请求填充到第三类型prompt格式模板中的问题槽,将目标子任务填充到子任务槽,将目标子任务的任务执行结果填充到任务结果槽,得到第四提示指令prompt。
将所述第四提示指令prompt送入大模型,得到大模型输出的答案回复。
以前述示例的用户问题请求为例,通过调用大模型得到的答案回复如下:
“尊敬的客户您好,您的长期理财A产品赎回失败,经过查询需要在x月x日以后赎回,关于短期理财为您推荐以下几款产品:1个月可赎回理财B,2个月可赎回理财C,请您选择理财产品进行办理。”。
本实施例中通过调用大模型,可以结合各目标子任务的任务执行结果,生成问题请求的答案回复,借助大模型强大的自然语言理解、逻辑推理及生成能力,可以提升答案回复的准确度及表达流畅度。
在本申请的一些实施例中,对上述步骤S130,调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果的过程进行说明。
在一些业务场景下,调用工具执行目标子任务时需要用到业务字段信息,以理财产品赎回过程为例,在调用理财赎回接口时需要提供所要赎回的理财产品名称。每一工具执行时所需的字段信息可以是预先设定好的。
则字段信息的一种可选获取方式可以是:
按照目标子任务所依赖的工具执行时所需的字段信息,从问题请求中提取该字段信息。
其中,从问题请求中提取字段信息的过程,可以采用预训练的字段信息提取模型,或者是采用关键字匹配算法,从问题请求确定出与所要提取的字段关键字匹配的信息,作为提取到的字段信息。
字段信息的另一种可选获取方式可以是:
在通过大模型输出每一级分解后的子任务及其所依赖的工具的同时,还通过大模型提取问题请求中每一工具执行时所需的字段信息。
为了实现通过大模型提取问题请求中每一工具执行所需的字段信息,仅需要对prompt格式模板中的任务指令进行适应性调整即可。以前述实施例示例的第一类型prompt格式模板为例,可以调整其中的第一任务指令,第一任务指令用于指示大模型按照工具槽内提供的工具信息,对问题槽内的问题请求进行分解,输出分解后的子任务、每一子任务所依赖的工具以及工具执行时所需的字段信息。
如下示例了第一类型prompt格式模板的一种可选示例:
“请使用提供的工具信息解决用户的问题。当前你可以使用的工具包括:[工具槽],用户的问题包括:[问题槽]。现在需要你对用户的问题进行分解,并输出解决用户的问题需要使用哪些工具。请按照如下表示方式提供回答:{1、分解后的子任务:xxx,使用的工具:xxx,工具执行时所需字段信息:xxx;2、分解后的子任务:xxx,使用的工具:xxx,工具执行时所需字段信息:xxx;……}”。
同理,可以对前述实施例中的第二类型prompt格式模板中的第二任务指令进行调整,以使得第二任务指令也可以从问题请求中提取出每一工具执行时所需的字段信息。
在此基础上,采用提取的字段信息调用所述目标子任务所依赖的工具,以执行所述目标子任务得到任务执行结果。
本实施例提供的方法中,可以采用多种方式提取到目标子任务所依赖的工具执行时所需的业务字段信息,进而保证调用相应的工具时能够顺利执行目标子任务。
可以理解的是,若目标子任务所依赖的工具执行时不需要额外的业务字段信息,则可以省去提取业务字段信息的过程,直接调用工具执行目标子任务即可。
在本申请的一些实施例中,结合图2所示,介绍本申请智能问答方法的一种可选实现方式,具体可以包括如下步骤:
步骤S200、接收用户的问题请求,作为一条任务放入任务池。
本申请可以预先配置一个任务池,用于存储任务信息,该任务信息可以是用户发起的问题请求,也可以是对问题请求分解后的子任务,或者对子任务进一步逐级分解后的子任务。
步骤S210、调用大模型基于分层级的工具集,对任务池中的任务进行分解,并将分解后的子任务放入任务池。
具体地,提取工具集中第N层级的工具信息,首次调用大模型时N取值为1。之后,在对一子任务X进行再次分解时,所使用的工具为该子任务X所依赖的工具在工具集中的子集Y。
本步骤中,调用大模型对问题请求进行分解,得到分解后的子任务及子任务所依赖的工具(若子任务对应的工具执行时还需要使用到业务字段信息,则还可以指示大模型输出该业务字段信息)。
分解后得到的各子任务放入任务池中。同时,对于任务池中的各条子任务(包括初始放入的问题请求),如果其被进一步分解为子任务,则可以将该条子任务从任务池中删除。
步骤S220、使用工具集执行任务池中各条子任务,并获取任务执行结果。
具体地,可以通过配置的执行器并行执行各条子任务。如果执行时发现某一子任务所依赖的工具在工具集中还存在子集,则确定该子任务需要进一步被分解,如果执行时发现某一目标子任务所依赖的工具在工具集中不存在子集,则获取该目标子任务的任务执行结果,并将被执行完毕的目标子任务从任务池中删除。
步骤S230、检查任务池中是否还存在子任务,若存在,则循环执行步骤S210-S220的过程,直至任务池中不存在子任务为止,进一步执行步骤S240。
具体地,检查任务池的过程可以采用预先配置的分析器完成。即分析器检查任务池中是否存在子任务,若存在,则触发执行器,以循环执行步骤S210-S220的过程。
步骤S240、调用大模型,综合执行完的各目标子任务的任务执行结果,生成答案回复。
具体地,通过prompt拼接各目标子任务的任务执行结果、目标子任务的任务内容及用户的问题请求,将拼接后的prompt送入大模型,得到大模型输出的答案回复。
本步骤中调用大模型生成答案回复的过程可以通过分析器实现。
结合图3,其示例了执行器、分析器各自的数据处理过程。
如图3所示,任务池用于存放用户的问题请求和对问题请求逐层级分解后的子任务。当任务被执行或者被分解为子任务后则该任务从任务池中删除。
执行器用于调用工具集执行任务,以及从任务池中取出需要分解的任务,并完成对该任务的分解过程,将分解后的子任务存入任务池。
分析器用于检查任务池中是否存在子任务,若存在,则触发执行器动作。此外,分析器还用于综合各目标子任务的任务执行结果,调用大模型生成答案回复。
本实施例提供的智能问答方法,基于大模型和预配置的分层级的工具集,通过递归分解任务的方式实现问答能力、准确率的极大提升,可以更好的适用于人机交互过程的智能问答场景。
下面对本申请实施例提供的智能问答装置进行描述,下文描述的智能问答装置与上文描述的智能问答方法可相互对应参照。
参见图4,图4为本申请实施例公开的一种智能问答装置结构示意图。
如图4所示,该装置可以包括:
请求接收单元11,用于接收用户的问题请求;
大模型调用单元12,用于调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具,其中,每一级分解后的子任务所依赖的工具,在所述分层级的工具集中,属于分解前的任务所依赖的工具的子集;
目标子任务筛选单元13,用于对于所述问题请求经各层级分解所得到的各所述子任务,从中筛选出目标子任务,所述目标子任务所依赖的工具在所述工具集中不存在子集;
目标子任务执行单元14,用于调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果;
答案生成单元15,用于综合各所述目标子任务的任务执行结果,生成所述问题请求对应的答案回复。
可选的,本申请实施例提供了上述大模型调用单元的两种可选的实现方式,其一,大模型调用单元的处理过程可以包括:
调用配置的人工智能大模型,向所述大模型输入第一提示指令prompt,以指示所述大模型基于所述工具集中第一层级的工具信息对所述问题请求进行分解,输出分解后的子任务及每一所述子任务所依赖的工具;
对于每一所述子任务,若所述子任务所依赖的工具在所述工具集中不存在子集,则停止对所述子任务继续分解;
若所述子任务所依赖的工具在所述工具集中存在子集,则迭代地调用所述大模型,每次调用所述大模型时向所述大模型输入第二提示指令prompt,以指示大模型基于当前层级的子任务所依赖的工具在所述工具集中的子集对当前层级的子任务继续分解,输出分解后的子任务及每一所述子任务所依赖的工具,直至分解后的子任务所依赖的工具在所述工具集中不存在子集为止停止调用所述大模型,得到各级分解后的子任务及其所依赖的工具。
其中,大模型调用单元向所述大模型输入第一提示指令prompt,以指示所述大模型基于所述工具集中第一层级的工具信息对所述问题请求进行分解,输出分解后的子任务及每一所述子任务所依赖的工具的过程,包括:
获取第一类型prompt格式模板,所述第一类型prompt格式模板包括第一任务指令、工具槽及问题槽,所述第一任务指令用于指示大模型按照所述工具槽内提供的工具信息,对所述问题槽内的问题请求进行分解,输出分解后的子任务及每一子任务所依赖的工具;
将所述分层级的工具集中第一层级的工具信息填充到所述工具槽,将所述问题请求填充到所述问题槽,得到第一提示指令prompt;
将所述第一提示指令prompt送入所述大模型,得到大模型输出的分解后的子任务及每一所述子任务所依赖的工具。
其中,大模型调用单元每次调用所述大模型时向所述大模型输入第二提示指令prompt,以指示大模型基于当前层级的子任务所依赖的工具在所述工具集中的子集对当前层级的子任务继续分解,输出分解后的子任务及每一所述子任务所依赖的工具的过程,包括:
获取所述第一类型prompt格式模板;
将当前层级的子任务所依赖的工具在所述工具集中的子集填充到所述工具槽,将所述当前层级的子任务填充到所述问题槽,得到第二提示指令prompt;
将所述第二提示指令prompt送入所述大模型,得到大模型输出的分解后的子任务及每一所述子任务所依赖的工具。
其二,大模型调用单元的处理过程可以包括:
调用配置的人工智能大模型,向所述大模型输入第三提示指令prompt,以指示所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在所述工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具。
其中,大模型调用单元向所述大模型输入第三提示指令prompt,以指示所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在所述工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具的过程,包括:
获取第二类型prompt格式模板,所述第二类型prompt格式模板包括第二任务指令、工具槽及问题槽,所述第二任务指令用于指示大模型按照所述工具槽内提供的分层级的工具集,对所述问题槽内的问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在所述工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具;
将所述分层级的工具集填充到所述工具槽,将所述问题请求填充到所述问题槽,得到第三提示指令prompt;
将所述第三提示指令prompt送入所述大模型,得到大模型输出的每一级分解后的子任务及其所依赖的工具。
进一步可选的,上述答案生成单元综合各所述目标子任务的任务执行结果,生成所述问题请求对应的答案回复的过程,包括:
调用所述大模型,以指示所述大模型结合所述问题请求分解后的各所述目标子任务,及所述目标子任务的执行结果,汇总生成所述问题请求对应的完整的答案回复。
可选的,上述答案生成单元调用所述大模型,以指示所述大模型结合所述问题请求分解后的各所述目标子任务,及所述目标子任务的执行结果,汇总生成所述问题请求对应的完整的答案回复的过程,包括:
获取第三类型prompt格式模板,所述第三类型prompt格式模板包括第三任务指令、问题槽、子任务槽及任务结果槽,所述第三任务指令用于指示大模型结合所述问题槽内的问题请求、所述子任务槽内分解后的各目标子任务及所述任务结果槽内各目标子任务的任务执行结果,汇总生成完整的答案回复;
将所述问题请求填充到所述问题槽,将所述目标子任务填充到所述子任务槽,将所述目标子任务的任务执行结果填充到所述任务结果槽,得到第四提示指令prompt;
将所述第四提示指令prompt送入所述大模型,得到大模型输出的答案回复。
可选的,上述目标子任务执行单元调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果的过程,包括:
按照所述目标子任务所依赖的工具执行时所需的字段信息,从所述问题请求中提取所述字段信息;
采用所述字段信息调用所述目标子任务所依赖的工具,以执行所述目标子任务得到任务执行结果。
可选的,上述大模型调用单元在通过所述大模型输出每一级分解后的子任务及其所依赖的工具的同时,还通过所述大模型提取所述问题请求中每一工具执行时所需的字段信息。在此基础上,上述目标子任务执行单元调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果的过程,包括:
采用所述目标子任务所依赖的工具执行时所需的字段信息调用对应的工具,以执行所述目标子任务得到任务执行结果。
可选的,所述工具集包括如下至少一种或多种类型工具:
知识库、关系型数据库、系统接口。
本申请实施例提供的智能问答装置可应用于智能问答设备,如手机、电脑、客服机器人、聊天机器人、服务器、云端等。可选的,图5示出了智能问答设备的硬件结构框图,参照图5,智能问答设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于实现本申请前述智能问答的各个步骤。
本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的程序,所述程序用于实现本申请前述智能问答的各个步骤。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本申请前述智能问答的各个步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种智能问答方法,其特征在于,包括:
接收用户的问题请求;
调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具,其中,每一级分解后的子任务所依赖的工具,在所述分层级的工具集中,属于分解前的任务所依赖的工具的子集;
对于所述问题请求经各层级分解所得到的各所述子任务,从中筛选出目标子任务,所述目标子任务所依赖的工具在所述工具集中不存在子集;
调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果;
综合各所述目标子任务的任务执行结果,生成所述问题请求对应的答案回复。
2.根据权利要求1所述的方法,其特征在于,调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具的过程,包括:
调用配置的人工智能大模型,向所述大模型输入第一提示指令prompt,以指示所述大模型基于所述工具集中第一层级的工具信息对所述问题请求进行分解,输出分解后的子任务及每一所述子任务所依赖的工具;
对于每一所述子任务,若所述子任务所依赖的工具在所述工具集中不存在子集,则停止对所述子任务继续分解;
若所述子任务所依赖的工具在所述工具集中存在子集,则迭代地调用所述大模型,每次调用所述大模型时向所述大模型输入第二提示指令prompt,以指示大模型基于当前层级的子任务所依赖的工具在所述工具集中的子集对当前层级的子任务继续分解,输出分解后的子任务及每一所述子任务所依赖的工具,直至分解后的子任务所依赖的工具在所述工具集中不存在子集为止停止调用所述大模型,得到各级分解后的子任务及其所依赖的工具。
3.根据权利要求1所述的方法,其特征在于,调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具的过程,包括:
调用配置的人工智能大模型,向所述大模型输入第三提示指令prompt,以指示所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在所述工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具。
4.根据权利要求2所述的方法,其特征在于,向所述大模型输入第一提示指令prompt,以指示所述大模型基于所述工具集中第一层级的工具信息对所述问题请求进行分解,输出分解后的子任务及每一所述子任务所依赖的工具的过程,包括:
获取第一类型prompt格式模板,所述第一类型prompt格式模板包括第一任务指令、工具槽及问题槽,所述第一任务指令用于指示大模型按照所述工具槽内提供的工具信息,对所述问题槽内的问题请求进行分解,输出分解后的子任务及每一子任务所依赖的工具;
将所述分层级的工具集中第一层级的工具信息填充到所述工具槽,将所述问题请求填充到所述问题槽,得到第一提示指令prompt;
将所述第一提示指令prompt送入所述大模型,得到大模型输出的分解后的子任务及每一所述子任务所依赖的工具。
5.根据权利要求4所述的方法,其特征在于,每次调用所述大模型时向所述大模型输入第二提示指令prompt,以指示大模型基于当前层级的子任务所依赖的工具在所述工具集中的子集对当前层级的子任务继续分解,输出分解后的子任务及每一所述子任务所依赖的工具的过程,包括:
获取所述第一类型prompt格式模板;
将当前层级的子任务所依赖的工具在所述工具集中的子集填充到所述工具槽,将所述当前层级的子任务填充到所述问题槽,得到第二提示指令prompt;
将所述第二提示指令prompt送入所述大模型,得到大模型输出的分解后的子任务及每一所述子任务所依赖的工具。
6.根据权利要求3所述的方法,其特征在于,向所述大模型输入第三提示指令prompt,以指示所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在所述工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具的过程,包括:
获取第二类型prompt格式模板,所述第二类型prompt格式模板包括第二任务指令、工具槽及问题槽,所述第二任务指令用于指示大模型按照所述工具槽内提供的分层级的工具集,对所述问题槽内的问题请求进行逐层级分解,分解过程每一级分解后的子任务所依赖的工具,在所述工具集中属于分解前的任务所依赖的工具的子集,输出每一级分解后的子任务及其所依赖的工具;
将所述分层级的工具集填充到所述工具槽,将所述问题请求填充到所述问题槽,得到第三提示指令prompt;
将所述第三提示指令prompt送入所述大模型,得到大模型输出的每一级分解后的子任务及其所依赖的工具。
7.根据权利要求1所述的方法,其特征在于,综合各所述目标子任务的任务执行结果,生成所述问题请求对应的答案回复的过程,包括:
调用所述大模型,以指示所述大模型结合所述问题请求分解后的各所述目标子任务,及所述目标子任务的执行结果,汇总生成所述问题请求对应的完整的答案回复。
8.根据权利要求7所述的方法,其特征在于,调用所述大模型,以指示所述大模型结合所述问题请求分解后的各所述目标子任务,及所述目标子任务的执行结果,汇总生成所述问题请求对应的完整的答案回复的过程,包括:
获取第三类型prompt格式模板,所述第三类型prompt格式模板包括第三任务指令、问题槽、子任务槽及任务结果槽,所述第三任务指令用于指示大模型结合所述问题槽内的问题请求、所述子任务槽内分解后的各目标子任务及所述任务结果槽内各目标子任务的任务执行结果,汇总生成完整的答案回复;
将所述问题请求填充到所述问题槽,将所述目标子任务填充到所述子任务槽,将所述目标子任务的任务执行结果填充到所述任务结果槽,得到第四提示指令prompt;
将所述第四提示指令prompt送入所述大模型,得到大模型输出的答案回复。
9.根据权利要求1所述的方法,其特征在于,调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果的过程,包括:
按照所述目标子任务所依赖的工具执行时所需的字段信息,从所述问题请求中提取所述字段信息;
采用所述字段信息调用所述目标子任务所依赖的工具,以执行所述目标子任务得到任务执行结果。
10.根据权利要求1所述的方法,其特征在于,在通过所述大模型输出每一级分解后的子任务及其所依赖的工具的同时,还通过所述大模型提取所述问题请求中每一工具执行时所需的字段信息;
则调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果的过程,包括:
采用所述目标子任务所依赖的工具执行时所需的字段信息调用对应的工具,以执行所述目标子任务得到任务执行结果。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述工具集包括如下至少一种或多种类型工具:
知识库、关系型数据库、系统接口。
12.一种智能问答装置,其特征在于,包括:
请求接收单元,用于接收用户的问题请求;
大模型调用单元,用于调用配置的人工智能大模型,以通过所述大模型基于设置的分层级的工具集,对所述问题请求进行逐层级分解,并输出每一级分解后的子任务及其所依赖的工具,其中,每一级分解后的子任务所依赖的工具,在所述分层级的工具集中,属于分解前的任务所依赖的工具的子集;
目标子任务筛选单元,用于对于所述问题请求经各层级分解所得到的各所述子任务,从中筛选出目标子任务,所述目标子任务所依赖的工具在所述工具集中不存在子集;
目标子任务执行单元,用于调用所述目标子任务所依赖的工具,执行所述目标子任务得到任务执行结果;
答案生成单元,用于综合各所述目标子任务的任务执行结果,生成所述问题请求对应的答案回复。
13.一种智能问答设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1~11中任一项所述的智能问答方法的各个步骤。
14.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1~11中任一项所述的智能问答方法的各个步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~11中任一项所述的智能问答方法的各个步骤。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118132721A true CN118132721A (zh) | 2024-06-04 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347783B2 (en) | Implementing a software action based on machine interpretation of a language input | |
Bocklisch et al. | Rasa: Open source language understanding and dialogue management | |
US20190272269A1 (en) | Method and system of classification in a natural language user interface | |
US9305050B2 (en) | Aggregator, filter and delivery system for online context dependent interaction, systems and methods | |
US11775254B2 (en) | Analyzing graphical user interfaces to facilitate automatic interaction | |
CN115485690A (zh) | 用于处置聊天机器人的不平衡训练数据的分批技术 | |
CN115398437A (zh) | 改进的域外(ood)检测技术 | |
CN112671886B (zh) | 基于边缘计算和人工智能的信息推送方法及大数据服务器 | |
WO2022252636A1 (zh) | 基于人工智能的回答生成方法、装置、设备及存储介质 | |
Kong et al. | Conversational AI with Rasa: Build, test, and deploy AI-powered, enterprise-grade virtual assistants and chatbots | |
CN117296058A (zh) | 作为简单有效的对抗攻击方法的变体不一致攻击(via) | |
Vishwakarma et al. | A review & comparative analysis on various chatbots design | |
Aattouri et al. | Modeling of an artificial intelligence based enterprise callbot with natural language processing and machine learning algorithms | |
CN113627194A (zh) | 信息抽取方法及装置、通信消息分类方法及装置 | |
WO2022047465A1 (en) | Conversational syntax using constrained natural language processing for accessing datasets | |
Pais et al. | Unsupervised assistive and adaptive intelligent agent in smart environment | |
CN118132721A (zh) | 智能问答方法、装置、相关设备及计算机程序产品 | |
Torres-Cruz et al. | Evaluation of Performance of Artificial Intelligence System during Voice Recognition in Social Conversation | |
CN112579733A (zh) | 规则匹配方法、规则匹配装置、存储介质及电子设备 | |
RU2759090C1 (ru) | Способ управления диалогом и система понимания естественного языка в платформе виртуальных ассистентов | |
CN117235236B (zh) | 对话方法、装置、计算机设备和存储介质 | |
US20240126795A1 (en) | Conversational document question answering | |
Phatangare et al. | AI-Powered News Web App | |
CN117453885A (zh) | 提问信息处理方法、装置、设备、存储介质及产品 | |
CN117193738A (zh) | 应用搭建方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |