1、步骤

在这里插入图片描述

  1. 输入提出的问题
  2. LLM(大语言模型)生成可执行的Sql语句
  3. 根据Sql查询出结果
  4. LLM(大语言模型)对查询结果进行分析

2、准备数据库表

我们这里使用的是Mysql
学生表:

DROP TABLE IF EXISTS `students`;
CREATE TABLE `students` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '姓名',
  `age` int NOT NULL COMMENT '年龄',
  `class_id` int NOT NULL COMMENT '班级Id',
  `gender` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '性别(男/女)',
  PRIMARY KEY (`id`),
  KEY `class_id` (`class_id`),
  CONSTRAINT `students_ibfk_1` FOREIGN KEY (`class_id`) REFERENCES `classes` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='学生';
INSERT INTO `students` (`id`, `name`, `age`, `class_id`, `gender`) VALUES
(1, 'Emma Li', 6, 1, '女'),
(2, 'Lucas Wang', 7, 1, '男'),
(3, 'Olivia Zhang', 6, 1, '女'),
(4, 'Noah Chen', 7, 1, '男'),
(5, 'Sophia Zhao', 6, 1, '女'),
(6, 'Liam Liu', 8, 2, '男'),
(7, 'Mia Qian', 7, 2, '女'),
(8, 'Ethan Sun', 8, 2, '男'),
(9, 'Ava Zhou', 7, 2, '女'),
(10, 'James Wu', 8, 2, '男'),
(11, 'Isabella Zheng', 9, 3, '女'),
(12, 'Benjamin Feng', 8, 3, '女'),
(13, 'Charlotte Cao', 9, 3, '女'),
(14, 'Mason Deng', 9, 3, '男'),
(15, 'Amelia Xue', 8, 3, '男'),
(16, 'Evelyn Peng', 10, 4, '男'),
(17, 'Alexander Ma', 10, 4, '女'),
(18, 'Abigail Lu', 9, 4, '男'),
(19, 'Daniel Zeng', 10, 4, '女'),
(20, 'Harper Yao', 10, 4, '男'),
(21, 'Michael Xu', 12, 5, '女'),
(22, 'Emily Huang', 11, 5, '男');

班级表:

DROP TABLE IF EXISTS `classes`;
CREATE TABLE `classes` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '名称',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='班级';
INSERT INTO `classes` (`name`) VALUES
('A'),
('B'),
('C'),
('D'),
('E');

3、安装rookie_text2data插件

GitHub地址:https://github.com/jaguarliuu/rookie_text2data
该插件功能是:自然语言查询 MySQL 数据、Sql的执行。目前支持Mysql、PostgreSQL,后续会逐步增加多个数据库类型。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、新建工作流

在这里插入图片描述
1、开始节点中添加变量名称以及显示名称
变量名称:issue
显示名称:问题
在这里插入图片描述
2、第二个节点选择添加节点->工具->rookie_text2data,输入的变量就“/issue
按照抽屉中的必填项把对应的值填上
数据库连接失败的把 127.0.01或者localhost改为 host.docker.internal 即可
在这里插入图片描述
3、第三个节点选择添加节点->模板转换,输入的变量就是第二个节点输出的**/Json**
在这里插入图片描述
4、第四个节点选择添加节点->LLM(大语言模型),并提供System信息指导
文本内容:

你是一位精通SQL语言的数据库专家,熟悉MySQL数据库。你的的任务是检查该Sql语句是否有错,如果有错请更正,没有错则输出Sql语句。
回答要求:
1.不能包含任何多余的信息。
2.必须是可以执行的SQL语句。
3.删除掉Sql中的\n,用空格替换。

Json数据:/output

在这里插入图片描述
5、第五个节点选择添加节点->工具->rookie_excute_sql,输入的变量“/test
按照抽屉中的必填项把对应的值填上
在这里插入图片描述
6、第六个节点同第三个节点操作
7、第七个节点选择添加节点->LLM(大语言模型),并提供System信息指导,以及User模型指令
文本内容:

你是数据分析专家,分析JSON格式的sql查询结
果,回答用户问题。
关键规则:
1.所有数据已符合用户问题中的条件
2.直接使用提供的数据分析,不质疑数据是否符合条件
3.不需要再次筛选或确认数据类别/时间范围
4.数据为[或空或者None时直接回复"没有查询到相关数
据",不得编造数据
5、提供的结构是Json
数据是:/output
题是:/issue
Sql语句:/text
回答要求:
1.列出详细数据,优先以表格方式列出数据。
2.识别趋势、异常,并提供分析和建议。
3.提供查询的Sql语句。

在这里插入图片描述
8、第七个节点选择添加节点->结束,输入的变量“/test

5、执行效果展示

视频:查看
在这里插入图片描述
我们去数据库验证一下:

SELECT COUNT(*) FROM `students` WHERE `age` = 6 AND `gender` = '女';

在这里插入图片描述在这里插入图片描述
我们去数据库验证一下:

SELECT `students`.`name` 
FROM `students` 
INNER JOIN `classes` ON `students`.`class_id` = `classes`.`id` 
WHERE `classes`.`name` = 'B' AND `students`.`gender` = '女';

在这里插入图片描述
如果涉及的数据库表较多可以采用如下方式:
1、把表结构(含表名、字段、主外键关系)导入到知识库,用知识库来检索生成可执行Sql语句,执行Sql语句,生成数据结果。
2、如果用rookie_text2data插件工具,最好指定相关表名。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