本公开涉及数据库,特别是涉及一种结构化查询语句的生成方法、数据库交互方法及其装置。
背景技术:
1、当前大量信息以结构化或半结构化的形式存储在数据库中。对于这类数据的分析和获取需要通过结构化查询语言(structured query language,sql)与数据库进行交互操作,但sql的使用难度限制了非技术用户,给数据分析和使用带来了较高的门槛。
2、为了降低用户(特别是非技术用户)与数据库的交互门槛,诞生了nl2sql任务。
3、nl2sql是指将数据库领域下的自然语言(natural language,nl)问题,转化为在关系型数据库中可以执行的sql语句。
4、图1是示出了基于大语言模型的nl2sql任务生成prompt的一般流程示意图。参见图1,首先针对用户以自然语言形式做出的问题(即query),会在候选样例集中选取合适的候选样例,然后将问题和选出来的候选样例一起拼到prompt的模板中,生成的模板再一起输入到大语言模型中,让大语言模型生成对于某个数据库的问题对应的sql语句。
5、从候选样例集中召回合适的候选样例,可以有效扩充大语言模型推理时的prompt,进而提升nl2sql最终生成的sql语句的准确性。
6、因此,需要一种能够提升候选样例召回质量的nl2sql方案。
技术实现思路
1、本公开要解决的一个技术问题是,如何设计一种能够提升候选样例召回质量的nl2sql方案。
2、根据本公开的第一个方面,提供了一种结构化查询语句的生成方法,包括:获取针对数据库的自然语言形式的提问语句;获取所述提问语句的第一骨架信息和关键词信息;基于所述第一骨架信息、候选样例集中各个候选样例的第二骨架信息,从所述候选样例集中召回第一数量个候选样例,所述候选样例集包括多个候选样例,所述候选样例由提问示例和对应的结构化查询语句组成;基于所述关键词信息从所述候选样例集中召回第二数量个候选样例;基于所述提问语句、所述第一数量个候选样例中的至少部分候选样例以及所述第二数量个候选样例中的至少部分候选样例,生成第一输入提示,将所述第一输入提示输入第一生成式模型,得到所述第一生成式模型输出的与所述提问语句对应的结构化查询语句。
3、可选地,所述第一骨架信息包括第一提问骨架和第一结构化查询语句骨架;所述第二骨架信息包括第二提问骨架和第二结构化查询语句骨架。
4、可选地,基于所述第一骨架信息、候选样例集中各个候选样例的第二骨架信息,从所述候选样例集中召回第一数量个候选样例,包括:基于所述第二提问骨架与所述第一提问骨架之间的第一相似度,从所述候选样例集中召回第一相似度排名靠前的第三数量个候选样例;基于所述第二结构化查询语句骨架与所述第一结构化查询语句骨架之间的第二相似度,从所述第三数量个候选样例中召回第二相似度排名靠前的第一数量个候选样例,所述第三数量大于所述第一数量。
5、可选地,基于所述第一骨架信息、候选样例集中各个候选样例的第二骨架信息,从所述候选样例集中召回第一数量个候选样例,包括:基于所述第二提问骨架与所述第一提问骨架之间的第一相似度,以及所述第二结构化查询语句骨架与所述第一结构化查询语句骨架之间的第二相似度,确定所述候选样例的第三相似度,所述第三相似度为所述第一相似度与所述第二相似度的加权平均结果;从所述候选样例集中召回第三相似度排名靠前的第一数量个候选样例。
6、可选地,获取所述提问语句的第一骨架信息和关键词信息,包括:基于所述提问语句生成第二输入提示,将所述第二输入提示输入第二生成式模型,得到所述第二生成式模型输出的第一提问骨架和关键词信息;基于所述第一提问骨架生成第三输入提示,将所述第三输入提示输入第三生成式模型,得到所述第三生成式模型输出的与所述第一提问骨架对应的第一结构化查询语句骨架。
7、可选地,基于所述关键词信息从候选样例集中召回第二数量个候选样例,包括:基于所述候选样例与所述关键词信息之间的第四相似度,从所述候选样例集中召回第四相似度排名靠前的第四数量个候选样例;基于所述候选样例与所述提问信息之间的第五相似度,从所述第四数量个候选样例中召回第五相似度排名靠前的第二数量个候选样例,所述第四数量大于所述第二数量。
8、可选地,基于所述关键词信息从候选样例集中召回第二数量个候选样例,包括:基于所述候选样例与所述关键词信息之间的第四相似度,以及所述候选样例与所述提问信息之间的第五相似度,确定所述候选样例的第六相似度,所述第六相似度为所述第四相似度与所述第五相似度的加权平均结果;从所述候选样例集中召回第六相似度排名靠前的第二数量个候选样例。
9、可选地,该方法还包括:针对所述候选样例集中的各个候选样例,获取所述候选样例的第二骨架信息;基于所述候选样例和所述第二骨架信息构造骨架候选样例集,所述骨架候选样例集包括所述多个候选样例以及各个所述候选样例的第二骨架信息,基于所述第一骨架信息、候选样例集中各个候选样例的第二骨架信息,从所述候选样例集中召回第一数量个候选样例,包括:基于所述第一骨架信息从所述骨架候选样例集中召回第一数量个候选样例。
10、可选地,基于所述提问语句、所述第一数量个候选样例中的至少部分候选样例以及所述第二数量个候选样例中的至少部分候选样例,生成第一输入提示,包括:将所述提问语句、所述第一数量个候选样例以及所述第二数量个候选样例填充到输入提示模板,得到所述第一输入提示。
11、根据本公开的第二个方面,提供了一种数据库交互方法,包括:获取用户输入的针对数据库的自然语言形式的提问语句;获取与所述提问语句对应的结构化查询语句,所述结构化查询语句是利用上文第一个方面所述的方法得到的;针对所述数据库执行所述结构化查询语句,得到与所述提问语句对应的应答信息;输出所述应答信息。
12、根据本公开的第三个方面,提供了一种结构化查询语句的生成装置,包括:第一获取模块,用于获取针对数据库的自然语言形式的提问语句;第二获取模块,用于获取所述提问语句的第一骨架信息和关键词信息;第一召回模块,用于基于所述第一骨架信息、候选样例集中各个候选样例的第二骨架信息,从所述候选样例集中召回第一数量个候选样例,所述候选样例集包括多个候选样例,所述候选样例由提问示例和对应的结构化查询语句组成;第二召回模块,用于基于所述关键词信息从所述候选样例集中召回第二数量个候选样例;生成模块,用于基于所述提问语句、所述第一数量个候选样例中的至少部分候选样例以及所述第二数量个候选样例中的至少部分候选样例,生成第一输入提示,将所述第一输入提示输入第一生成式模型,得到所述第一生成式模型输出的与所述提问语句对应的结构化查询语句。
13、可选地,所述第一骨架信息包括第一提问骨架和第一结构化查询语句骨架;所述第二骨架信息包括第二提问骨架和第二结构化查询语句骨架。
14、可选地,所述第一召回模块基于所述第二提问骨架与所述第一提问骨架之间的第一相似度,从所述候选样例集中召回第一相似度排名靠前的第三数量个候选样例;所述第一召回模块基于所述第二结构化查询语句骨架与所述第一结构化查询语句骨架之间的第二相似度,从所述第三数量个候选样例中召回第二相似度排名靠前的第一数量个候选样例,所述第三数量大于所述第一数量。
15、可选地,所述第一召回模块基于所述第二提问骨架与所述第一提问骨架之间的第一相似度,以及所述第二结构化查询语句骨架与所述第一结构化查询语句骨架之间的第二相似度,确定所述候选样例的第三相似度,所述第三相似度为所述第一相似度与所述第二相似度的加权平均结果;所述第一召回模块从所述候选样例集中召回第三相似度排名靠前的第一数量个候选样例。
16、可选地,所述第二获取模块基于所述提问语句生成第二输入提示,将所述第二输入提示输入第二生成式模型,得到所述第二生成式模型输出的第一提问骨架和关键词信息;所述第二获取模块基于所述第一提问骨架生成第三输入提示,将所述第三输入提示输入第三生成式模型,得到所述第三生成式模型输出的与所述第一提问骨架对应的第一结构化查询语句骨架。
17、可选地,所述第二召回模块基于所述候选样例与所述关键词信息之间的第四相似度,从所述候选样例集中召回第四相似度排名靠前的第四数量个候选样例;所述第二召回模块基于所述候选样例与所述提问信息之间的第五相似度,从所述第四数量个候选样例中召回第五相似度排名靠前的第二数量个候选样例,所述第四数量大于所述第二数量。
18、可选地,所述第二召回模块基于所述候选样例与所述关键词信息之间的第四相似度,以及所述候选样例与所述提问信息之间的第五相似度,确定所述候选样例的第六相似度,所述第六相似度为所述第四相似度与所述第五相似度的加权平均结果;所述第二召回模块从所述候选样例集中召回第六相似度排名靠前的第二数量个候选样例。
19、可选地,该装置还包括:第三获取模块,用于针对所述候选样例集中的各个候选样例,获取所述候选样例的第二骨架信息;构造模块,用于基于所述候选样例和所述第二骨架信息构造骨架候选样例集,所述骨架候选样例集包括所述多个候选样例以及各个所述候选样例的第二骨架信息,所述第一召回模块基于所述第一骨架信息从所述骨架候选样例集中召回第一数量个候选样例。
20、可选地,所述生成模块将所述提问语句、所述第一数量个候选样例以及所述第二数量个候选样例填充到输入提示模板,得到所述第一输入提示。
21、根据本公开的第四个方面,提供了一种数据库交互装置,包括:第四获取模块,用于获取用户输入的针对数据库的自然语言形式的提问语句;第五获取模块,用于获取与所述提问语句对应的结构化查询语句,所述结构化查询语句是利用上文第一个方面所述的方法得到的;第六获取模块,用于针对所述数据库执行所述结构化查询语句,得到与所述提问语句对应的应答信息;输出模块,用于输出所述应答信息。
22、根据本公开的第五个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一个方面或第二个方面所述的方法。
23、根据本公开的第六个方面,提供了一种计算机程序产品,包括可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上述第一个方面或第二个方面所述的方法。
24、根据本公开的第七个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一个方面或第二个方面所述的方法。
25、由此,本公开通过利用提问语句的第一骨架信息和关键词信息这两方面的信息分别对候选样例集进行召回,使得基于这两部分的召回结果能够更好地扩充生成式模型推理时所依据的prompt(提示词),从而使生成式模型能够更好的将自然问句转成sql语句。
1.一种结构化查询语句的生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,
3.根据权利要求2所述的方法,其特征在于,基于所述第一骨架信息、候选样例集中各个候选样例的第二骨架信息,从所述候选样例集中召回第一数量个候选样例,包括:
4.根据权利要求2所述的方法,其特征在于,基于所述第一骨架信息、候选样例集中各个候选样例的第二骨架信息,从所述候选样例集中召回第一数量个候选样例,包括:
5.根据权利要求1所述的方法,其特征在于,基于所述关键词信息从候选样例集中召回第二数量个候选样例,包括:
6.根据权利要求1所述的方法,其特征在于,基于所述关键词信息从候选样例集中召回第二数量个候选样例,包括:
7.一种数据库交互方法,其特征在于,包括:
8.一种结构化查询语句的生成装置,其特征在于,包括:
9.一种计算设备,包括:
10.一种计算机程序产品,包括可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任何一项所述的方法。
