掌桥专利:专业的专利平台
掌桥专利
首页

SQL语句生成能力的评估方法、数据查询方法及装置

文献发布时间:2024-04-18 20:00:50


SQL语句生成能力的评估方法、数据查询方法及装置

技术领域

本发明涉及数据处理技术领域,尤其涉及一种SQL语句生成能力的评估方法、数据查询方法及装置。

背景技术

在数字化时代,数据越来越重要,不管是企业内部、还是政府内部,日常工作都需要经常需要查询实时数据,用于进行市场分析、工作报告、决策制定等,当前企业、政务内部查数,每次需求都不一样,都要依托技术人员根据用数需求重新梳理数据库表关系,对数据进行分析输出源数据后,业务部门根据该数据再生产对应报表用于分析和决策。然而,这个个过程存在技术人员不懂业务、人力投入大、沟通成本高、耗时长、需求变化频繁等问题。

随着人工智能和大数据技术的发展,大模型在越来越多的领域得到了广泛的应用。其中,大语言模型在处理海量数据和复杂任务方面具有一定的优势,尤其在text-to-SQL(文本生成SQL语句)能力方面,可以大大提高数据库查询效率和准确率。在文本生成SQL能力方面,大语言模型也展现出了显著的优势。利用大模型,可以将自然语言文本自动转换为SOL语句,大大提高了数据库查询效率和准确率。这种文本生成SOL能力为大语言模型在信息检索问答系统等应用场景中提供了极大的便利。

如何自动地、准确全面地评估大语言模型在文本生成SQL方面的能力,是一个亟需解决的问题。

发明内容

本发明实施例提供一种SQL语句生成能力的评估方法,能够对大语言模型的text-to-SQL生成能力进行准确,全面的评估。

本申请一实施例提供了一种SQL语句生成能力的评估方法,包括:获取若干待验证查询问题以及所述待验证查询问题对应的目标SQL语句;

将每一所述待验证查询问题输入至待评估大语言模型中,以使所述待评估大语言模型根据每一所述待验证查询问题,生成对应的预测SQL语句;

对于每一待验证查询问题,根据所述目标SQL语句执行第一数据查询操作,并采集执行第一数据查询操作时所对应的第一SQL执行计划、第一SQL执行结果、第一执行耗时、第一资源使用情况以及第一慢查询日志;根据所述预测SQL语句执行第二数据查询操作,并采集执行第二数据查询操作时所对应的第二SQL执行计划、第二SQL执行结果、第二执行耗时、第二资源使用情况以及第二慢查询日志;

根据所述目标SQL语句与所述预测SQL语句之间的相似度,计算SQL精准度指标的指标值;根据所述第一SQL执行结果以及所述第二SQL执行结果之间的一致性,计算sql结果一致性指标的指标值;根据所述第一SQL执行计划以及所述第二SQL执行计划计算sql复杂度指标的指标值;根据所述第一执行耗时、第一资源使用情况、第一慢查询日志、第二执行耗时、第二资源使用情况以及第二慢查询日志计算sql执行效率指标的指标值;

根据各所述SQL精准度指标的指标值、各所述sql结果一致性指标的指标值、各所述sql复杂度指标的指标值以及各所述sql执行效率指标的指标值,计算用于表征待评估大语言模型的SQL语句生成能力的评估值,得到所述待评估大语言模型的SQL语句生成能力评估结果。

进一步的,所述根据所述目标SQL语句与所述预测SQL语句之间的相似度,构建SQL精准度指标的指标值,包括:

将所述目标SQL语句转换为词向量,生成第一词向量;

将所述预测SQL语句转换为词向量,生成第二词向量;

计算所述第一词向量和所述第二词向量的余弦相似度,得到所述目标SQL语句与所述预测SQL语句之间的相似度;

将所述相似度作为所述SQL精准度指标的指标值。

进一步的,所述第一执行结果,包括执行第一数据查询操作后所返回的第一数据字段集合,以及第一数据行内容;所述第二执行结果,包括执行第二数据查询操作后所返回的第二数据字段集合,以及第二数据行内容;

