基于RAGFlow构建Text2SQL的实战教程

在企业大模型应用中,Text2SQL一直是应用热点,它可以通过自然语言快速完成数据提取分析。但传统方案依赖大模型微调,中小企业应用成本高。

今天介绍一种方法:用开源 RAG 框架 RAGFlow,将知识库检索与大模型推理结合,无需微调模型,仅配置少量结构化数据,即可生成精准的 SQL,满足指定数据查询、复杂查询、计算及跨表计算等场景。

一. 准备工作

Text2SQL的准确性取决于知识库质量,需提前准备DDL、DB Description、Q->SQL三类核心知识库。

1. 创建知识库

分别创建知识库DDL、DB Description、Q->SQL

(1)DDL知识库

DDL(Data Definition Language)知识库,主要提供数据库表结构信息,包括表名、列名、数据类型以及主键、外键等约束条件。

(2)DB Description 知识库

DB Description 知识库,主要用于说明数据库中表和列的含义。

(3)Q->SQL 知识库

Q->SQL 知识库,包含了大量的参考 SQL,即自然语言问题与对应的 SQL 语句示例。

2. 上传知识库文件

(1)下载三个文件,下一步用。

         网盘下载链接:https://pan.quark.cn/s/63895e6e6be0

(2)将下载好的文件分别导入到对应的知识库后,并解析文件

3. 配置知识库

配置每个知识库的切片方式

1配置DB Description

(2)配置DDL

(3)配置Q->SQL

二 . 创建Agent

1. 添加Agent模版

(1)进入 RAGFlow 工作台Agent点击创建Agent】进入Agent模板选择页面,选择 “DB Assistant” 模板,点击“使用该模板

这里Text-to-SQLDB Assistant 的区别:

  • Text-to-SQL 是 “自动写SQL查询的工具”。
  • DB Assistant 是 “帮你用自然语言跟数据库聊天、查数据、看结果的智能助手”,这个助手内部会用到 Text-to-SQL 来写查询。

(2)给Agent起一个名字,系统会自动复制该模板到Agent空间,如下

2. 配置Agent

添加的DB Assistant模版有6个节点需要我们进行配置。

(1)添加知识库

分别选中DDL、DB Description、Q->SQL,配置对应的知识库

(2)绑定目标数据库

选中“ExeSQL” 组件,配置数据库所需的参数,填入自己的数据库信息

(3)接入模型

这里接入比较强的模型,才能回答出精准的答案。本文接入了阿里千问的MAX模型

三. 测试运行

(1)如下图所示,数据库中有一张meter表。

2单击运行按钮,可以进行对话。

提问:meter表有多少条数据?它能够正确回答:10

本文是转载文章,点击查看原文
如有侵权,请联系 lx@jishuguiji.net 删除。