Text2SQL零代码实战!RAGFlow 实现自然语言转 SQL 的终极指南

Text-to-SQL小白入门(十)RLHF在Text2SQL领域的探索实践 本文主要介绍了Text2SQL的基本概念,以及RLHF的概念和框架,最后结合DB-GPT-Hub项目,将RLHF方法应用于Text2SQL任务进行实践探索。 阅读详情
AI摘要

企业大模型应用中,Text2SQL是热点,但传统方案成本高。本文介绍用开源RAG框架RAGFlow,结合知识库检索与大模型推理,无需微调模型,配置少量数据即可精准生成SQL。还展示了多种查询场景效果,以及搭建Text2SQL智能助手的流程和准备工作,最后分享了大模型AI学习方法。

在企业大模型应用方面,Text2SQL一直是应用热点。大家都希望小嘴一张,就完成一系列数据提取和分析工作。

但是,使用大模型自动理解业务需求,实现 SQL 代码编写和代码执行一直都存在技术难点。传统的 Text2SQL 方案,往往依赖大模型微调,对于中小企业而言,带来非常高的应用成本。

今天,介绍一个方法,使用开源 RAG 框架RAGFlow,应用知识库检索与大模型推理结合,不需要对模型做任何微调,只需要仅需配置少量结构化数据即可实现精准SQL生成,实现指定数据查询、负责查询、计算,跨表计算等多种场景。

老习惯,先看效果,再看执行。

一、表内容和效果简单说明

我的数据库里存了四张表:用户表、制造商表、商品表和销售表。内容分别如下:

1-表明细查询测试

问题:请问商品 智能手机 X 还剩多少库存。

难度分析:智能体需要理解问题所在的表,完成表格选择(商品表),字段查询(商品名称)和目标字段(库存)输出。

原表中符合要求的记录:

Image

测试结果:通过,两条记录库存均完成识别和输出。

Image

2-表明细查询和合并计算

问题:请问商品 智能手机 X 还剩多少总库存。

难度分析:智能体需要理解问题所在的表,完成表格选择(商品表),字段查询(商品名称)和目标字段(库存)求和计算输出。

原表中符合要求的记录(同上):

Image

测试结果:通过,两条记录库存均完成识别,并对库存求和输出。

Image

3- 跨表关联

问题:请问商品 智能手机 X 的制造商是谁

难度分析:智能体需要理解问题所在的表,完成表格选择(商品表),字段查询(商品名称)和目标字段(制造商id)。并返回制造商表,使用制造商
id,提取制造商信息,再作输出。

原表中符合要求的记录:

Image

Image

测试结果:通过,两条智能手机 X 的制造商都是商家_001。

Image

4- 复杂查询

问题:查询连续 3 个月销量下降的商品

难度等级:🌟🌟🌟🌟🌟

难度分析:智能体需要理解问题所在的表,完成表格选择(销售表),字段查询(商品名称)和目标字段(销量),进行复杂销量比对(连续 3
个月销量下降),并返回商品信息。

原表中符合要求的记录,分别有商品 1、2、4、5 这四个商品符合要求。

商品 1,8-10 月销量下滑。

Image

商品 2,5-7 月销量下滑。

Image

商品4,5-8 月销量下滑。

Image

商品 5,4-6 月销量下滑。

Image

测试结果:通过,4 个商品连续 3 个月销量下降,均被有效识别。

Image

5- 指定要求复杂查询

问题:查询2024 年 4-6 月,连续 3 个月销量下降的商品

难度等级:🌟🌟🌟🌟🌟

难度分析:智能体需要理解问题所在的表,完成表格选择(销售表),字段查询(商品名称)和目标字段(销量),限定日期(4-6
月),进行复杂销量比对(连续 3 个月销量下降),并返回商品id。

原表中,只有商品5 符合要求。

Image

测试结果:通过,商品5 ,被有效识别出。

Image

6- 再上一点点难度

问题:查询2024 年 4-6 月,连续 3 个月销量下降的商品详细信息。

难度等级:🌟🌟🌟🌟🌟

难度分析:智能体需要理解问题所在的表,完成表格选择(销售表),字段查询(商品名称)和目标字段(销量),限定日期(4-6
月),进行复杂销量比对(连续 3 个月销量下降),并返回商品id,找到商品明细。

Image

测试结果:通过。

Image

接下来,手把手演示如何用RAGFlow搭建一个能理解业务需求的Text2SQL智能助手。

我所使用的 RagFlow 框架。感兴趣的可以自行安装。安装过程省略。

