一种基于动态Schema锚定与业务规则注入的SQL生成方法及系统与流程
本发明属于自然语言处理与数据库查询,具体涉及一种将自然语言问题自动转换为符合复杂业务口径的可执行sql语句的方法与系统,可应用于融资租赁、金融风控等具有多表关联、动态表结构和强业务规则约束的垂直领域数据分析场景。
背景技术:
1、随着企业数据资产化进程加快,运营、风控、财务等岗位的业务人员经常需要从数据仓库中提取各类报表指标。多数业务人员并不具备sql编写能力,指标取数通常要提交给技术团队,一来一回沟通成本高、响应周期长。近年来,基于大语言模型(large languagemodel,llm)的text-to-sql技术发展很快,用户输入自然语言问题后模型可以直接生成sql,一定程度上缓解了取数瓶颈。
2、不过,把text-to-sql真正放到生产环境里跑,现有技术还是有不少毛病。其一,静态表结构依赖。多数方案在构造提示词时把表结构固化进去,数据库一旦加字段、加表或者调整关联关系,模型完全感知不到,生成出来的sql要么语法过时、要么查询逻辑错误。其二,业务规则容易被忽视。金融、融资租赁这类场景里存在大量复杂计算口径,比如“总复议通过数”要由预审表与复议表两个来源加总,模型光靠字段名去猜语义,经常生成不符合业务定义的sql。其三,缺少刚性约束校验。没有专门的模块对sql做规则级校验,即使语法正确,也可能因为该用模糊匹配的地方用了等值匹配而查出空结果,或者漏掉某个固定过滤条件导致统计口径偏差。其四,缺少自动修复能力。sql生成错了之后系统往往只返回错误信息,用户得反复改问题重试,交互效率很低。其五,实体别名处理不到位。用户提问时常用简称,数据库中并没有完全相等的记录,查询结果自然为空。
技术实现思路
1、本发明要解决的技术问题是:针对现有text-to-sql技术难以适应动态表结构、难以强制遵循复杂业务规则、缺乏刚性校验与自动修复能力等不足,提供一种基于动态schema锚定与业务规则注入的sql生成方法及系统,使生成的sql在表结构频繁变化、业务口径复杂的生产环境中依然保持正确与稳定。
2、为解决上述技术问题,本发明采用如下技术方案。
3、第一方面,本发明提供一种基于动态schema锚定与业务规则注入的sql生成方法,包括以下步骤:
4、步骤s1,业务域识别:接收用户输入的自然语言问题,通过关键词匹配或轻量级分类模型确定该问题所属的业务域。
5、步骤s2,动态schema锚定:根据业务域预配置的表清单,实时连接数据库获取每张表的字段名、字段类型与字段注释,并基于列名完全匹配且数据类型兼容的原则自动推断表间关联关系,将上述信息格式化为结构化schema上下文。
6、步骤s3,业务规则注入:从业务规则库中读取该业务域对应的规则集合,规则集合至少包括计算公式规则、强制模糊匹配字段列表、特定值约束规则中的一种;将规则集合与步骤s2得到的schema上下文融合,构造结构化提示词。
7、步骤s4,候选sql生成:将结构化提示词输入大语言模型,获取模型输出文本,并从输出文本中提取候选sql。
8、步骤s5,规则校验:利用有限状态机对候选sql进行规则校验,校验内容包括:强制模糊匹配字段是否使用了模糊匹配操作符、计算公式所需的字段是否被引用、特定约束条件是否存在。
9、步骤s6,自动修复:若校验未通过且重试次数未达到预设上限,则分析违规类型,从修复模板库中选择对应修复指令追加到原提示词中,重新调用大语言模型生成新的候选sql并再次校验,直至校验通过或达到重试上限。
10、步骤s7,反馈学习:将最终校验通过的自然语言问题、正确sql与业务域进行向量化后存入向量数据库;当收到新的查询时,检索相似度最高的k个成功案例作为少样本示例融合到提示词中。
11、第二方面,本发明提供一种基于动态schema锚定与业务规则注入的sql生成系统,包括业务域识别模块、动态schema锚定模块、业务规则库模块、提示词构造模块、大语言模型调用模块、sql提取器、规则校验模块、自动修复模块以及反馈学习模块。
12、与现有技术相比,本发明具有以下有益效果:
13、实时获取最新schema,表结构变更后无需人工同步配置,sql生成正确率的下降幅度显著低于传统方法。
14、通过“规则注入+校验+修复”闭环,将计算公式、模糊匹配、固定约束等业务口径以可插拔方式强制作用于sql生成过程,常规指标计算正确率显著提升。
15、对经销商名称等易出现简写的字段强制采用模糊匹配,有效避免因等值匹配导致的空结果,查询召回率显著提升。
16、首次生成通过率与自动修复后的整体通过率均达到较高水平,减少人工干预,提升交互效率。
17、新增业务域只需配置规则库与表清单,无需修改核心代码。
1.一种基于动态schema锚定与业务规则注入的sql生成方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于动态schema锚定与业务规则注入的sql生成方法,其特征在于,根据所述业务域动态获取数据库表的结构信息,包括:
3.根据权利要求1所述的基于动态schema锚定与业务规则注入的sql生成方法,其特征在于,所述强制模糊匹配字段列表用于限定指定字段在where条件中必须采用模糊匹配操作符,禁止采用等值匹配操作符;所述特定值约束规则用于限定生成sql时必须在where条件中附加的固定过滤条件。
4.根据权利要求1所述的基于动态schema锚定与业务规则注入的sql生成方法,其特征在于,对所述候选sql进行规则校验,包括:
5.根据权利要求1所述的基于动态schema锚定与业务规则注入的sql生成方法,其特征在于,启动自动修复流程,包括:
6.根据权利要求5所述的基于动态schema锚定与业务规则注入的sql生成方法,其特征在于,所述预设上限为两次;当重试次数达到所述预设上限且校验仍未通过时,返回错误提示信息。
7.根据权利要求1所述的基于动态schema锚定与业务规则注入的sql生成方法,其特征在于,还包括反馈学习步骤:将校验通过的自然语言问题、对应sql及业务域进行向量化,存入向量数据库;当收到新的自然语言问题时,从所述向量数据库中检索相似度最高的k个成功案例,将所述成功案例作为少样本示例融合至所述结构化提示词中。
8.一种基于动态schema锚定与业务规则注入的sql生成系统,其特征在于,包括:
9.根据权利要求8所述的基于动态schema锚定与业务规则注入的sql生成系统,其特征在于,所述动态schema锚定模块还包括表间关联推断单元,所述表间关联推断单元通过比较不同表的列名及数据类型兼容性,生成表间关联关系。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的基于动态schema锚定与业务规则注入的sql生成方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com