本申请涉及信息处理,尤其涉及一种基于大语言模型生成sql语句的方法、装置及终端设备。
背景技术:
1、结构化查询语言(structured query language,sql)是一种数据库查询和程序设计语言,用于存取数据、查询、更新和管理关系数据库系统。sql语言是关系数据库中的标准化查询语言,能够对目标数据库完成数据定义、数据查询和数据控制等操作。
2、自然语言转结构化查询语言(natural language to structuredquerylanguage,nl2sql)指的是一种将自然语言转换为sql查询的技术。它的目的是将自然语言查询转换为机器可读的sql语句,是实现人类和数据库无缝交互和提高数据库分析效率的核心技术。在实际应用时,用户可以直接输入问题,后台生成该问题对应的sql语句,并使用sql语句向数据库发出操作请求,数据库服务器处理该请求,并将查询结果返回给用户。然而,在该过程中,生成问题对应的sql语句的准确性,将直接影响查询结果的准确性。
3、因此,如何准确生成用户给出问题对应的sql语句,保障查询的可执行性和查询结果的准确性,是当前需要考虑的问题。
技术实现思路
1、本申请实施例提供了一种基于大语言模型生成sql语句的方法、装置及终端设备,可以提高生成用户给出问题对应的sql语句的准确度,从而保障查询的可执行性和查询结果的准确性。
2、第一方面,本申请实施例提供了一种基于大语言模型生成sql语句的方法,包括:
3、调用表名查询工具,获得表名查询结果;
4、将用户问题和所述表名查询结果,填充至预设提示语模板,得到第一提示语;
5、将所述第一提示语输入至大语言模型中,引导所述大语言模型根据所述第一提示语中的参考工具,生成候选sql语句,并对所述候选sql语句进行语法检测,生成所述用户问题对应的目标sql语句。
6、在第一方面的一种可能的实现方式中,所述将所述第一提示语输入至大语言模型中,引导所述大语言模型根据所述第一提示语中的参考工具,生成候选sql语句,包括:
7、将所述第一提示语输入至大语言模型中,引导所述大语言模型基于所述第一提示语做出第一轮反馈,所述第一轮反馈的结果包括所述大语言模型确定的第一参考工具及第一输入信息;
8、当所述第一参考工具为字段查询工具时,根据所述第一轮反馈的结果更新所述第一提示语,得到第二提示语;
9、将所述第二提示语输入至所述大语言模型中,引导所述大语言模型基于所述第二提示语做出第二轮反馈,所述第二轮反馈的结果包括所述大语言模型确定的第二参考工具及第二输入信息;
10、当所述第二参考工具为sql生成工具时,根据所述sql生成工具、所述第一输入信息以及所述第二输入信息更新所述第二提示语,得到第三提示语;
11、将所述第三提示语输入至所述大语言模型中,引导所述大语言模型基于所述sql生成工具,生成候选sql语句。
12、在第一方面的一种可能的实现方式中,所述对所述候选sql语句进行语法检测,生成所述用户问题对应的目标sql语句,包括:
13、将所述候选sql语句填充至所述第一提示语中,得到第四提示语;
14、将所述第四提示语输入至所述大语言模型中,引导所述大语言模型基于所述第四提示语做出第四轮反馈,所述第四轮反馈的结果包括所述大语言模型确定的第三参考工具及第三输入信息;
15、当所述第三参考工具为语法检查工具时,根据所述语法检查工具和所述第三输入信息更新所述第四提示语,得到第五提示语;
16、将所述第五提示语输入至所述大语言模型中,引导所述大语言模型根据所述语法检查工具对所述候选sql语句进行语法检查,并得到目标sql语句。
17、在第一方面的一种可能的实现方式中,所述方法还包括:
18、根据所述目标sql语句,更新所述第一提示语,得到第六提示语;
19、将所述第六提示语输入至所述大语言模型中,引导所述大语言模型执行所述目标sql语句,得到所述目标sql语句的执行结果。
20、在第一方面的一种可能的实现方式中,所述将所述第六提示语输入至所述大语言模型中,引导所述大语言模型执行所述目标sql语句,得到所述目标sql语句的执行结果,包括:
21、将所述第六提示语输入至所述大语言模型中,引导所述大语言模型基于所述第六提示语做出第六轮反馈,第六轮反馈的结果包括所述大语言模型确定的第四参考工具及第四输入信息;
22、当所述第四参考工具为sql执行工具时,将所述第四输入信息中的目标sql语句输入至所述sql执行工具,得到所述目标sql语句的执行结果。
23、在第一方面的一种可能的实现方式中,所述方法还包括:
24、判断所述目标sql语句是否执行有误;
25、若执行有误,则获取系统错误日志和所述执行结果,根据所述系统错误日志和所述执行结果,生成新的目标sql语句后并执行;
26、若执行无误,则输出所述目标sql语句的执行结果。
27、第二方面,本申请实施例提供了一种基于大语言模型生成sql语句的装置,包括:
28、工具调用单元,用于调用表名查询工具,获得表名查询结果;
29、sql语句生成单元,用于将用户问题和所述表名查询结果,填充至预设提示语模板,得到第一提示语;还用于将所述第一提示语输入至大语言模型中,引导所述大语言模型根据所述第一提示语中的参考工具,生成候选sql语句,并对所述候选sql语句进行语法检测,生成所述用户问题对应的目标sql语句。
30、第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的基于大语言模型生成sql语句的方法。
31、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的基于大语言模型生成sql语句的方法。
32、第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使终端设备执行如上述第一方面所述的基于大语言模型生成sql语句的方法。
33、本申请实施例中,通过调用表名查询工具,获得表名查询结果,将用户问题和所述表名查询结果,填充至预设提示语模板,得到第一提示语,将所述第一提示语输入至大语言模型中,引导所述大语言模型根据所述第一提示语中的参考工具,生成候选sql语句,并对所述候选sql语句进行语法检测,生成所述用户问题对应的目标sql语句。本申请通过定制提示语引导大语言模型智能化生成用户问题对应的sql语句,可提高生成用户给出问题对应的sql语句的准确度,从而保障查询的可执行性和查询结果的准确性。
1.一种基于大语言模型生成sql语句的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述第一提示语输入至大语言模型中,引导所述大语言模型根据所述第一提示语中的参考工具,生成候选sql语句,包括:
3.根据权利要求2所述的方法,其特征在于,所述对所述候选sql语句进行语法检测,生成所述用户问题对应的目标sql语句,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述将所述第六提示语输入至所述大语言模型中,引导所述大语言模型执行所述目标sql语句,得到所述目标sql语句的执行结果,包括:
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
7.一种基于大语言模型生成sql语句的装置,其特征在于,包括:
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的基于大语言模型生成sql语句的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的基于大语言模型生成sql语句的方法。