本发明涉及计算机软件和数据库管理领域,具体涉及一种基于大语言模型生成sql的方法、装置、设备及介质。
背景技术:
1、目前,实现自然语言到sql语句的转换主要有以下几种技术方案:
2、基于规则的方法:这种方法通过预定义的语法和词汇表将自然语言映射到sql语句。然而,这种方法在处理复杂查询时表现不佳,因为规则难以覆盖所有可能的语义变化。
3、基于机器学习的方法:近年来,深度学习技术在自然语言处理领域取得了显著进展,尤其是基于神经网络的序列到序列(seq2seq)模型,可以将自然语言输入转化为sql输出。尽管如此,现有的模型往往需要大量的训练数据,且在处理长尾查询时效果不佳。
4、基于模板匹配的方法:这种方案通过预先设定的sql模板与自然语言指令进行匹配,生成查询语句。但这种方法缺乏灵活性,对于未预见的查询类型适应性较差。
5、基于大语言模型生成sql:基于大语言模型的sql生成方法是利用先进的自然语言理解和生成技术生成。但是受限于大模型token数据限制,无法将整个数据库输入大模型。
6、基于大语言模型微调生成sql:利用大语言模型微调技术(sft),将常见的sql和用户自然语言输入微调到大语言模型中,主要的问题是训练成本高,模型泛化能力不足。
7、综上所述,无论是基于规则、机器学习还是模板匹配的方法,在处理复杂和多样化的自然语言查询时,往往因无法准确理解用户意图而产生误差,且传统的基于机器学习的模型在遇到未见过的数据时,性能往往会下降,而现有基于大语言模型的方法通常需要大量的额外训练数据和计算资源来微调模型,这不仅增加了成本,还延长了部署时间。基于此,发明人研发了一种基于大语言模型生成sql的方法、装置、设备及介质。
技术实现思路
1、为了解决上述技术问题,本发明提供了一种基于大语言模型生成sql的方法、装置、设备及介质,本发明通过引入行业词典和相似问题等方法,从而显著提高了从自然语言到sql语句转换的准确性,使得其即使在面对复杂和罕见的查询需求时,也能确保生成的sql语句精确无误;并且其还提高了其泛化能力,同时还使得大模型无需额外的训练即可直接应用于不同的数据库环境,极大的简化了其实施过程,并降低了其维护和更新的复杂程度。
2、第一方面,本发明提供的一种基于大语言模型生成sql的方法,采用如下的技术方案:
3、一种基于大语言模型生成sql的方法,包括以下步骤:
4、数据源配置,配置数据库连接信息;
5、表治理,基于数据源配置,获取数据源中所有的表以及建表语句中的ddl信息,查询表中数据并根据预设规则将原始ddl信息转换为简写版ddl信息和完整版ddl信息这两种新的ddl描述;
6、表关系治理,梳理数据库中表与表之间的关联关系,构建表关系图;
7、领域知识梳理,梳理特定领域的领域知识,建立领域知识库;
8、问题sql治理,对大模型生成的问题sql进行修正并生成修正sql,建立oa问答系统,并将问题sql与修正sql存储于向量数据库中;
9、用户问题接收,接收用户输入的自然语言查询问题,记为初始问题;
10、简写prompt组装,通过分词算法对初始问题进行分词并得到分词结果,将分词结果与领域知识库中的领域知识进行匹配,并将匹配到的领域知识替换初始问题中的关键词,并形成替换问题;
11、将替换问题向量化生成向量化问题,使用欧氏距离计算向量化问题和问题sql的向量相似度,并查找出相似度最高的前三个问题sql,记为前三问题sql;
12、根据替换问题和前三问题sql以及简写版ddl信息生成简写prompt;
13、大模型选表调用,将简写prompt输入大语言模型,从数据库中筛选出用户查询最相关的表,记为最相关表;
14、完整prompt组装,基于最相关表和表关系图,查找最相关表在表关系图中的表信息及表关系信息;
15、根据表信息和表信息的关联表在完整版ddl中查找完整ddl描述信息;
16、使用完整ddl描述信息、表关系信息、替换问题和前三问题sql,组装完整prompt;
17、大模型调用生成sql,将完整prompt输入至大语言模型,大模型生成sql。
18、优选的,所述数据库连接信息包括数据库url、用户名和密码。
19、优选的,所述表关系图为json格式或者xml格式。
20、优选的,所述领域知识包括专业术语及专业术语的近义词。
21、优选的,所述简写prompt包括校色定义、数据库表信息和用户问题。
22、第二方面,本发明提供的一种基于大语言模型生成sql的装置,采用如下的技术方案:
23、一种基于大语言模型生成sql的装置,包括:
24、数据源配置模块,用于配置数据库连接信息;
25、表治理模块,用于基于数据源配置,获取数据源中所有的表以及建表语句中的ddl信息,查询表中数据并根据预设规则将原始ddl信息转换为简写版ddl信息和完整版ddl信息这两种新的ddl描述;
26、表关系治理模块,用于梳理数据库中表与表之间的关联关系,构建表关系图;
27、领域知识梳理模块,用于梳理特定领域的领域知识,建立领域知识库;
28、问题sql治理模块,用于对大模型生成的问题sql进行修正并生成修正sql,建立oa问答系统,并将问题sql与修正sql存储于向量数据库中;
29、用户问题接收模块,用于接收用户输入的自然语言查询问题,记为初始问题;
30、简写prompt组装模块,用于通过分词算法对初始问题进行分词并得到分词结果,将分词结果与领域知识库中的领域知识进行匹配,并将匹配到的领域知识替换初始问题中的关键词,并形成替换问题;
31、将替换问题向量化生成向量化问题,使用欧氏距离计算向量化问题和问题sql的向量相似度,并查找出相似度最高的前三个问题sql,记为前三问题sql;
32、根据替换问题和前三问题sql以及简写版ddl信息生成简写prompt;
33、大模型选表调用模块,用于将简写prompt输入大语言模型,从数据库中筛选出用户查询最相关的表,记为最相关表;
34、完整prompt组装模块,用于基于最相关表和表关系图,查找最相关表在表关系图中的表信息及表关系信息;
35、根据表信息和表信息的关联表在完整版ddl中查找完整ddl描述信息;
36、使用完整ddl描述信息、表关系信息、替换问题和前三问题sql,组装完整prompt;
37、大模型调用生成sql模块,用于将完整prompt输入至大语言模型,大模型生成sql。
38、第三方面,本发明提供的一种电子设备,采用如下的技术方案:
39、一种电子设备,其包括:
40、一个或者多个处理器;
41、存储器;
42、一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据上述任一项所述的一种基于大语言模型生成sql的方法。
43、第四方面,本发明提供的一种计算机可读存储介质,采用如下的技术方案:
44、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述的一种基于大语言模型生成sql的方法。
45、综上所述,本发明包括以下有益技术效果:
46、1.本发明通过引入行业词典和相似问题等方法,显著提高了从自然语言到sql语句转换的准确性,同时即使在面对复杂和罕见的查询需求时,其也能确保生成的sql语句精确无误。
47、2.本发明通过创新prompt模板和数据表治理方法解决了多个数据表ddl语言超长从而导致的无法输入大语言模型的问题,使得其即使在没有经过专门训练的情况下,也能处理广泛的语言模式和数据库结构,极大的增强了系统的适应性和鲁棒性。
48、3.本发明通过创新prompt模板和数据表治理方法解决了多个数据表ddl语言超长从而导致的无法输入大语言模型的问题,通过巧妙的设计使得大语言模型在无需额外训练的情况下,即可直接应用于不同的数据库环境中,其极大的简化了实施过程,并降低了维护和更新的复杂度。
1.一种基于大语言模型生成sql的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于大语言模型生成sql的方法,其特征在于,所述数据库连接信息包括数据库url、用户名和密码。
3.根据权利要求1所述的一种基于大语言模型生成sql的方法,其特征在于,所述表关系图为json格式或者xml格式。
4.根据权利要求1所述的一种基于大语言模型生成sql的方法,其特征在于,所述领域知识包括专业术语及专业术语的近义词。
5.根据权利要求1所述的一种基于大语言模型生成sql的方法,其特征在于,所述简写prompt包括校色定义、数据库表信息和用户问题。
6.一种基于大语言模型生成sql的装置,其特征在于,包括:
7.一种电子设备,其特征在于,其包括:
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至5任一项所述的一种基于大语言模型生成sql的方法。
