企业级 Text-to-SQL 完整执行流程

企业级 Text-to-SQL 完整执行流程

Text-to-SQL(也常被称为 NL2SQL)是一项将自然语言转换为结构化查询语言的技术。

简单来说,它就像一个"翻译官",让你可以用大白话向数据库提问,系统会自动帮你写成数据库能听懂的 SQL 代码,然后查出结果。

你可以把这个流程直接作为开发蓝图,它涵盖了从用户提问到最终展示的全过程:

🚀 完整执行流程图解

非查询意图
查询意图
执行报错


执行成功
用户提问
意图识别与预处理
直接回复/闲聊
元数据检索
筛选出 Top-N 相关表结构
构建提示词与生成 SQL
沙箱试执行
重试次数 < 阈值?
收集错误信息 + 原始 SQL
返回错误提示
数据后处理与展示


📝 详细步骤拆解

第一步:意图识别与预处理
  • 输入:用户自然语言(如"帮我查下张三上个月的销售业绩")。
  • 动作
    • 清洗:去除无意义字符。
    • 分类 :调用大模型判断意图。
      • 如果是闲聊 (如"你好"、"你是谁"),直接由大模型回复,不进入数据库流程
      • 如果是查询,提取关键实体(如"张三"、"上个月")。
  • 目的:过滤无效请求,节省 Token,防止恶意注入。
第二步:元数据检索
  • 输入:用户问题 + 实体。
  • 动作
    • 不要把所有表都给大模型。
    • 使用向量检索或关键词匹配,从你的数据库元数据(表名、字段名、注释)中,筛选出最相关的 3-5 张表。(在表名或者数据字段不多的情况下,也可以把所有sheet和字段名给大语言模型)
    • 获取这些表的 DDL(建表语句)或 Schema 信息。
  • 目的:减少噪声,降低 Token 成本,提高准确率。
第三步:提示词构建与 SQL 生成
  • 输入:用户问题 + 筛选后的元数据 + 业务术语定义。
  • 动作
    • 组装提示词(Prompt): "你是一个 SQL 专家。根据提供的表结构 Schema,回答用户问题:Query。请只输出 SQL 语句。"
    • 调用大模型生成 SQL。
  • 输出:初步生成的 SQL 语句。
第四步:沙箱试执行
  • 输入:生成的 SQL。
  • 动作
    • 安全拦截 :检查是否包含 DELETE, DROP, UPDATE 等危险指令。如果是,直接拦截。
    • 试跑:使用只读账号在数据库中执行该 SQL。
  • 结果分支
    • 成功:进入第五步。
    • 失败 :捕获数据库返回的错误信息(如 Error: Column 'sales_amt' not found)。
第五步:自我修正
  • 触发条件:沙箱执行报错。
  • 动作
    • 将"错误信息" + "原始 SQL" + "正确的表结构"再次喂给大模型。
    • 提示词:"刚才的 SQL 执行报错了:Error Message,请修正它。"
  • 循环:重复"生成 -> 试执行"的过程(建议限制最多重试 2-3 次,防止死循环)。
第六步:数据后处理与展示
  • 输入:查询成功的结果集(JSON/列表)。
  • 动作
    • 格式化:将数据转换为前端易读的格式。
    • 可视化推荐:根据数据特征(如时间序列、占比),自动推荐图表类型(折线图、饼图)。
  • 输出:最终展示给用户的界面。

💡 核心优化点总结

  • 不要全量投喂 :一定要做元数据检索,只给大模型看相关的表。
  • 一定要做沙箱 :用只读账号试跑,既能验证 SQL 对错,又能防止删库。
  • 允许犯错但要学会改 :加入自我修正机制,利用数据库的报错信息来反向优化大模型的生成结果。

按照这个流程开发,你的系统就已经具备了成熟商业软件(如 SQLBot、Cirboot)的核心能力了。

相关推荐
jkyy20142 小时前
深耕AI健康医疗数据智库,赋能企业构建主动健康管理新生态
大数据·人工智能·健康医疗
AI-好学者2 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
其实防守也摸鱼3 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚4 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
龙仔7254 小时前
SQL Server 创建只读账号完整操作(分两种场景:SSMS图形界面 + T-SQL脚本)
数据库·sql·oracle
2601_961946084 小时前
AI API 网关实战:从单 Key 管理到企业级多租户架构
大数据·人工智能·金融·架构·api·个人开发
霁月的小屋4 小时前
生产环境中的事务实践——银行系统上线记(四)
数据库
Database_Cool_4 小时前
AI 应用数据底座首选:阿里云 PolarDB 为大模型 RAG 提供一体化支撑
数据库·阿里云
玖玥拾5 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
IvorySQL6 小时前
PG 日报|社区讨论重构 pg_hba 配置文件格式
数据库·人工智能·postgresql·重构·ivorysql