基于智能体的问答方法、装置、设备、介质及程序产品与流程

摘要: 本技术涉及自然语言处理,尤其涉及一种基于智能体的问答方法、装置、设备、介质及程序产品。背景技术:1、随着科技的发展,大语言模型随之出现,人们能够将问题和文档输入...
基于智能体的问答方法、装置、设备、介质及程序产品与流程

本技术涉及自然语言处理,尤其涉及一种基于智能体的问答方法、装置、设备、介质及程序产品。

背景技术:

1、随着科技的发展,大语言模型随之出现,人们能够将问题和文档输入至大语言模型,由大语言模型进行推理,得到回答。为了提高回答的准确性,可通过检索增强生成(retrieval augmented generation,简称:rag)技术进行问答。

2、现有技术中,rag技术通常将用户输入的问题和文档中的文本片段转换为向量,进而根据向量来检索与问题语义相似的文本片段,进而将文本片段与用户输入的问题组合成提示词,将提示词输入至大语言模型,得到回答。

3、然而,在存在复杂问题或多轮问答时,rag技术所得到的文本片段不准确,进而导致回答与问题的匹配性较低。

技术实现思路

1、本技术实施例提供的基于智能体的问答方法、装置、设备、介质及程序产品,用以解决现有技术中采用rag技术进行问答,在存在复杂问题或多轮问答时,导致的回答与问题的匹配性较低的问题。

2、第一方面,本技术实施例提供一种基于智能体的问答方法,包括:

3、获取用户当前问题、历史对话、至少一个参考文档,以及每个参考文档的摘要和标题;

4、根据所述用户当前问题、所述历史对话、每个参考文档的标题,以及任务规划智能体,进行问题拆解和任务规划处理,得到任务依赖关系有向无环图,以及所述任务依赖关系有向无环图中每个任务的子问题和任务类型;

5、对于每个任务,根据所述任务依赖关系有向无环图,确定出所述任务的触发条件成立时,根据所述任务的子问题和任务类型,确定所述任务的提示词,并将所述任务的提示词输入至所述任务类型对应的智能体,得到所述任务的任务执行结果,所述触发条件用于指示所述任务依赖的任务均已完成或指示所述任务为所有任务中最先执行的;

6、输出出度为0的任务的任务执行结果,所述任务执行结果包括所述用户当前问题对应的回答。

7、在一种可能的实施方式中,所述根据所述用户当前问题、所述历史对话、每个参考文档的标题,以及任务规划智能体,进行问题拆解和任务规划处理,得到任务依赖关系有向无环图,以及所述任务依赖关系有向无环图中每个任务的子问题和任务类型,包括:

8、根据所述用户当前问题、所述历史对话、每个参考文档的标题,以及预设规划提示词模板,生成规划提示词;

9、将所述规划提示词,输入至所述任务规划智能体,得到所述任务依赖关系有向无环图,以及所述任务依赖关系有向无环图中每个任务的子问题和任务类型。

10、在一种可能的实施方式中,对于入度为0的每个任务,所述任务的触发条件为所述任务依赖关系有向无环图已生成;

11、对于入度不为0的每个任务,所述任务的触发条件为得到所述任务依赖的所有任务的任务执行结果。

12、在一种可能的实施方式中,每个任务的任务类型为文档筛选任务、文本检索任务或问答生成任务;

13、所述根据所述任务的子问题和任务类型,确定所述任务的提示词,包括:

14、若所述任务的任务类型为文档筛选任务,且所述任务的入度为0,则根据所述任务的子问题、所有参考文档,以及第一预设筛选提示词模板,生成所述提示词;

15、若所述任务的任务类型为文档筛选任务,且所述任务的入度不为0,则根据所述任务的子问题、所述任务依赖的任务的任务执行结果中的文档,以及第二预设筛选提示词模板,生成所述提示词;

16、若所述任务的任务类型为文本检索任务,则根据所述任务的子问题、所述任务依赖的任务的任务执行结果中的文档和文档摘要,以及预设检索提示词模板,生成所述提示词;

17、若所述任务的任务类型为问答生成任务,则根据所述任务的子问题、所述任务依赖的任务的任务执行结果,以及预设问答提示词模板,生成所述提示词。

18、在一种可能的实施方式中,对于任务类型为文本检索任务的每个任务,所述任务对应的智能体包括第一检索智能体和第二检索智能体;

19、所述第一检索智能体用于根据所述任务的提示词,确定出检索方法类型,并根据所述检索方法类型和所述提示词,生成检索提示词;所述检索方法类型为摘要汇总、向量检索和段落抽取中的至少一个;

20、所述第二检索智能体用于根据所述检索提示词,生成所述任务的任务执行结果。

21、在一种可能的实施方式中,所述任务依赖关系有向无环图中出度为0的任务的数量为1;

22、对于任务类型为问答生成任务的每个任务,所述任务依赖的任务的任务类型为文档筛选任务、文本检索任务或问答生成任务;

23、对于任务类型为文本检索任务的每个任务,所述任务依赖的任务的任务类型为文档筛选任务;

24、对于任务类型为文档筛选任务,且具有依赖的任务的每个任务,所述任务依赖的任务的任务类型为文档筛选任务。

25、在一种可能的实施方式中,所述将所述任务的提示词输入至所述任务类型对应的智能体,得到所述任务的任务执行结果之后,所述方法还包括:

26、根据所述任务的子问题和任务执行结果,以及第一校验智能体,生成所述任务的第一校验结果,所述第一校验结果用于指示任务执行结果与子问题是否匹配;

27、若所述第一校验结果指示执行结果与子问题不匹配,则对所述子问题进行更新;

28、根据更新后的子问题和所述任务的任务类型,确定更新后的提示词;

29、将更新后的提示词输入至所述任务类型对应的智能体,得到新的任务执行结果;

30、重复上述步骤,直至第一校验结果指示执行结果与子问题匹配,保存新的任务执行结果。

31、在一种可能的实施方式中,所述将所述任务的提示词输入至所述任务类型对应的智能体,得到所述任务的任务执行结果之后,所述方法还包括:

32、根据所述用户当前问题和所述任务的任务执行结果,以及第二校验智能体,生成所述任务的第二校验结果,所述第二校验结果用于指示任务执行结果与用户当前问题是否匹配;

33、若所述第二校验结果指示执行结果与用户当前问题不匹配,则根据已得到任务执行结果的任务,对所述任务依赖关系有向无环图进行局部更新。

34、第二方面,本技术实施例提供一种基于智能体的问答装置,包括:

35、获取模块,用于获取用户当前问题、历史对话、至少一个参考文档,以及每个参考文档的摘要和标题;

36、处理模块,用于:

37、根据所述用户当前问题、所述历史对话、每个参考文档的标题,以及任务规划智能体,进行问题拆解和任务规划处理,得到任务依赖关系有向无环图,以及所述任务依赖关系有向无环图中每个任务的子问题和任务类型;

38、对于每个任务,根据所述任务依赖关系有向无环图,确定出所述任务的触发条件成立时,根据所述任务的子问题和任务类型,确定所述任务的提示词,并将所述任务的提示词输入至所述任务类型对应的智能体,得到所述任务的任务执行结果,所述触发条件用于指示所述任务依赖的任务均已完成或指示所述任务为所有任务中最先执行的;

39、输出模块,用于输出出度为0的任务的任务执行结果,所述任务执行结果包括所述用户当前问题对应的回答。

40、第三方面,本技术实施例提供一种电子设备,包括:

41、处理器,存储器,通信接口;

42、所述存储器用于存储所述处理器的可执行指令;

43、其中,所述处理器配置为经由执行所述可执行指令来执行第一方面任一项所述的基于智能体的问答方法。

44、第四方面,本技术实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的基于智能体的问答方法。

45、第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时用于实现第一方面任一项所述的基于智能体的问答方法。

46、本技术实施例提供的基于智能体的问答方法、装置、设备、介质及程序产品,通过根据用户当前问题、历史对话、每个参考文档的标题,以及任务规划智能体,进行问题拆解和任务规划处理,得到任务依赖关系有向无环图,以及任务依赖关系有向无环图中每个任务的子问题和任务类型;进而根据任务依赖关系有向无环图,确定出任务的触发条件成立时,根据任务的子问题和任务类型,确定任务的提示词,并将任务的提示词输入至任务类型对应的智能体,得到任务的任务执行结果,最后输出出度为0的任务的任务执行结果,任务执行结果包括用户当前问题对应的回答。本方案通过根据历史对话和参考文档的标题,将用户当前问题拆解为多个子问题,并结合任务类型,依次执行任务依赖关系有向无环图中每个子问题对应的任务,提高了回答与用户当前问题的匹配性。