所述根据所述第一SQL执行结果以及所述第二SQL执行结果之间的一致性,构建sql结果一致性指标的指标值,包括:

通过以下公式计算用于表征所述第一数据字段集合与所述第二数据字段集合之间的一致性的第一数值:

通过以下公式计算用于表征所述第一数据行内容与所述第二数据行之间的一致性的第二数值:

计算所述第一数值与所述第二数值的平均值;

将所述平均值作为所述sql结果一致性指标的指标值;

其中,A为第一数据字段集合;B为第二数据字段集合;G为第一数据行内容;H为第二数据行内容。

进一步的,所述第一SQL执行计划以及所述第二SQL执行计划以树形结构进行展示,树形结构的每一行用于展示对应执行计划中的一子操作的ID,且每一行对应一预设耗费成本;

所述根据所述第一SQL执行计划以及所述第二SQL执行计划构建sql复杂度指标的指标值,包括:

根据所述第一SQL执行计划所对应的树形结构中的行数以及每一行的预设耗费成本,计算所述第一SQL执行计划的总耗费成本;

根据所述第二SQL执行计划所对应的树形结构中的行数以及每一行的预设耗费成本,计算所述第二SQL执行计划的总耗费成本;

计算所述第一SQL执行计划的总耗费成本以及所述第二SQL执行计划的总耗费成本之间的比值,将所述比值作为所述sql复杂度指标的指标值。

进一步的,所述第一资源使用情况以及所述第二资源使用情况均包括:CPU使用时间、IO读写时间以及内存占用大小;

所述根据所述第一执行耗时、第一资源使用情况、第一慢查询日志、第二执行耗时、第二资源使用情况以及第二慢查询日志计算sql执行效率指标的指标值,包括:

根据所述第一资源使用情况所对应的CPU使用时间、IO读写时间以及内存占用大小,计算第一资源使用值;

根据所述第二资源使用情况所对应的CPU使用时间、IO读写时间以及内存占用大小,计算第二资源使用值;

通过以下公式计算所述sql执行效率指标的指标值:

其中,T为第一执行耗时,S为第一资源使用值,R为第一慢查询日志的扫描行数,t为第二执行耗时,s为第二资源使用值,r为第二慢查询日志的扫描行数。

进一步的,根据各所述SQL精准度指标的指标值、各所述sql结果一致性指标的指标值、各所述sql复杂度指标的指标值以及各所述sql执行效率指标的指标值,计算用于表征待评估大语言模型的SQL语句生成能力的评估值,包括:

通过以下公式计算所述用于表征待评估大语言模型的SQL语句生成能力的评估值:

其中,M

在上述方法项实施例的基础上,本发明对应提供了装置项实施例;

本发明一实施例提供了一种SQL语句生成能力的评估装置,包括:数据获取模块、预测SQL语句生成模块、查询模块、指标计算模块以及评估值确定模块;

所述数据获取模块,用于获取若干待验证查询问题以及所述待验证查询问题对应的目标SQL语句;

所述预测SQL语句生成模块,用于将每一所述待验证查询问题输入至待评估大语言模型中,以使所述待评估大语言模型根据每一所述待验证查询问题,生成对应的预测SQL语句;

所述查询模块,用于对于每一待验证查询问题,根据所述目标SQL语句执行第一数据查询操作,并采集执行第一数据查询操作时所对应的第一SQL执行计划、第一SQL执行结果、第一执行耗时、第一资源使用情况以及第一慢查询日志;根据所述预测SQL语句执行第二数据查询操作,并采集执行第二数据查询操作时所对应的第二SQL执行计划、第二SQL执行结果、第二执行耗时、第二资源使用情况以及第二慢查询日志;

所述指标计算模块,用于根据所述目标SQL语句与所述预测SQL语句之间的相似度,计算SQL精准度指标的指标值;根据所述第一SQL执行结果以及所述第二SQL执行结果之间的一致性,计算sql结果一致性指标的指标值;根据所述第一SQL执行计划以及所述第二SQL执行计划计算sql复杂度指标的指标值;根据所述第一执行耗时、第一资源使用情况、第一慢查询日志、第二执行耗时、第二资源使用情况以及第二慢查询日志计算sql执行效率指标的指标值;