github 地址:https://github.com/infiniflow/ragflow/blob/main/README_zh.md

一、核心流程

这是官方教程提出的使用 RagFlow 解决 Text2SQL 的流程。

简单来说,就是我们准备好足够让大模型理解数据库内的表格、字段的知识库,以及理解从问题到 SQL 代表的问答方法。大模型就可以通过理解用户问题、查询知识库信息、形成 SQL 代码、并执行 SQL,完成从指定数据库里提取相关信息的工作。

Image

官方教程地址:https://ragflow.io/blog/implementing-text2sql-with-ragflow

二、准备工作:3类核心知识库

关键点:Text2SQL的准确性取决于知识库质量,需提前准备以下数据(参考官方文档 )

DDL知识库
作用:提供数据库表结构(如字段类型、主键约束)

示例:

CREATE TABLE `users` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(50) NOT NULL,
  `password` VARCHAR(50) NOT NULL,
  `email` VARCHAR(100),
  `mobile` VARCHAR(20),
  `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_username` (`username`),
  UNIQUE KEY `uk_email` (`email`),
  UNIQUE KEY `uk_mobile` (`mobile`)
);

数据来源:从HuggingFace下载标准模板(后台私信“Text2SQL”提供)

2. DB Description知识库

### 用户表(users)
用户表用于存储网站或应用的用户信息。以下是该表中每个字段的含义:
- `id`: 这是一个整数类型的自增字段,作为用户的唯一标识符(主键)。每次添加新用户时,该字段会自动增加,确保每个用户都有一个唯一的ID。
- `username`: 字符串类型,用于存储用户的用户名。用户名通常是用户登录时使用的唯一标识符。
- `password`: 字符串类型,用于存储用户的密码。出于安全考虑,密码在存储前应进行加密处理。
- `email`: 字符串类型,用于存储用户的电子邮件地址。电子邮件地址可以是用户的另一个登录凭证,并且用于接收通知或重置密码。
- `mobile`: 字符串类型,用于存储用户的手机号码。手机号码可用于登录、接收短信通知或进行身份验证。
- `create_time`: 时间戳类型,记录用户账户创建的时间。默认值为当前时间。
- `update_time`: 时间戳类型,记录用户信息最后更新的时间。每次更新用户信息时,该字段都会自动更新为当前时间。
  • 作用:解释字段业务含义(如“order_date”代表订单创建时间)
  • 示例:
    数据来源:从HuggingFace下载标准模板(后台私信“Text2SQL”提供)

3. Q->SQL知识库

  • 用户问题:“查询2023年销量TOP10商品”
  • 对应SQL:SELECT product, SUM(quantity) FROM sales WHERE YEAR(order_date)=2023 GROUP BY product ORDER BY SUM(quantity) DESC LIMIT 10;
  • 作用:存储自然语言与SQL的映射样本。这个对最终 SQL 代码的可执行性影响至关重要。
  • 示例:
    数据来源:从HuggingFace下载标准模板(后台私信“Text2SQL”提供)

二、准备工作:3类核心知识库

步骤1:创建DB Assistant Agent
1.进入RAGFlow Agent工作台,选择内置DB Assistant模板
Image

绑定目标数据库(支持MySQL/PostgreSQL等)
Image

步骤2:配置知识库参数(核心!)
DDL 知识库配置:
使用 General 切割,块 Token 数选择 8,分段标识符为;。

Image

当你看到知识库内的分块,已经实现一个表的建表语句一个块的时候,就代表配置成功了。

Image

DSL 知识库配置:
同样使用 General 切割,但是块 Token 数选择 128,分段标识符为#。

Image

当你看到知识库内的分块,已经实现一个表的表及字段说明一个块的时候,就代表配置成功了。

Image

Q->SQL知识库配置:
这部分内容比较特殊,因为我们配置的知识库导入格式是 csv,这个 csv 里有两列内容,分别是 query 和 sql。例如:

Image

所以,配置方法需要选择 Q&A。

Image

当你看到知识库内的分块,已经实现Question 和 Answer 这样规律问答对的时候,就代表配置成功了。

Image

步骤3:Agent 配置知识库
Agent 中的 DDL 选择数据库配置。

Image

接下来,依次如法炮制。

Image

Image

步骤4:测试与优化
进入 Agent 平台,点击“运行”按钮,我们就可以进行问答测试了。

案例:用户提问“我们现在有多少个用户”

Image

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

大模型LLM在Text2SQL(文本转SQL)上的应用实战 阅读详情

相关推荐

自然语言转SQL的应用场景探索

自然语言转SQL的应用场景探索

