System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及文本转为数据库的结构化查询语言,特别是涉及一种基于view和llm的两阶段text-to-sql生成方法。
技术介绍
1、文本转sql(也称text-to-sql也称 text2sql)任务是将文本转为数据库的结构化查询语言(structured query language, sql), 该技术能使用户在不会sql的情况下,通过自然语言与数据库进行交互。由于用户问题表达方式的多样性、数据库表结构和sql的复杂性,从自然语言问题中生成准确的sql是一项具有挑战性的任务。
2、传统的text-to-sql系统通常基于规则和深度学习网络的方法, 虽然取得了不错的性能, 但基于规则的方法依赖于人工, 因此成本昂贵。而传统基于神经网络的方法需要不断地根据业务的领域来微调模型, 在数据库越来越复杂的当下, 非常不灵活。
3、近年来,随着大语言模型(large language models,llm,也称大模型)的流行,基于llm的text-to-sql成为了广受关注的探索方向。llm凭借强大的语言理解能力,可以在不需要微调的情况下,仅凭借提示词就获得不错的效果。基于大语言模型的text-to-sql虽然相比于之前的方法取得了突破,但由于数据库本身的设计模式是出于数据保存考虑的,而非方便大语言模型理解,使得大语言模型难以对数据库信息进行准确地利用。例如:数据库中的外键能维护两个表之间的数据一致性和关联性,但大语言模型在使用外键对多张表进行join操作后,可能在select操作或where操作时,将表和字
4、因此,为了避免大语言模型对数据库模式理解错误导致text-to-sql任务性能下降的问题,提供一种基于view和llm的两阶段text-to-sql生成方法以解决现有技术不足甚为必要。
技术实现思路
1、本专利技术的目的在于避免现有技术的不足之处而提供一种基于view和llm的两阶段text-to-sql生成方法,能够提高大语言模型理解和查询的准确性,提高处理效率。
2、本专利技术的目的通过以下技术措施实现。
3、提供一种基于view和llm的两阶段text-to-sql生成方法,包括:
4、第一阶段: 将用户查询请求、view的描述信息填充到第一prompt中,将第一prompt输入到大语言模型中,由大语言模型生成view查询语句;
5、第二阶段: 将预处理阶段中view的创建语法和第一阶段中生成的view查询语句填充到第二prompt中,将第二prompt输入到大语言模型中,由大语言模型将查询view的语法还原为查询数据库原始表的sql。
6、优选的,上述的基于view和llm的两阶段text-to-sql生成方法,在第一阶段之前还设置有预处理阶段:为数据库创建view,同时得到view的创建语法。
7、优选的,上述的基于view和llm的两阶段text-to-sql生成方法,预处理阶段,为数据库创建view,使得通过view,查询需求时不需使用join操作。
8、优选的,上述的基于view和llm的两阶段text-to-sql生成方法,预处理阶段,为数据库创建view的标准是消除外键。
9、优选的,上述的基于view和llm的两阶段text-to-sql生成方法,在第一阶段,当用户提问时,将用户的问题转为向量,用该问题向量在数据库中匹配“sql示例”、“view描述”,将匹配到的信息和用户问题填充到第一prompt中,将第一prompt输入到大语言模型,由大语言模型生成view查询语句。
10、优选的,上述的基于view和llm的两阶段text-to-sql生成方法,第一prompt 设置为格式模板。
11、优选的,上述的基于view和llm的两阶段text-to-sql生成方法,第二阶段,将预处理阶段中view的创建语法和第一阶段中生成的view查询语句填充到第二prompt中并输入给大语言模型,由大语言模型将查询view的语法还原为查询数据库原始表的sql。
12、优选的,上述的基于view和llm的两阶段text-to-sql生成方法,第二阶段,由大语言模型将查询view的语法还原为查询数据库原始表的sql的方法是:先用view的查询语句和view的创建语句对原表进行架构链接schema linking,确定出要查询的表和表中字段;
13、然后将view查询语句、view创建语句、架构链接(schema linking)后的表描述、用户问题填充到prompt中并将prompt输入大语言模型,得到查询数据库原始表的sql。
14、优选的,上述的基于view和llm的两阶段text-to-sql生成方法,第二prompt 设置为格式模板。
15、本专利技术一种基于view和llm的两阶段text-to-sql生成方法,第一阶段: 将用户查询请求、view的描述信息填充到大语言模型中,由大语言模型生成view查询语句;第二阶段: 将预处理阶段中view的创建语法和第一阶段中生成的view查询语句填充到大语言模型中,由大语言模型将查询view的语法还原为查询数据库原始表的sql。本申请的基于llm解决复杂表格text-to-sql的方案,提出了一种基于view和llm的sql生成方案,本方案借助view对数据库重新进行描述,降低了大语言模型理解数据库模式的难度。然后根据view的创建语句,对生成的view查询语句进行转换,由大语言模型将查询view的语法还原为查询数据库原始表的sql,避免了依靠view查询时查询效率低和与直接查询数据库结果可能不一致的问题。能够提高提高大语言模型理解和查询的准确性,提高响应时间,提高处理效率。
本文档来自技高网...【技术保护点】
1.一种基于VIEW和LLM的两阶段Text-to-SQL生成方法,其特征在于,包括:
2.根据权利要求1所述的基于VIEW和LLM的两阶段Text-to-SQL生成方法,其特征在于:在第一阶段之前还设置有预处理阶段:为数据库创建View,同时得到View的创建语法。
3.根据权利要求2所述的基于VIEW和LLM的两阶段Text-to-SQL生成方法,其特征在于:预处理阶段,为数据库创建View,使得通过View,查询需求时不需使用join操作。
4.根据权利要求3所述的基于VIEW和LLM的两阶段Text-to-SQL生成方法,其特征在于:预处理阶段,为数据库创建View的标准是消除外键。
5.根据权利要求1至4任意一项所述的基于VIEW和LLM的两阶段Text-to-SQL生成方法,其特征在于:在第一阶段,当用户提问时,将用户的问题转为向量,用该问题向量在数据库中匹配“SQL示例”、“View描述”,将匹配到的信息和用户问题填充到第一prompt中,将第一prompt输入到大语言模型中,由大语言模型生成View查询语句。
...【技术特征摘要】
1.一种基于view和llm的两阶段text-to-sql生成方法,其特征在于,包括:
2.根据权利要求1所述的基于view和llm的两阶段text-to-sql生成方法,其特征在于:在第一阶段之前还设置有预处理阶段:为数据库创建view,同时得到view的创建语法。
3.根据权利要求2所述的基于view和llm的两阶段text-to-sql生成方法,其特征在于:预处理阶段,为数据库创建view,使得通过view,查询需求时不需使用join操作。
4.根据权利要求3所述的基于view和llm的两阶段text-to-sql生成方法,其特征在于:预处理阶段,为数据库创建view的标准是消除外键。
5.根据权利要求1至4任意一项所述的基于view和llm的两阶段text-to-sql生成方法,其特征在于:在第一阶段,当用户提问时,将用户的问题转为向量,用该问题向量在数据库中匹配“sql示例”、“view描述”,将匹配到的信息和用户问题填充到第一prompt中,将第一pro...
【专利技术属性】
技术研发人员:尤泽顺,李静,沈贤义,
申请(专利权)人:广州华微明天软件技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。