所述评估模块,用于根据各所述SQL精准度指标的指标值、各所述sql结果一致性指标的指标值、各所述sql复杂度指标的指标值以及各所述sql执行效率指标的指标值,计算用于表征待评估大语言模型的SQL语句生成能力的评估值,得到所述待评估大语言模型的SQL语句生成能力评估结果。

对应的本发明一实施例提供了一种数据查询方法,包括:根据本发明任意一项实施例所述SQL语句生成能力的评估方法,对若干待选定大语言模型进行评估,确定每一待选定大语言模型的SQL语句生成能力评估结果;

根据每一待选定大语言模型的SQL语句生成能力评估结果,将评估值最大的待选定大语言模型,作为选定大语言模型;

将以自然语言表述的待查询问题输入至所述选定大语言模型中,生成所述待查询问题所对应的SQL语句;

根据所述待查询问题所对应的SQL语句进行数据查询。

对应的,本发明一实施例提供了一种数据查询装置,包括:评估模块、模型选定模块、SQL语句生成模块以及数据查询模块;

所述评估模块,用于根据本发明任意一项实施例所述SQL语句生成能力的评估方法,对若干待选定大语言模型进行评估,确定每一待选定大语言模型的SQL语句生成能力评估结果;

所述模型选定模块,用于根据每一待选定大语言模型的SQL语句生成能力评估结果,将评估值最大的待选定大语言模型,作为选定大语言模型;

所述SQL语句生成模块,用于将以自然语言表述的待查询问题输入至所述选定大语言模型中,生成所述待查询问题所对应的SQL语句;

所述数据查询模块,用于根据所述待查询问题所对应的SQL语句进行数据查询。

通过实施本发明实施例具有如下有益效果:

本发明实施例提供了一种SQL语句生成能力的评估方法、数据查询方法及装置,所述SQL语句生成能力的评估方法通过比对目标SQL语句与大语言模型的预测SQL语句之间的相似度,计算出SQL精准度指标的指标值,通过目标SQL语句与预测SQL语句各自所对应的执行结果,计算sql结果一致性指标的指标值;根据目标SQL语句与预测SQL语句各自所对应的执行计划,计算sql复杂度指标的指标值;根据目标SQL语句与预测SQL语句各自所对应的执行耗时、资源使用情况以及慢查询日志计算sql执行效率指标的指标值;最终根据上述四个指标值对大语言模型的SQL语句生成能力进行评估,通过本发明可以对大语言模型自动生成SQL的能力从准确性、可靠性以及高效性进行一个多维度的量化评估。

附图说明

图1是本发明一实施例提供的SQL语句生成能力的评估方法的流程示意图。

图2是本发明一实施例提供的SQL语句生成能力的评估方法的又一流程示意图。

图3是本发明一实施例提供的评估指标模型的示意图;

图4是本发明一实施例提供的SQL语句生成能力的评估装置的结构示意图;

图5是本发明一实施例提供的一种数据查询方法的流程示意图;

图6是本发明一实施例提供的一种数据查询装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。

在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在本申请实施例的描述中,术语“多个”指的是两个以上(包括两个),同理,“多组”指的是两组以上(包括两组),“多片”指的是两片以上(包括两片)。

在本申请实施例的描述中,除非另有明确的规定和限定,技术术语“安装”“相连”“连接”“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;也可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请实施例中的具体含义。

以下通过几个具体的实施例对本发明进行说明;

如图1所示,本发明一实施例提供了一种SQL语句生成能力的评估方法,至少包括如下步骤:

步骤S1:获取若干待验证查询问题以及所述待验证查询问题对应的目标SQL语句;

具体的,首先获取一预设的目标数据库,包括数据库类型、数据库名称、数据表结构、数据库连接信息;针对该目标数据库设计用自然语言表述的待验证查询问题与该问题目标SQL语句,以此形成一个问答对。其中,上述待验证查询问题由人工涉及,也可以通过query_generators工具模块自动生成;另外,目标SQL语句为针对待验证问题人工设计的准确SQL语句,这个过程需要人工接入,只需要少量的人工参与设计几个问答对用于验证即可。

步骤S2:将每一所述待验证查询问题输入至待评估大语言模型中,以使所述待评估大语言模型根据每一所述待验证查询问题,生成对应的预测SQL语句;

在一个可选的实施例中,可直接获取一个或多个已经训练完毕的待评估大语言模型,然后将各个待验证查询问题,逐一输入至各待评估大语言模型中,以使各待评估大语言模型,生成对应的预测SQL语句。

此外,如图2所示,在另一些可选的实施例中,根据模型的配置信息,自动加载一个或多个大语言模型,并进行初始化;紧接着,根据步骤S1中所收集的目标数据库的信息,通过自然语言理解,一方面是学习数据库内容,包括数据库表结构、表之间关系等信息,另一方面是利用embedding模型推理出提前准备好的待验证查询问题所需要的数据库表。把两个内容根据算法形成prompt提示工程内容。紧接着,对提前准备好的待验证查询问题列表进行逐一执行,待验证的大模型通过理解问题,推理并确定数据表后,生产预测SQL语句,完成text-to-sql的操作。

步骤S3:对于每一待验证查询问题,根据所述目标SQL语句执行第一数据查询操作,并采集执行第一数据查询操作时所对应的第一SQL执行计划、第一SQL执行结果、第一执行耗时、第一资源使用情况以及第一慢查询日志;根据所述预测SQL语句执行第二数据查询操作,并采集执行第二数据查询操作时所对应的第二SQL执行计划、第二SQL执行结果、第二执行耗时、第二资源使用情况以及第二慢查询日志;

具体的,对提前准备好的待验证查询问题列表进行逐一执行数据库查询,每一次查询包含两个数据库查询操作,一个是根据大语言模型生成的预测SQL语句进行的数据查询操作,即上述第一数据查询操作;一个是根据提前设定的目标SQL语句进行的数据查询操作,即上述第二数据操作。

在根据目标SQL语句与预测SQL语句执行过程中,分别进行指标数据采集,包括SQL执行计划、SQL执行结果、执行耗时、SQL语句、资源使用情况以及慢查询日志分别得到上述,第一SQL执行计划、第一SQL执行结果、第一执行耗时、第一资源使用情况以及第一慢查询日志;第二SQL执行计划、第二SQL执行结果、第二执行耗时、第二资源使用情况以及第二慢查询日志;

对于SQL执行计划,SQL执行计划为SQL查询的详细执行步骤,包括查询的逻辑和物理操作顺序、访问的数据块和索引、连接方法等,用于判断SQL执行成本和性能。在本发明中,可通过EXPLAIN命令来查看优化器针对SQL生成的逻辑执行计划,执行完该命令后,会生成一个树形结构的执行计划,其中每个操作都按照其在执行计划中的层次通过缩进展示。例如,执行计划的第一行显示了一个ID为0的操作,其操作为“SORT”,预计耗费的成本为2763。同时,可以看到针对此查询的其他操作,例如ID为1的“MERGE INNER JOIN”和ID为2的“SORT”等。每个操作都有对应的预计行数和成本。

对于SQL执行结果,SQL执行后,都会返回一个DATESET,其包含SQL执行返回每个数据集的字段,以及所返回的数据行内容。可以理解的是,上述数据字段集合:指数据表的列头,是表的结构信息;上述数据行内容:指数据表的具体数据记录,是具体业务数据信息。

对于执行耗时,指的是SQL的执行时间。

对于资源使用情况,指的是SQL查询执行过程中的资源使用情况数据,如CPU占用率、内存消耗、磁盘IO等,用于体现SQL执行成本和效率。

对于慢查询日志,数据库的慢查询日志中有rows_examined字段,表示SQL语句执行过程中扫描了多少行。

步骤S4:根据所述目标SQL语句与所述预测SQL语句之间的相似度,计算SQL精准度指标的指标值;根据所述第一SQL执行结果以及所述第二SQL执行结果之间的一致性,计算sql结果一致性指标的指标值;根据所述第一SQL执行计划以及所述第二SQL执行计划计算sql复杂度指标的指标值;根据所述第一执行耗时、第一资源使用情况、第一慢查询日志、第二执行耗时、第二资源使用情况以及第二慢查询日志计算sql执行效率指标的指标值;

示意性的,如图3所示,本发明设置有4个指标,分别为SQL精准度指标、sql结果一致性指标、sql复杂度指标以及sql执行效率指标,通过这四个指标及各自的权重值去评估大语言模型的text-to-sql能力指数(即SQL语句生成能力的评估值)。

以下对各指标的指标值的计算进行详细的说明:

对于SQL精准度指标,在一个优选的实施例中,所述根据所述目标SQL语句与所述预测SQL语句之间的相似度,构建SQL精准度指标的指标值,包括:

将所述目标SQL语句转换为词向量,生成第一词向量;将所述预测SQL语句转换为词向量,生成第二词向量;计算所述第一词向量和所述第二词向量的余弦相似度,得到所述目标SQL语句与所述预测SQL语句之间的相似度;将所述相似度作为所述SQL精准度指标的指标值。

具体的,SQL精准度指标用于评判生成的sql跟正确sql代码一致的比例。该指标为预测SQL和目标SQL的相似度,通过针对两个SQL进行Word2Vec转化为词向量后,计算两个向量的余弦相似度,公式如下:

Cos(E,F)=E·F/(|E|×|F|)

其中,E代表由目标SQL语句转换后得到的词向量,即上述第一词向量;F代表由预测SQL语句转换后得到的词向量,即上述第二词向量,|E|和|F|分别代表向量E和F的模;

通过上述公式计算出两个向量的余弦相似度后,将余弦相似度作为SQL精准度指标的指标值。

对于sql结果一致性指标,在一个优选的实施例中,所述第一执行结果,包括执行第一数据查询操作后所返回的第一数据字段集合,以及第一数据行内容;所述第二执行结果,包括执行第二数据查询操作后所返回的第二数据字段集合,以及第二数据行内容;

所述根据所述第一SQL执行结果以及所述第二SQL执行结果之间的一致性,构建sql结果一致性指标的指标值,包括:

通过以下公式计算用于表征所述第一数据字段集合与所述第二数据字段集合之间的一致性的第一数值:

通过以下公式计算用于表征所述第一数据行内容与所述第二数据行之间的一致性的第二数值:

计算所述第一数值与所述第二数值的平均值;

将所述平均值作为所述sql结果一致性指标的指标值;

其中,A为第一数据字段集合;B为第二数据字段集合;G为第一数据行内容;H为第二数据行内容。

示意性的,sql结果一致性,用于比对预测SQL和目标SQL执行后,数据库返回结果集的相似度。其中两个SQL执行后,都会返回一个DATESET,对SQL执行返回每个数据集的字段进行比对,并且对返回的数据行内容也进行比对。

针对数据集的字段比对,通过判断预测SQL返回的数据集是否为目标SQL返回的数据集的子集,通过这个子集的大小来判断一致性。

其中A为预测SQL返回的数据字段集合(即上述第一数据字段集合),B为目标SQL返回的数据字段集合(即上述第二数据字段集合),Similarity(A,B)为上述第一数值。另外,返回的数据内容,直接通过数据表内容比对即可,得到第二数值,最后求解第一数值和第二数值的平均值作为结果一致性指标的指标值。

对于sql复杂度指标,在一个优选的实施例中,所述第一SQL执行计划以及所述第二SQL执行计划以树形结构进行展示,树形结构的每一行用于展示对应执行计划中的一子操作的ID,且每一行对应一预设耗费成本;

所述根据所述第一SQL执行计划以及所述第二SQL执行计划构建sql复杂度指标的指标值,包括:

根据所述第一SQL执行计划所对应的树形结构中的行数以及每一行的预设耗费成本,计算所述第一SQL执行计划的总耗费成本;

