本申请涉及自然语言处理,尤其涉及一种基于大语言模型的sql语句生成方法及设备。
背景技术:
1、随着基于transformer解码器变体的模型的快速发展,大语言模型(largelanguage model,llm)正逐步替代传统的自然语言模型,并在实际应用获得了不错的成果。对于文本转换sql(text2sql)任务有基于提示工程的方法及基于微调的方法。在实际场景应用中,经过微调训练的大语言模型虽然可以生成较为准确的结构化查询语言(structured query language,sql)语句,但是仍不能够满足实际应用的要求。
2、相关技术中,基于思维链(chain-of-thought,cot)的text2sql优化方法能够起到提升准确率,目前主要方法包括两种。
3、一种是传统cot的方式,即预先配置不同的转化规则,大语言模型基于该转化规则生成文本对应的sql语句。但是由于文本描述的方式多种多样,预先配置的转化规则无法涵盖所有情况,在转化生成sql语句的过程中很容易产生错误。
4、另一种是从简到繁的方式,即将用户的问题文本分解为多个子文本,并根据每个子文本的复杂程度,依次生成每个子文本对应的sql语句,最终生成用户的问题文本对应的sql语句。这种方法需要针对每个子文本调用一次大语言模型生成对应的sql语句,效率较低,并且每个子文本所对应的sql语句需要根据上一个子文本的sql语句进行生成,极易出现错误积累严重的问题。
5、因此,如何提高生成的sql语句的准确率成为亟待解决的问题。
技术实现思路
1、本申请实施例提供了一种基于大语言模型的sql语句生成方法及设备,用以解决现有技术中基于大语言模型生成的sql语句准确率低的问题。
2、第一方面,本申请提供了一种基于大语言模型的sql语句生成方法,所述方法包括:
3、将待转换文本、第一提示文本和第二提示文本进行拼接,得到输入文本,所述第一提示文本用于提示大语言模型基于所述待转换文本生成sql语句,所述第二提示文本用于提示所述大语言模型对所述待转换文本在数据表中所涉及的数据表名和字段信息进行分析并输出;
4、将所述输入文本输入到所述大语言模型中,得到候选sql语句、目标数据表名和目标字段信息;
5、若所述候选sql语句中包括的第一数据表名和第一字段信息与所述目标数据表名和所述目标字段信息匹配,则将所述候选sql语句确定为所述待转换文本对应的目标sql语句。
6、第二方面,本申请提供了基于大语言模型的sql语句生成装置,所述装置包括:
7、拼接模块,用于将待转换文本、第一提示文本和第二提示文本进行拼接,得到输入文本,所述第一提示文本用于提示大语言模型基于所述待转换文本生成sql语句,所述第二提示文本用于提示所述大语言模型对所述待转换文本在数据表中所涉及的数据表名和字段信息进行分析并输出;
8、生成模块,用于将所述输入文本输入到所述大语言模型中,得到候选sql语句、目标数据表名和目标字段信息;
9、校验模块,用于若所述候选sql语句中包括的第一数据表名和第一字段信息与所述目标数据表名和所述目标字段信息匹配,则将所述候选sql语句确定为所述待转换文本对应的目标sql语句。
10、第三方面,本申请还提供了一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一所述基于大语言模型的sql语句生成方法的步骤。
11、第四方面,本申请还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一所述基于大语言模型的sql语句生成方法的步骤。
12、由于在本申请实施例中,将待转换文本、第一提示文本和第二提示文本进行拼接得到输入文本,并输入到大语言模型中,使大语言模型根据第一提示文本的提示基于待转换文本生成候选sql语句,并根据第二提示文本的提示对待转换文本在数据表中所涉及数据表名和字段信息进行分析,得到目标数据表名和目标字段信息,若候选sql语句中包括的第一数据表名和第一字段信息与目标数据表名和目标字段信息匹配,则将候选sql语句确定为待转换文本对应的目标sql语句,通过比较基于待转换文本分析出来的目标数据表名和目标字段信息,与生成的候选sql语句中包括的第一数据表名和第一字段信息是否匹配,确定生成的候选sql语句是否正确,在匹配的情况下,将候选sql语句确定为目标sql语句,提高了sql语句生成的准确率,且无需多次调用大语言模型,提高了sql语句生成的效率。
1.一种基于大语言模型的sql语句生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述输入文本输入到所述大语言模型中,得到候选sql语句、目标数据表名和目标字段信息,包括:
3.根据权利要求2所述的方法,其特征在于,所述大语言模型得到所述候选sql语句的过程包括:
4.根据权利要求2所述的方法,其特征在于,所述大语言模型得到所述候选sql语句的过程包括:
5.根据权利要求1所述的方法,其特征在于,所述将所述输入文本输入到所述大语言模型中,得到候选sql语句、目标数据表名和目标字段信息之前,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述获取sql语句生成样例,包括:
7.根据权利要求1所述的方法,其特征在于,所述得到候选sql语句、目标数据表名和目标字段信息之后,判断所述候选sql语句中包括的第一数据表名和第一字段信息与所述目标数据表名和所述目标字段信息是否匹配之前,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
9.根据权利要求1所述的方法,其特征在于,所述大语言模型的微调训练过程包括:
10.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-9任一项所述基于大语言模型的sql语句生成方法的步骤。
