text2ql:基于语言无关中间表示的多目标自然语言查询
摘要
text2ql是一个开源的Python框架,通过语言无关的中间表示实现多目标自然语言查询,支持SQL和GraphQL,并提供基于LLM和确定性模式,在基准测试中实现高准确率。
arXiv:2609.02115v1 公告类型:新
摘要:数据库的自然语言接口传统上受到三个结构性限制:专门针对关系型SQL、在查询时无条件依赖大语言模型(LLM)推理,以及当生成的查询在语义上不正确时没有任何运行时信号。本文介绍了text2ql,一个开源的Python框架,通过语言无关的中间表示(QueryIR)和可插拔的渲染器架构解决了所有这些限制。单一的七阶段检测流程服务于SQL和GraphQL目标;零LLM确定性模式以3.2毫秒的中位延迟提供100%的执行准确性,且无API成本;每个生成的查询都带有一个运行时置信度分数,范围在[0.15, 0.97]之间,由加法信号模型计算得出。在从Spider和BIRD基准测试中随机抽取的50个查询样本上进行评估(指示性结果;计划进行完整集评估),基于LLM的模式实现了62-70%的精确匹配和84-91%的执行准确性;确定性模式在所有100个测试案例中实现了100%的执行准确性,零解析错误。一项消融研究将模式感知提示确定为主要的准确性杠杆,在两个基准测试中比无模式基线贡献了+18.4个百分点的精确匹配增益。text2ql可在https://pypi.org/project/text2ql/下以Apache 2.0许可公开获取。
查看缓存全文
缓存时间: 2026/09/03 05:51
# 摘要 来源:https://arxiv.org/html/2609.02115 text2ql:通过语言无关的中间表示实现多目标自然语言查询 Ritesh Kumar 独立研究员 美国 [email protected] 本文作者自存档版本,原载于《国际计算机应用期刊》第187卷第114期第54-62页(2026年6月),由纽约计算机科学基金会出版。DOI:10.5120/ijcaff3006d1ef8e (https://doi.org/10.5120/ijcaff3006d1ef8e)。依据IJCA作者自存档政策转载至arXiv。保留所有权利。 自然语言数据库接口长期受制于三大结构性缺陷:仅针对关系型SQL、查询时无条件依赖大语言模型(LLM)推断,以及生成查询存在语义错误时缺乏运行时反馈信号。本文提出text2ql——一个开源Python框架,通过语言无关的中间表示(QueryIR)与可插拔渲染器架构同步解决这三重局限。七阶段检测流水线同时服务SQL与GraphQL目标;零LLM确定性模式在3.2毫秒中位延迟下实现100%执行准确率且零API成本;每个生成查询均附带基于加性信号模型计算的运行时置信度得分[0.15,0.97]。基于Spider和BIRD基准测试的50查询随机抽样评估(指示性结果;完整集评估已列入计划)显示,LLM辅助模式达到62-70%精确匹配率与84-91%执行准确率;确定性模式在全部100个测试案例中实现100%执行准确率且零解析错误。消融研究确认模式感知提示是准确率的核心杠杆,在两个基准测试中较无模式基线分别提升+18.4个百分点的精确匹配增益。text2ql遵循Apache 2.0许可协议于https://pypi.org/project/text2ql/公开发布。 ## 关键词 自然语言数据库接口;NL2QL;文本转SQL;文本转GraphQL;中间表示;模式感知生成;置信度评分;查询合成;NLIDB ## 1. 引言 自然语言数据库接口的研究已持续五十年[1 (https://arxiv.org/html/2609.02115#bib.bib1), 2 (https://arxiv.org/html/2609.02115#bib.bib2), 3 (https://arxiv.org/html/2609.02115#bib.bib3)]。核心挑战——将无约束人类语言解析为形式正确、可执行的查询——在大型预训练语言模型出现前始终无法实现通用解决方案。图1 (https://arxiv.org/html/2609.02115#S1.F1)展示了text2ql的核心能力:单一自然语言语句被解析为语言无关的QueryIR,并同步渲染为GraphQL选择集与SQL语句,全程低于五毫秒且无需外部API调用。 参见图片图1:text2ql运行示例。自然语言输入被转换为QueryIR并渲染为等效的GraphQL和SQL查询。尽管取得显著进展——PICARD[4 (https://arxiv.org/html/2609.02115#bib.bib4)]在Spider上达到79.3%精确匹配率;DAIL-SQL[5 (https://arxiv.org/html/2609.02115#bib.bib5)]达到86.6%——但所有已发布系统都共享text2ql直接解决的三重结构缺陷: - • SQL垄断化。所有既往NL2QL系统均仅针对关系型SQL。现代应用栈通过GraphQL API、图数据库和文档存储暴露数据,尚无开源系统支持从单一流水线生成多目标查询。 - • 无条件LLM依赖。实时、边缘及隔离部署环境无法容忍500-2000毫秒的LLM往返延迟或每查询API成本。text2ql的确定性模式仅需Python与模式配置文件即可实现100%执行准确率。 - • 静默失效。LLM系统可能生成语法正确但语义错误的查询且无任何警告。text2ql为每个结果附加运行时置信度得分,在查询执行前暴露不确定性,使调用方可进行门控、升级或路由至备用方案。 本工作的主要贡献包括: 1. 1. 语言无关的QueryIR将自然语言解析与查询渲染解耦,通过单个IRRenderer子类即可支持新目标语言,无需修改任何引擎。 2. 2. 零LLM确定性引擎在测试语料上实现100%执行准确率、低于5毫秒的p50延迟及零API成本,适用于生产与离线部署。 3. 3. 混合映射系统结合自动生成的模式基线与领域专家覆盖规则,运行时合并并完整追踪溯源。 4. 4. 基于加性信号与验证罚分的运行时置信度评分模型,限幅至[0.15,0.97],支持跨模式动态级联。 5. 5. 开放基准测试基础设施,包含Spider与BIRD加载器、三种评估模式及模式感知提示的消融研究。 ## 2. 相关工作 ### 2.1 经典NL2DB系统 早期NL2DB系统确立了至今仍具现实意义的核心挑战。LUNAR[1 (https://arxiv.org/html/2609.02115#bib.bib1)]与Hendrix等人[2 (https://arxiv.org/html/2609.02115#bib.bib2)]展示了需要大量手工工程部署的领域专用接口。NaLIR[6 (https://arxiv.org/html/2609.02115#bib.bib6)]通过交互式解析树优化提升了通用性,但仍需用户修正解析错误。所有预神经网络系统都存在根本局限:若无重新工程化则无法跨领域泛化。这种脆弱性推动了第2.2节[https://arxiv.org/html/2609.02115#S2.SS2]探讨的学习表征范式转变。 ### 2.2 神经网络文本转SQL Seq2SQL[7 (https://arxiv.org/html/2609.02115#bib.bib7)]确立了序列到序列建模作为文本转SQL的主流范式。IRNet[8 (https://arxiv.org/html/2609.02115#bib.bib8)]引入SemQL——首个文本转SQL中间表示——直接启发了本文提出的QueryIR设计。RAT-SQL[9 (https://arxiv.org/html/2609.02115#bib.bib9)]添加关系感知模式编码,在Spider上达到69.7%。ShadowGNN[10 (https://arxiv.org/html/2609.02115#bib.bib10)]与LGESQL[11 (https://arxiv.org/html/2609.02115#bib.bib11)]通过图神经网络推进模式链接。PICARD[4 (https://arxiv.org/html/2609.02115#bib.bib4)]从T5-3B引入增量约束解码,达到79.3%精确匹配率,确立了LLM方法出现前的预训练模型技术标杆。 ### 2.3 基于LLM的文本转SQL GPT系列模型显著改变了技术格局。DIN-SQL[12 (https://arxiv.org/html/2609.02115#bib.bib12)]通过GPT-4自我纠正分解任务,在Spider上达到82.8%。DAIL-SQL[5 (https://arxiv.org/html/2609.02115#bib.bib5)]优化少样本选择与提示结构以达到86.6%——目前无需微调的最高报告结果。C3[13 (https://arxiv.org/html/2609.02115#bib.bib13)]探索零样本策略;ACT-SQL[14 (https://arxiv.org/html/2609.02115#bib.bib14)]自动生成思维链推理。CodeS[15 (https://arxiv.org/html/2609.02115#bib.bib15)]微调StarCoder,使用开源权重模型匹配基于GPT-4的系统。所有这些系统均仅针对SQL,每个查询都需要LLM推断,且不提供运行时准确率信号。 ### 2.4 GraphQL与多目标自然语言接口 关于自然语言转GraphQL的研究仍较为稀缺。郑等人[16 (https://arxiv.org/html/2609.02115#bib.bib16)]演示了将自然语言转换为结构化数据集GraphQL查询的原型。Rai等人[17 (https://arxiv.org/html/2609.02115#bib.bib17)]利用LLM辅助生成GraphQL查询,但未采用模式感知提示或不确定性量化。这两个系统均不能脱离LLM运行,也不支持SQL作为并行目标。据现有知识,text2ql是首个在统一流水线中支持SQL与GraphQL双目标,并具备无LLM操作模式的系统。 ## 3. 系统架构 图2 (https://arxiv.org/html/2609.02115#S3.F2)展示了四层架构。Text2QL门面(core.py)作为唯一公共入口点;它将任务分派给语言专用引擎;每个引擎生成QueryIR;QueryIR被传递至可插拔的IRRenderer序列化最终查询字符串。这种分离确保添加新查询目标(如Cypher)仅需实现IRRenderer.render(),无需修改任何引擎或检测阶段。 参见图片图2:四层架构。QueryIR将解析与渲染解耦,并通过渲染器插件支持新目标语言。 ### 3.1 Text2QL门面 门面维护按目标语言索引的引擎注册表,提供同步generate()与异步agenerate()接口。模式选择(确定性/LLM/函数调用)是每次调用的参数,允许单一模式配置同时服务三种模式而无需重新实例化。 ### 3.2 引擎层 每个引擎继承QueryEngine抽象基类,提供共享工具:模式规范化、置信度计算、指数退避重试逻辑、备用方案链式调用与结构化日志。GraphQL和SQL引擎实现相同的阶段签名,确保任何检测阶段的改进都能惠及所有目标语言。 ### 3.3 模式配置 NormalizedSchemaConfig是生产部署的主要扩展点。它编码:实体名称与别名、带类型和别名的字段列表、过滤键别名(业务术语到字段名)、过滤值别名(受控词汇到枚举值)、带ON列的关系定义、每个实体的默认字段、参数默认值以及关键字意图路由表(例如:"portfolio value"→accountSummary.totalValue)。 ### 3.4 QueryIR QueryIR是带类型的Python数据类,包含字段:entity、fields(列表)、filters(IRFilter列表,含运算符枚举)、aggregations(IRAggregation列表)、joins(IRJoin列表,SQL)、nested(IRNested列表,递归,GraphQL)、order_by、order_direction、limit、offset、distinct、having和group_filters。IRNested为自引用结构,支持任意深度的GraphQL选择集同时保持模式严格解耦。 ### 3.5 渲染器层 IRRenderer是抽象基类,包含一个必需方法:render(ir: QueryIR) -> str。GraphQLIRRenderer构建参数(过滤+分页)与选择集(字段+聚合+嵌套子选择)。SQLIRRenderer序列化完整SELECT语句,包括JOIN、WHERE、GROUP BY、HAVING、ORDER BY及LIMIT/OFFSET子句。预估Cypher渲染器约需150行代码。 ## 4. 多阶段检测流水线 确定性引擎通过七个独立可测阶段解析自然语言查询(图3 (https://arxiv.org/html/2609.02115#S4.F3))。阶段顺序执行,每个阶段丰富共享QueryIR。故障被记录为验证问题并转换为置信度罚分而非硬性异常,保证每个输入都能产生输出。 参见图片图3:七阶段检测流水线。各阶段解决实体、字段、过滤器、聚合、关系、排序、验证与置信度问题。 ### 4.1 阶段1 — 实体/表解析 引擎应用优先级有序级联:(i)通过entity_aliases进行别名精确匹配;(ii)模式名称精确匹配;(iii)为配置的领域短语进行keyword_intents路由;(iv)语义字段重叠评分——字段集与查询具有最高令牌重叠的实体胜出;(v)过滤值推断——若过滤值出现在特定实体的filter_value_alias映射中,则推断该实体;(vi)列提及推断;(vii)启发式停用词移除与BFS回退。 ### 4.2 阶段2 — 字段/列检测 给定已解析的实体,输出字段通过三种机制选择:(i)显式字段提及经别名扩展后与实体字段列表匹配;(ii)当未检测到显式字段时注入模式配置中的default_fields;(iii)聚合关键字隐式引入其目标字段。字段别名允许业务术语(如:"market cap"→totalMarketValue)无需修改模式即可解析。 ### 4.3 阶段3 — 过滤器检测 可组合正则引擎处理:等式(隐式)、不等式(is not/!=)、有序比较(>, >=, <, <=)、范围谓词(between N and M; from DATE to DATE)、集合成员(in/not in)与空值检查。过滤键别名将业务词汇映射到模式字段名;过滤值别名将受控词汇映射到存储的枚举值,允许诸如"active accounts"的查询解析为status = 'ACTIVE'。 ### 4.4 阶段4 — 聚合检测 聚合关键字(count、total、average、minimum、maximum、sum)触发COUNT/SUM/AVG/MIN/MAX,并对非聚合投影字段隐式GROUP BY。检测到聚合后条件时生成HAVING子句。对于GraphQL,聚合函数作为与父实体相同嵌套深度的选择集别名进行渲染。 ### 4.5 阶段5 — 连接/嵌套关系检测 对于SQL,配置的关系定义提供JOIN ON列对;连接类型(LEFT OUTER、INNER)通过否定信号与空值检查模式推断。对于GraphQL,嵌套检测在模式关系图上执行BFS直至深度三,使用frozenset循环守卫防止无限遍历。两条路径共享引擎基类中的相同关系解析逻辑。 ### 4.6 阶段6 — 分页与排序 LIMIT和OFFSET值通过数值令牌扫描结合分页意图关键字(top、first、latest、next page)提取。ORDER BY字段与方向通过比较级最高级(highest、lowest、most recent)和方向关键字(ascending、descending)推断。模式args配置可在无排序信号时提供默认排序字段和方向。 ### 4.7 阶段7 — 验证与置信度评分 最终阶段根据模式验证组装的QueryIR:未知字段、缺失必需过滤器与类型不匹配被记录为验证问题。置信度得分(表1 (https://arxiv.org/html/2609.02115#S4.T1))计算为实体解析质量、字段覆盖率、过滤丰富度与结构复杂度的加性信号总和,减去上限为-0.20的验证罚分,再限幅至[0.15,0.97]。0.15的下限确保每个输出可操作——即使完全无法解析的查询也会生成可人工审查的备用结果——而0.97的上限反映不可消除的语言歧义性。该分数是运行时级联路由决策的主要信号。 表1:置信度得分信号组件。 ## 5. 生成模式 ### 5.1 确定性模式 完整七阶段流水线在不进行任何LLM调用的情况下运行。引擎生成保守但语义正确的查询:显式字段列表、规范过滤参数顺序与详尽聚合语法。在标准基准测试上精确匹配率为0%,因为标准答案注释偏好紧凑等价形式——这反映指标差异而非正确性失败;执行准确率在100个测试案例中达到100%零错误。
相似文章
AgentNLQ:一种通用的自然语言到SQL代理
本文介绍了AgentNLQ,一个用于自然语言到SQL转换的多代理系统,通过模式增强和自校正编排器在BIRD基准测试上达到了78.1%的语义准确率。
DualSQL:基于多智能体强化学习的文本到SQL技术
DualSQL 提出了一种用于文本到SQL的多智能体强化学习框架,利用单一共享模型联合优化模式链接和SQL生成,以更小的模型大小实现了最先进的准确性。
SQuaD-SQL: 利用LLM引导的知识蒸馏实现小型语言模型的高效文本到SQL
SQuaD-SQL使用LLM引导的知识蒸馏训练小型语言模型进行Text-to-SQL,在WikiSQL上达到86.9%的执行准确率,同时提供更快的推理速度和更低的内存占用。
UniQL:面向文本到SQL的方言通用基准测试
介绍了UniQL,这是一个经过人工验证的可执行基准测试,用于跨方言文本到SQL评估,解决了像Spider和BIRD等现有基准测试中缺乏方言多样性的问题。
一种基于语义层的异构企业数据库自然语言转SQL智能体
本文提出了一种基于语义层的NL2SQL智能体,通过推理精心设计的语义模型将意图与物理执行解耦,在Spider2-snow基准上实现了94.15%的执行准确率。