engchina的专栏 3294

在RAGFlow中实践Text2SQL

RAGFlow 0.10 正式发布,应广大社区用户要求,引入了Text2SQL特性。

datageek的博客 9759

windows+ragflow+deepseek实战之二Text2sql查询

windows+ragflow+deepseek实战之二Text2sql查询

yilvyangguang520的博客 521

自然语言转SQL(NL2SQL、Text2SQL)

使用 FastAPI 框架和 LangChain 库构建的简单 Web 服务,其目的是将自然语言处理(NLP)应用于 SQL 查询生成。以下是代码中使用的技术架构和业务流程的详细说明:FastAPI:一个现代、快速(高性能)的 Web 框架,用于构建 API。Uvicorn:一个 ASGI 服务器,用于在异步环境中运行 FastAPI 应用。LangChain:一个用于构建自然语言处理管道和链的库,这里用于将自然语言查询转换为 SQL 语句。MySQL Connector:一个数据库连接器,用于连接和操作

Kally_tao的专栏 5054

Windows-Anaconda3+TensorFlow安装教程

测试环境:win10-64位和win7-64位 (系统必须是64位,因为TensorFlow目前只支持64位) 一、安装Anaconda3 1.下载Anaconda3 Anaconda官网链接:link 这里我们选择Windows版本,python3.6-version-64位,如下图所示。 2.下载完成之后,点击安装Anaconda3 注意:安装过程中要选择添加环境变量,如图 待安装完成...

DoctorCuiLab的博客 3086

基于STM32和K210的自动驾驶小车设计

自动驾驶技术正在迅速发展,成为了汽车行业和智能交通领域的热点之一。随着科技的发展,STM32和K210这两款芯片为自动驾驶小车提供了优秀的硬件支持。本文我们将学习如何使用STM32和K210打造一个简单的自动驾驶小车。提示:以下是本篇文章正文内容,下面案例可供参考通过这篇文章,掌握了如何使用STM32和K210构建一个简单的自动驾驶小车。通过了解基本的电路设计,并编写了STM32和K210的代码。通过这个例子,可以更好地理解如何在嵌入式系统中使用STM32和K210,以及如何实现自动驾驶小车的简单功能。

Kyle_Chan_zMH的博客 2219

Text-to-SQL将自然语言转换为数据库查询语句

text2sql,把文本转化为SQL语言

weixin_42254289的博客 6531

RV1126B RV1126B-P 瑞芯微 高性能视觉处理器SoC 芯片

它集成了大量算法加速器,如 HDR、3A、LSC、3DNR、2DNR、锐化、去雾、鱼眼校正、伽马校正、特征点检测等。此外,还配备了一款最多8兆像素的 AI-ISP,作为对传统ISP 的补充,以提供卓越的空间去噪性能和增强的图像增强效果。除了先前的高性能多媒体区块外,RV1126B还包含丰富的音频、内存和其他外围接口,如I2C、SPI、PWM等。借助这-特性,来自相机的视频可以以高分辨率进行编码,并存储在本地内存中,同时还能将另-段较低分辨率的视频传输到云存储。

szhorsway的博客 1861

3步搭建企业级Text2SQL应用,RAGFlow 实现自然语言转 SQL 的终极指南!

今天,介绍一个方法,使用开源 RAG 框架RAGFlow,应用知识库检索与大模型推理结合,不需要对模型做任何微调,只需要仅需配置少量结构化数据即可实现精准SQL生成,实现指定数据查询、负责查询、计算,跨表计算等多种场景。

优快云_430422的博客 1548

Unity3d游戏开发工程师笔试题学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、学习背景二、错题记录2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 提示:这里可以.

m0_54231818的博客 5464

芒果YOLOv5改进107:ARConv自适应旋转卷积,全网首发 | 即插即用:以增强其表征能力,从而准确检测方向物体,ICCV顶会论文idea

ARConv自适应旋转卷积,全网首发 | 即插即用:以增强其表征能力,从而准确检测方向物体,ICCV顶会论文idea

包括YOLOv5、YOLOv7、YOLOv8等模型改进 956

利用 RAGFlow 的 RAG 功能构建 Text2SQL Agent

Text2SQL 代理通过将自然语言转换为结构化查询语言(SQL),弥合了非技术用户与数据库之间的鸿沟。其主要优势包括:帮助非技术用户无需掌握SQL即可查询数据、提高SQL开发效率、减少手动编写查询时的错误、提升数据分析能力、支持自动化集成以及理解多种语言和表达方式。RAGFlow 基于 RAG 的 Text2SQL 解决方案利用现有的大型语言模型(LLM),无需额外微调,降低了部署和维护成本。其工作流程包括数据准备、配置知识库(如DDL、DB_Description、Q->SQL等)以及整合同义词库