根据所述第二SQL执行计划所对应的树形结构中的行数以及每一行的预设耗费成本,计算所述第二SQL执行计划的总耗费成本;

计算所述第一SQL执行计划的总耗费成本以及所述第二SQL执行计划的总耗费成本之间的比值,将所述比值作为所述sql复杂度指标的指标值。

示意性的,通过分析预测SQL和目标SQL的SQL执行计划,来对别预测SQL的复杂度。通过EXPLAIN命令来查看优化器针对该SQL生成的逻辑执行计划,执行完该命令后,会生成一个树形结构的执行计划,其中每个操作都按照其在执行计划中的层次通过缩进展示。每个操作都有对应的预计行数和成本。把这些耗费成本之和加起来之和进行比对,比值作为本指标的值。

其中P为预测SQL的执行计划耗费成本(即上述第二SQL执行计划的总耗费成本),T为目标SQL的执行计划耗费成本(即上述第一SQL执行计划的总耗费成本),O(n)为所述sql复杂度指标的指标值。

对于sql执行效率指标,在一个优选的实施例中,所述第一资源使用情况以及所述第二资源使用情况均包括:CPU使用时间、IO读写时间以及内存占用大小;

所述根据所述第一执行耗时、第一资源使用情况、第一慢查询日志、第二执行耗时、第二资源使用情况以及第二慢查询日志计算sql执行效率指标的指标值,包括:

根据所述第一资源使用情况所对应的CPU使用时间、IO读写时间以及内存占用大小,计算第一资源使用值;

根据所述第二资源使用情况所对应的CPU使用时间、IO读写时间以及内存占用大小,计算第二资源使用值;

通过以下公式计算所述sql执行效率指标的指标值:

其中,T为第一执行耗时,S为第一资源使用值,R为第一慢查询日志的扫描行数,t为第二执行耗时,s为第二资源使用值,r为第二慢查询日志的扫描行数。

具体的,通过对预测sql和目标SQL执行过程所耗用的资源进行对比,得出生成的sql跟正确sql没有执行更慢的比例,所涉及数据通过执行时间、资源使用情况、慢查询日志三个维度采集回来的数据。假设预测SQL执行时间为t,资源使用值为s,慢查询日志扫描行数为r;目标SQL执行时间为T,资源使用值为S,慢查询日志扫描行数为R,则可得到上述计算sql执行效率指标的指标值的公式。需要说明的是,在本发明中资源使用值为,CPU使用时间(秒)、IO读写时间(秒)、内存占用大小(字节)数值之和。

步骤S5:根据各所述SQL精准度指标的指标值、各所述sql结果一致性指标的指标值、各所述sql复杂度指标的指标值以及各所述sql执行效率指标的指标值,计算用于表征待评估大语言模型的SQL语句生成能力的评估值,得到所述待评估大语言模型的SQL语句生成能力评估结果。

在一个优选的实施中,根据各所述SQL精准度指标的指标值、各所述sql结果一致性指标的指标值、各所述sql复杂度指标的指标值以及各所述sql执行效率指标的指标值,计算用于表征待评估大语言模型的SQL语句生成能力的评估值,包括:

通过以下公式计算所述用于表征待评估大语言模型的SQL语句生成能力的评估值:

其中,M

实施本发明上述实施例能够通过综合指标对跨域理解和text-to-sql能力进行可量化评估。把定性化的能力高低,通过对运行SQL前后采集各种数据,形成指标评估从而变成定量化的评估能力,让使用者可以直观了解不同大语言模型的SQL生产能力,可以更有科学依据进行选取和优化。其次,本发明集成自动生成测试数据集工具query_generators,使用查询生成器可以轻松创建实际生产数据的子集,作为验证数据源,而不会影响生产数据库,保证数据源可靠,与生产环境保持一致性,更准确的评估自动生成SQL能力,更精准预估在生产环境使用的时候的效果。此外,本发明可以支持市面更多的大模型,方便横向多个LLM进行比对,实现一次运行即可比对多个大模型text-to-sql能力,以及支持对大模型量化操作,可以降低使用本地大模型的成本,提高评估效率。

