本发明实施例涉及计算机,尤其涉及一种sql语句生成方法、装置、设备及存储介质。
背景技术:
1、数据库管理系统的用户需要对于数据库的结构非常了解(比如表名、列名、实体关系等等),并熟悉数据库查询语言才能与数据库进行交互,但这对于非专业人士来说可能是一项困难的任务。
2、在此背景下,业界探索一种新的人机交互方式,即通过nl2sql(natural languageto sql,自然语言转sql)技术,将业务人员的自然语言转换为数据库可执行的sql语句,省去人工构造sql语句的过程,从而大幅提升数据查询效率,降低数据库使用门槛。
3、nl2sql应用场景中,由于一些自然语言查询问题可能涉及多个实体、关系和条件,而模型可能无法准确地捕捉到所有的语义细节和上下文信息,从而无法理解用户的查询目的,导致生成的sql语句与用户需求不符,降低查询准确性。其次,查询类型的多样性和sql语法结构的复杂性,使得模型在处理涉及冗长的推理链或多步解决方案的问题时,很难一次性生成语法结构完整的sql语句,增加了nl2sql任务的难度。
技术实现思路
1、本发明实施例提供一种sql语句生成方法、装置、设备及存储介质,能够提升sql语句生成的准确性。
2、根据本发明的一方面,提供了一种sql语句生成方法,包括:
3、获取目标问题对应的目标查询意图类型集合和相关知识;
4、根据所述目标问题对应的目标查询意图类型集合和目标sql语句生成模型对应的思维链提示模板构建目标问题对应的思维链提示示例;
5、将所述目标问题、所述目标问题对应的目标查询意图类型集合、思维链提示示例以及相关知识输入目标思维链确定模型,得到目标问题对应的目标思维链,其中,所述目标思维链确定模型通过第一样本集迭代训练待训练思维链确定模型得到;
6、将所述目标问题、所述目标问题对应的目标思维链以及相关知识输入所述目标sql语句生成模型,得到目标sql语句。
7、进一步的,获取目标问题对应的目标查询意图类型集合和相关知识,包括:
8、将目标问题输入目标多层次意图识别模型,得到目标查询意图类型集合,其中,所述目标多层次意图识别模型通过第二样本集迭代训练待训练多层次意图识别模型得到,所述第二样本集包括:问题样本和问题样本对应的查询意图类型集合;
9、获取数据库表对应的知识库;
10、根据所述目标问题查询所述知识库,得到所述目标问题对应的关联表结构信息和相关知识。
11、进一步的,通过第一样本集迭代训练待训练思维链确定模型包括:
12、获取第一样本集,其中,所述第一样本集包括:问题样本和问题样本对应的sql语句;
13、获取所述第一样本集中的问题样本对应的查询意图类型集合和相关知识;
14、根据所述问题样本对应的查询意图类型集合和目标sql语句生成模型对应的思维链提示模板构建问题样本对应的思维链提示示例;
15、将所述问题样本、问题样本对应的查询意图类型集合、思维链提示示例以及相关知识输入待训练思维链确定模型,得到问题样本对应的思维链;
16、将所述问题样本、所述问题样本对应的思维链以及相关知识输入所述目标sql语句生成模型,得到预测sql语句;
17、根据所述预测sql语句和所述问题样本对应的sql语句生成的第一函数训练所述待训练思维链确定模型的参数,得到目标思维链确定模型。
18、进一步的,根据所述预测sql语句和所述问题样本对应的sql语句生成的第一函数训练所述待训练思维链确定模型的参数,得到目标思维链确定模型,包括:
19、根据所述预测sql语句和所述问题样本对应的sql语句确定所述预测sql语句的目标评分;
20、根据所述预测sql语句的目标评分、预测sql语句以及训练前的待训练思维链确定模型生成的sql语句确定损失值;
21、根据所述损失值对所述待训练思维链确定模型的参数进行训练,得到目标思维链确定模型。
22、进一步的,根据所述预测sql语句和所述问题样本对应的sql语句确定所述预测sql语句的目标评分,包括:
23、执行所述预测sql语句和所述问题样本对应的sql语句;
24、根据所述预测sql语句对应的执行结果和所述问题样本对应的sql语句的执行结果确定第一评分;
25、根据所述预测sql语句和所述问题样本对应的sql语句的相似度确定第二评分;
26、根据所述预测sql语句对应的查询意图类型集合和所述问题样本对应的sql语句对应的查询意图类型集合确定第三评分;
27、根据所述第一评分、第二评分和所述第三评分确定所述预测sql语句的目标评分。
28、进一步的,根据所述目标问题对应的目标查询意图类型集合和目标sql语句生成模型对应的思维链提示模板构建目标问题对应的思维链提示示例,包括:
29、获取所述目标问题对应的目标查询意图类型集合中的每个查询意图类型对应的层级信息;
30、根据所述目标问题对应的目标查询意图类型集合、所述目标问题对应的目标查询意图类型集合中的每个查询意图类型对应的层级信息以及目标sql语句生成模型对应的思维链提示模板构建目标问题对应的思维链提示示例。
31、进一步的,获取所述目标问题对应的目标查询意图类型集合中的每个查询意图类型对应的层级信息,包括:
32、获取结构层级列表;
33、查询结构层级列表,得到所述目标问题对应的目标查询意图类型集合中的每个查询意图类型对应的层级信息。
34、进一步的,还包括:
35、获取查询意图类型库;
36、获取基于目标sql语句生成模型生成的查询意图类型库中的每种查询意图类型对应的sql语句生成准确率;
37、根据查询意图类型库中sql语句生成准确率小于准确率阈值的目标查询意图类型生成目标sql语句生成模型对应的思维链提示模板。
38、进一步的,通过第二样本集迭代训练待训练多层次意图识别模型,包括:
39、获取所述第一样本集中的每个问题样本对应的查询意图类型集合;
40、根据所述第一样本集中的问题样本和每个问题样本对应的查询意图类型集合生成第二样本集;
41、将所述第二样本集中的问题样本输入待训练多层次意图识别模型,得到预测查询意图类型集合;
42、根据所述预测查询意图类型集合和所述问题样本对应的查询意图类型集合生成的目标函数训练所述待训练多层次意图识别模型的参数;
43、返回执行将所述第二样本集中的问题样本输入待训练多层次意图识别模型,得到预测查询意图类型集合的操作,直至得到目标多层次意图识别模型。
44、根据本发明的另一方面,提供了一种sql语句生成装置,该sql语句生成装置包括:
45、第一获取模块,用于获取目标问题对应的目标查询意图类型集合和相关知识;
46、思维链提示示例构建模块,用于根据所述目标问题对应的目标查询意图类型集合和目标sql语句生成模型对应的思维链提示模板构建目标问题对应的思维链提示示例;
47、目标思维链确定模块,用于将所述目标问题、所述目标问题对应的目标查询意图类型集合、思维链提示示例以及相关知识输入目标思维链确定模型,得到目标问题对应的目标思维链,其中,所述目标思维链确定模型通过第一样本集迭代训练待训练思维链确定模型得到;
48、目标sql语句生成模块,用于将所述目标问题、所述目标问题对应的目标思维链以及相关知识输入所述目标sql语句生成模型,得到目标sql语句。
49、进一步的,第一获取模块具体用于:
50、将目标问题输入目标多层次意图识别模型,得到目标查询意图类型集合,其中,所述目标多层次意图识别模型通过第二样本集迭代训练待训练多层次意图识别模型得到,所述第二样本集包括:问题样本和问题样本对应的查询意图类型集合;
51、获取数据库表对应的知识库;
52、根据所述目标问题查询所述知识库,得到所述目标问题对应的关联表结构信息和相关知识。
53、进一步的,目标思维链确定模块具体用于:
54、获取第一样本集,其中,所述第一样本集包括:问题样本和问题样本对应的sql语句;
55、获取所述第一样本集中的问题样本对应的查询意图类型集合和相关知识;
56、根据所述问题样本对应的查询意图类型集合和目标sql语句生成模型对应的思维链提示模板构建问题样本对应的思维链提示示例;
57、将所述问题样本、问题样本对应的查询意图类型集合、思维链提示示例以及相关知识输入待训练思维链确定模型,得到问题样本对应的思维链;
58、将所述问题样本、所述问题样本对应的思维链以及相关知识输入所述目标sql语句生成模型,得到预测sql语句;
59、根据所述预测sql语句和所述问题样本对应的sql语句生成的第一函数训练所述待训练思维链确定模型的参数,得到目标思维链确定模型。
60、进一步的,目标思维链确定模块具体用于:
61、根据所述预测sql语句和所述问题样本对应的sql语句确定所述预测sql语句的目标评分;
62、根据所述预测sql语句的目标评分、预测sql语句以及训练前的待训练思维链确定模型生成的sql语句确定损失值;
63、根据所述损失值对所述待训练思维链确定模型的参数进行训练,得到目标思维链确定模型。
64、进一步的,目标思维链确定模块具体用于:
65、执行所述预测sql语句和所述问题样本对应的sql语句;
66、根据所述预测sql语句对应的执行结果和所述问题样本对应的sql语句的执行结果确定第一评分;
67、根据所述预测sql语句和所述问题样本对应的sql语句的相似度确定第二评分;
68、根据所述预测sql语句对应的查询意图类型集合和所述问题样本对应的sql语句对应的查询意图类型集合确定第三评分;
69、根据所述第一评分、第二评分和所述第三评分确定所述预测sql语句的目标评分。
70、进一步的,思维链提示示例构建模块具体用于:
71、获取所述目标问题对应的目标查询意图类型集合中的每个查询意图类型对应的层级信息;
72、根据所述目标问题对应的目标查询意图类型集合、所述目标问题对应的目标查询意图类型集合中的每个查询意图类型对应的层级信息以及目标sql语句生成模型对应的思维链提示模板构建目标问题对应的思维链提示示例。
73、进一步的,思维链提示示例构建模块具体用于:
74、获取结构层级列表;
75、查询结构层级列表,得到所述目标问题对应的目标查询意图类型集合中的每个查询意图类型对应的层级信息。
76、进一步的,还包括:
77、查询意图类型库获取模块,用于获取查询意图类型库;
78、sql语句生成准确率获取模块,用于获取基于目标sql语句生成模型生成的查询意图类型库中的每种查询意图类型对应的sql语句生成准确率;
79、目标sql语句生成模型对应的思维链提示模板生成模块,用于根据查询意图类型库中sql语句生成准确率小于准确率阈值的目标查询意图类型生成目标sql语句生成模型对应的思维链提示模板。
80、进一步的,第一获取模块具体用于:
81、获取所述第一样本集中的每个问题样本对应的查询意图类型集合;
82、根据所述第一样本集中的问题样本和每个问题样本对应的查询意图类型集合生成第二样本集;
83、将所述第二样本集中的问题样本输入待训练多层次意图识别模型,得到预测查询意图类型集合;
84、根据所述预测查询意图类型集合和所述问题样本对应的查询意图类型集合生成的目标函数训练所述待训练多层次意图识别模型的参数;
85、返回执行将所述第二样本集中的问题样本输入待训练多层次意图识别模型,得到预测查询意图类型集合的操作,直至得到目标多层次意图识别模型。
86、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
87、至少一个处理器;以及
88、与所述至少一个处理器通信连接的存储器;其中,
89、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的sql语句生成方法。
90、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的sql语句生成方法。
91、本发明实施例通过获取目标问题对应的目标查询意图类型集合和相关知识;根据所述目标问题对应的目标查询意图类型集合和目标sql语句生成模型对应的思维链提示模板构建目标问题对应的思维链提示示例;将所述目标问题、所述目标问题对应的目标查询意图类型集合、思维链提示示例以及相关知识输入目标思维链确定模型,得到目标问题对应的目标思维链,其中,所述目标思维链确定模型通过第一样本集迭代训练待训练思维链确定模型得到;将所述目标问题、所述目标问题对应的目标思维链以及相关知识输入所述目标sql语句生成模型,得到目标sql语句,能够提升sql语句生成的准确性。
92、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
1.一种sql语句生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,获取目标问题对应的目标查询意图类型集合和相关知识,包括:
3.根据权利要求1所述的方法,其特征在于,通过第一样本集迭代训练待训练思维链确定模型包括:
4.根据权利要求3所述的方法,其特征在于,根据所述预测sql语句和所述问题样本对应的sql语句生成的第一函数训练所述待训练思维链确定模型的参数,得到目标思维链确定模型,包括:
5.根据权利要求4所述的方法,其特征在于,根据所述预测sql语句和所述问题样本对应的sql语句确定所述预测sql语句的目标评分,包括:
6.根据权利要求1所述的方法,其特征在于,根据所述目标问题对应的目标查询意图类型集合和目标sql语句生成模型对应的思维链提示模板构建目标问题对应的思维链提示示例,包括:
7.根据权利要求6所述的方法,其特征在于,获取所述目标问题对应的目标查询意图类型集合中的每个查询意图类型对应的层级信息,包括:
8.根据权利要求1所述的方法,其特征在于,还包括:
9.根据权利要求2所述的方法,其特征在于,通过第二样本集迭代训练待训练多层次意图识别模型,包括:
10.一种sql语句生成装置,其特征在于,包括:
11.一种电子设备,其特征在于,所述电子设备包括:
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-9中任一项所述的sql语句生成方法。