2301_82275412的博客 1779

YOLO26改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLO26-L !!! 最新的发文热点

Vision Clue Merge模块在Mamba - YOLO模型中同样重要,主要负责在模型的下采样过程中处理特征图,为后续的特征融合和目标检测任务提供更有效的信息。

Limiiiing的博客 472

(Windows平台)基于RAGFlow中agent的text2sql尝试

上篇文章中,笔者在Windows平台安装了docker和RAGFlow,建立了本地知识库。本文接下来要介绍如何使用 RAGFlow 实现 Text2SQL。Text2SQL利用自然语言处理(NLP)技术,将用户用日常语言提出的问题..

weixin_43807749的博客 2072

企业微信第三方应用014_企业微信5种第三方应用的安装方式_上架到应用市场_服务商后台点击安装测试_生成应用推广二维码安装---企业微信开发016

成员授权的意思就是,只要是这个成员扫码安装了这个应用,那么这个应用就只有这个成员可以用。安装的时候可以设置可见范围,这个地方可以设置整个公司或者是某个部门或者是某些人可以让这个应用来进行操作。创建了以后,这个二维码就可以发出来进行推广别人用户扫描了以后就可以把自己的企业微信给安装上对应的应用了。然后在对应的这个微信的企业后台就可以看到在第三方中有这个应用了。可以看到这个就是服务商的后台对应的一个应用,我们点击打开应用。可以看到这里有两个授权,一个是成员授权,一个是管理员授权。就可以去创建推广二维码了。

添柴程序猿的专栏 590

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

RAGFlow 构建 Text2SQL 智能体:2 小时的实战之旅

经过两个小时的努力,我成功构建了一个 Text2SQL 智能体。这个过程虽然有些挑战,但也让我学到了很多东西。RAGFlow 是一个非常强大的工具,它可以帮助我们快速实现复杂的数据库查询功能。

优快云_430422的博客 2007

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Text2SQL实战终极指南!从零到一上手RAGFlow,这篇保姆级教程,收藏就够了!

“无需微调大模型,3步搭建企业级Text2SQL应用,让数据库“听懂人话”!”

Python_cocola的博客 1254

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

基于RAGFlow构建Text2SQL的实战教程

本文介绍了如何利用开源RAG框架RAGFlow实现低成本Text2SQL应用。通过配置结构化知识库(包括DDL、DBDescription和Q->SQL三类)而不需微调大模型,该方法能满足各类数据查询需求。具体步骤包括:准备知识库文件并配置切片方式,创建DBAssistant代理模板,绑定目标数据库和接入大模型。测试表明,该方法能准确响应自然语言查询,如"meter表有多少条数据",并返回正确结果。相比传统方案,该方案显著降低了中小企业应用门槛。

十二测试录 1114

RAGFlow v0.20的Agent重大更新:text2sql的Agent案例测试

这篇来做个 text2sql 的简单 RAGFlow agent 的案例演示,顺便介绍下这次的主要 Agent 更新特性。选题是来自官方公众号一周前发布的一篇关于 SQL Assistant 的 demo 基础上,优化了数据样例和测试问题,但出现了增加了验证与自修复环节的报错,最后也会对比下在 Dify 上实现效果。

韦东东的博客 1222

04_RAGFlow之知识图谱与Text2SQL

RAGFlow通过知识图谱与Text2SQL双引擎实现智能检索,将非结构化文本转化为可计算的知识网络。知识图谱模块采用实体识别和关系提取技术构建结构化图数据,支持多跳推理和复杂关联查询;Text2SQL功能则将自然语言转换为SQL查询,增强结构化数据检索能力。二者共同提升RAG系统从"字面匹配"到"语义关联"的认知水平,适用于医疗、法律等专业领域的知识管理场景。

模界 | AI工程化实践者 382

RAGFlow实战指南:轻松将文本转化为SQL查询

在数据驱动决策的时代,让非技术人员跨越SQL语法壁垒,直接通过自然语言查询数据,已成为企业的核心诉求。虽然大语言模型(LLM)为Text2SQL提供了可能,但单纯依赖模型常面临“幻觉”干扰和对特定数据库结构理解不足的难题。

Python_cocola的博客 522
上一篇: 终于把深度学习中的知识蒸馏搞懂了!!
下一篇: OpenManus+QwQ32B 本地部署
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2835原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值