LLM-Text-to-SQL-Architectures
五种递进式架构,从意图识别到Agent自主纠错,系统性掌握LLM驱动自然语言查询BigQuery的核
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
五种递进式架构,从意图识别到Agent自主纠错,系统性掌握LLM驱动自然语言查询BigQuery的核
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你对着一台电脑说「查询过去三个月销售额最高的前十名客户」,几秒钟后,精确的SQL语句就呈现在屏幕上,数据库乖乖返回你想要的结果。这不是科幻,而是 LLM-Text-to-SQL-Architectures 正在做的事。
Text-to-SQL(自然语言转SQL)并非新鲜课题,传统方案依赖规则解析或弱监督学习,效果始终受限于固定模板和有限泛化能力。直到 GPT-3.5/4 等大语言模型(LLM)横空出世,业界才看到了真正的突破——LLM 强大的语义理解能力,使其能够理解自然语言的真实意图,并将其准确映射为 SQL 语法。
本项目由独立开发者 Arun Shankar 创建(GitHub: arunpshankar),聚焦于 Google BigQuery 平台的 LLM + SQL 生成场景。仓库采用 MIT 许可证,2023年10月开源,获得了258个Star和53个Fork,在 Text-to-SQL 教育类仓库中属于较高关注度的项目。
图1:五种架构模式全景图
项目将 Text-to-SQL 的实现路径划分为 5种递进式架构模式,从简单到复杂,适合不同技术成熟度的团队:
这是最直观的实现路径:LLM 先从用户问题中识别查询意图(SELECT/JOIN/AGGREGATE等)和关键实体(表名、字段名、时间范围),再据此组装 SQL 语句。
优点是逻辑清晰、调试友好,适合结构简单的问题;缺点是当用户问题涉及复杂嵌套查询或多表关联时,实体识别的错误会逐级放大,导致最终 SQL 失败。
图2:Pattern I 架构——意图检测与实体识别
本模式引入了 RAG(Retrieval-Augmented Generation) 机制,在生成 SQL 前先从数据库的元数据(表名、列名、数据类型、约束关系)中检索相关内容,补充给 LLM 的上下文。
这样做的好处是:即使 LLM 本身不了解目标数据库的具体结构,也能借助检索到的 schema 信息做出准确响应。例如用户问「我上个月的订单」时,系统会先检索到 orders 表和 order_date 字段,再生成 WHERE order_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH) 这样的条件。
图3:Pattern II 架构——RAG 检索增强
本模式采用 LangChain Agent 架构,创建一个专门与 BigQuery 交互的 SQL Agent。与前两种模式的「一次性生成」不同,Agent 具备多轮自主纠错能力:
图4:Pattern III 架构——自主 SQL Agent本模式跳过 RAG 步骤,让 LLM 直接接收完整的数据库 Schema 信息。核心亮点在于自我纠错循环:LLM 生成 SQL 后立即执行,若报错则将 BigQuery 返回的错误信息注入下一轮 prompt,引导 LLM 自我修正。
作者还对比了使用 Code-Chat Bison 模型(Google 的代码优化版 LLM)的效果,在部分场景下延迟更低、成本更可控。
图5:Pattern IV 架构——直接 Schema 推断 + 自我纠错
Pattern V 在 Pattern IV 的基础上引入随机性:将 temperature 设为 1.0,让 LLM 对同一个问题生成多条候选 SQL,并行执行后选择执行延迟最低的结果。 这背后的逻辑是:BigQuery 按查询扫描数据量计费,执行速度与查询质量高度相关——更好的查询计划(合理的 JOIN 顺序、有效的 WHERE 剪枝)自然执行更快。用延迟作为质量代理,既不需要人工打分,也不需要额外的评估模型。
项目以 Jupyter Notebook 为主要交付形式,每个 Pattern 配有独立的 .ipynb 文件,总计包含 8 个 Notebook(最大文件达 136KB)。核心依赖:
好消息:项目零容器化依赖——无 Dockerfile、无 docker-compose,直接 pip install -r requirements.txt 即可完成依赖安装。对于 Python 开发者,10分钟能跑通 Pattern I 示例。
坏消息:「Hello World」远非「Production Ready」:
GOOGLE_APPLICATION_CREDENTIALS 环境变量,密钥管理本身有安全合规要求本项目并非生产级解决方案,其定位更接近「架构学习指南」:
尽管项目本身更新停滞,它所提出的 5种 Text-to-SQL 架构演进路径 对行业具有普遍参考价值: