SQL语句功能一致性评估方法、装置与流程
- 国知局
- 2024-07-31 22:52:05
本技术涉及评估,具体而言,涉及一种sql语句功能一致性评估方法、装置。
背景技术:
1、nl2sql是指在给定数据库和自然语言的条件下,将自然语言解析成sql语句,并执行sql语句返回查询结果的技术。随着大模型技术的不断发展,nl2sql得到了越来越多的关注。然而,如何判断生成的sql语句是否与真实的sql语句一致性成为亟待解决的技术问题。
2、目前,评估sql语句功能一致性主要采用以下两种方法:第一,将两个sql语句在数据库中的执行结果进行比对,结果一致则两个sql语句功能相同,否则,两个sql语句功能不同。第二,将两个sql语句进行字符串比较,判断两个sql是否相等,如果两个sql语句完全匹配,则功能一致,否则功能不一致。
3、但是,采用上述方法评估sql语句功能的一致性,导致评估结果不准确。
技术实现思路
1、本技术的主要目的在于提供一种sql语句功能一致性评估方法、装置,以解决相关技术中评估sql语句功能的一致性方法产生的评估结果不准确的问题。
2、为了实现上述目的,第一方面,本技术提供了一种sql语句功能一致性评估方法,包括:
3、获取第一sql语句和第二sql语句,其中,第一sql语句用于表征大模型针对问题所输出的语句,第二sql语句用于表征第一sql语句对应的真实标签;
4、基于第一sql语句、第二sql语句和数据库,确定第一sql语句对应的第一查询结果集和第二sql语句对应的第二查询结果集;
5、若第一查询结果集和第二查询结果集满足第一预设条件,分别对第一sql语句、第二sql语句进行解析,得到第一sql语句对应的第一解析结果和第二sql语句对应的第二解析结果;
6、根据第一解析结果和第二解析结果,评估第一sql语句和第二sql语句的功能一致性。
7、在一种可能的实现方式中,基于第一sql语句、第二sql语句和数据库,确定第一sql语句对应的第一查询结果集和第二sql语句对应的第二查询结果集,包括:
8、分别将第一sql语句和第二sql语句在数据库中执行,获取第一sql语句对应的第一查询结果集和第二sql语句对应的第二查询结果集。
9、在一种可能的实现方式中,若第一查询结果集和第二查询结果集满足第一预设条件,包括:
10、若第一查询结果集中的子集与第二查询结果集中的子集相同,或,
11、第一查询结果集中的列对应的子集包含第二查询结果集中的列对应的子集。
12、在一种可能的实现方式中,根据第一解析结果和第二解析结果,评估第一sql语句和第二sql语句的功能一致性,包括:
13、对第一解析结果和第二解析结果进行代码转换,得到第一解析结果对应的第一抽象语法树和第二解析结果对应的第二抽象语法树;
14、分别对第一抽象语法树和第二抽象语法树进行预处理,得到第一抽象语法树对应的第一程序代码和第二抽象语法树对应的第二程序代码;
15、分别提取第一程序代码和第二程序代码中的目标元素,得到第一程序代码对应的第一目标元素和第二程序代码对应的第二目标元素;
16、基于第一目标元素、第二目标元素和第二预设条件,评估第一sql语句和第二sql语句的功能一致性。
17、在一种可能的实现方式中,基于第一目标元素、第二目标元素和第二预设条件,评估第一sql语句和第二sql语句的功能一致性,包括:
18、若第一目标元素和第二目标元素满足第二预设条件,第一sql语句和第二sql语句的功能具有一致性;
19、若第一目标元素和第二目标元素不满足第二预设条件,第一sql语句和第二sql语句的功能不一致。
20、在一种可能的实现方式中,目标元素至少包括表名、字段名、条件语句和关键字,第一目标元素至少包括第一表名、第一字段名、第一条件语句和第一关键字,第二目标元素少包括第二表名、第二字段名、第二条件语句和第二关键字;
21、若第一目标元素和第二目标元素满足第二预设条件,第一sql语句和第二sql语句的功能具有一致性,包括:
22、判断第一表名和第二表名是否相同;
23、若第一表名和第二表名相同,判断第一字段名和第二字段名是否相同;
24、若第一字段名和第二字段名相同,判断第一条件语句和第二条件语句是否相同;
25、若第一条件语句和第二条件语句相同,判断第一关键字和第二关键字是否相同;
26、若第一关键字和第二关键字相同,第一sql语句和第二sql语句的功能具有一致性。
27、在一种可能的实现方式中,方法还包括:
28、若第一查询结果集和第二查询结果集不满足第一预设条件,第一sql语句和第二sql语句的功能不一致。
29、第二方面,本发明实施例提供了一种sql语句功能一致性评估装置,包括:
30、获取模块,用于获取第一sql语句和第二sql语句,其中,第一sql语句用于表征大模型针对问题所输出的语句,第二sql语句用于表征第一sql语句对应的真实标签;
31、查询模块,用于基于第一sql语句、第二sql语句和数据库,确定第一sql语句对应的第一查询结果集和第二sql语句对应的第二查询结果集;
32、解析模块,用于若第一查询结果集和第二查询结果集满足第一预设条件,分别对第一sql语句、第二sql语句进行解析,得到第一sql语句对应的第一解析结果和第二sql语句对应的第二解析结果;
33、评估模块,用于根据第一解析结果和第二解析结果,评估第一sql语句和第二sql语句的功能一致性。
34、第三方面,本发明实施例提供了一种终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上任一种sql语句功能一致性评估方法的步骤。
35、第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上任一种sql语句功能一致性评估方法的步骤。
36、本发明实施例提供了一种sql语句功能一致性评估方法、装置,包括:先获取第一sql语句和第二sql语句,其中,第一sql语句用于表征大模型针对问题所输出的语句,第二sql语句用于表征第一sql语句对应的真实标签,然后基于第一sql语句、第二sql语句和数据库,确定第一sql语句对应的第一查询结果集和第二sql语句对应的第二查询结果集,若第一查询结果集和第二查询结果集满足第一预设条件,分别对第一sql语句、第二sql语句进行解析,得到第一sql语句对应的第一解析结果和第二sql语句对应的第二解析结果,再根据第一解析结果和第二解析结果,评估第一sql语句和第二sql语句的功能一致性。本发明先对两个sql语句进行数据库查询,然后进一步对查询结果进行语法分析,以提取包括sql语法的关键字、表名等解析结果,再基于解析结果评估两个sql语句的功能一致性,提高了两个sql语句的功能一致性评估的准确性。
本文地址:https://www.jishuxx.com/zhuanli/20240730/195075.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表