可以理解的,本发明上述任意一实施例所述的SQL语句生成能力的评估方法,可以由一搭载在计算机中的自动化软件工具实现,上述SQL语句生成能力的评估方法为该自动化软件工具运行时的工作原理,通过所开发的自动化软件工具即可自动化加载对一个或多个评估大语言模型,并对各待评估大语言模型在文本生成SQL方面的能力进行全面、准确的自动化评估。

在上述方法项实施例的基础上,本发明对应提供了一装置项实施例;

如图4所示,本发明一实施例提供了一种SQL语句生成能力的评估装置,包括:数据获取模块、预测SQL语句生成模块、查询模块、指标计算模块以及评估值确定模块;

所述数据获取模块,用于获取若干待验证查询问题以及所述待验证查询问题对应的目标SQL语句;

所述预测SQL语句生成模块,用于将每一所述待验证查询问题输入至待评估大语言模型中,以使所述待评估大语言模型根据每一所述待验证查询问题,生成对应的预测SQL语句;

所述查询模块,用于对于每一待验证查询问题,根据所述目标SQL语句执行第一数据查询操作,并采集执行第一数据查询操作时所对应的第一SQL执行计划、第一SQL执行结果、第一执行耗时、第一资源使用情况以及第一慢查询日志;根据所述预测SQL语句执行第二数据查询操作,并采集执行第二数据查询操作时所对应的第二SQL执行计划、第二SQL执行结果、第二执行耗时、第二资源使用情况以及第二慢查询日志;

所述指标计算模块,用于根据所述目标SQL语句与所述预测SQL语句之间的相似度,计算SQL精准度指标的指标值;根据所述第一SQL执行结果以及所述第二SQL执行结果之间的一致性,计算sql结果一致性指标的指标值;根据所述第一SQL执行计划以及所述第二SQL执行计划计算sql复杂度指标的指标值;根据所述第一执行耗时、第一资源使用情况、第一慢查询日志、第二执行耗时、第二资源使用情况以及第二慢查询日志计算sql执行效率指标的指标值;

所述评估模块,用于根据各所述SQL精准度指标的指标值、各所述sql结果一致性指标的指标值、各所述sql复杂度指标的指标值以及各所述sql执行效率指标的指标值,计算用于表征待评估大语言模型的SQL语句生成能力的评估值,得到所述待评估大语言模型的SQL语句生成能力评估结果。

在上述方法项实施例的基础上,本发明另一实施例提供了一种数据查询方法;

如图5所示,本发明另一实施例提供了一种数据查询方法,包括:

步骤501:根据本发明任意一项所述SQL语句生成能力的评估方法,对若干待选定大语言模型进行评估,确定每一待选定大语言模型的SQL语句生成能力评估结果;

步骤502:根据每一待选定大语言模型的SQL语句生成能力评估结果,将评估值最大的待选定大语言模型,作为选定大语言模型;

步骤503:将以自然语言表述的待查询问题输入至所述选定大语言模型中,生成所述待查询问题所对应的SQL语句;

步骤504:根据所述待查询问题所对应的SQL语句进行数据查询。

对应的,如图6所示,本发明另一实施例提供了一种数据查询装置,包括:评估模块、模型选定模块、SQL语句生成模块以及数据查询模块;

所述评估模块,用于根据本发明中任意一项所述SQL语句生成能力的评估方法,对若干待选定大语言模型进行评估,确定每一待选定大语言模型的SQL语句生成能力评估结果;

所述模型选定模块,用于根据每一待选定大语言模型的SQL语句生成能力评估结果,将评估值最大的待选定大语言模型,作为选定大语言模型;

所述SQL语句生成模块,用于将以自然语言表述的待查询问题输入至所述选定大语言模型中,生成所述待查询问题所对应的SQL语句;

所述数据查询模块,用于根据所述待查询问题所对应的SQL语句进行数据查询。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的同步头检测装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

所述领域的技术人员可以清楚地了解到,为的方便和简洁,上述描述装置的具体工作过程,可参考前述方法实施例中对应的过程,在此不再赘述。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

技术分类

06120116540965