前面文章《DB-GPT系列(四):DB-GPT六大基础应用场景part1》讲了DB-GPT六大基础应用场景中的基础问答、知识库问答、Chat Excel功能,这篇文章继续介绍剩下的3个基础应用场景:Chat DB、Chat Data、Chat Dashboard。
一、Chat DB
DB-GP中的Chat DB数据库对话功能,是通过自然语言对话,实现数据库元信息查询、SQL代码生成。但是需要注意的是,生成的SQL代码不会实际运行。
我们通过以下几步来实际看下Chat DB功能:
- 安装数据库服务
- 导入示例数据
- 创建数据库连接
- 数据库对话
1、安装数据库服务
下面以mysql数据库安装为例子,只要简单几条命令,就可以安装好数据库。
如果主机本身有数据库服务,或者有现有的可连接的数据库,就可以直接创建数据库连接,跳过"安装数据库服务"、"导入示例数据"这两步。
主机输入shell命令:sudo apt update
该命令是更新Ubuntu的包列表

主机输入shell命令: sudo apt install mysql-server
该命令是安装MySQL服务。
安装完成如下图。

继续输入命令开启mysql服务,然后连接mysql服务:
sudo service mysql start
mysql

输入以下命令,设置mysql的初始root账户和初始密码。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
exit;

以初始root账户密码重新登录mysql
mysql -uroot -p123456

2、导入示例数据
在DB-GPT的目录下有一些示例sql语句,可以进行示例数据的导入
具体目录位置:DB-GPT/docker/examples/sqls
这里以导入 /case_1_student_manager_mysql.sql 为例
cd /root/DB-GPT/docker/examples/sqls
mysql -uroot -p123456 < case_1_student_manager_mysql.sql

查看是否导入成功
# 登录mysql
mysql -uroot -p123456
# 查看数据库是否创建成功
show databases;
# 查看表是否创建成功
show tables;
# 切换到case_1_student_manage数据库
use case_1_student_manage;
# 查询表students是否成功导入数据
select * from students;



3、创建数据库连接
在DB-GPT主页上,点击"应用管理"导航,选择"数据库"tab页,选择MySQL数据库然后点击"Create Now"来创建数据库连接。


需要填写数据库名称、密码和端口号等信息。创建成功后,DB-GPT就能与指定的数据库建立连接,实现数据库对话功能。

4、数据库对话
数据库连接成功后,就可以开始测试ChatDB功能了。
通过ChatDB对话,可以查询数据库中的表元信息、自动编写SQL语句、进行SQL查询优化等。


输入问题数据库里面有哪些表?

再输入问题怎么查具体某个学生的成绩?

可以看到,SQL语句并没有去实际执行。
二、Chat Data
前面的ChatDB专注于获取数据库中信息,而ChatData则是和数据库中的实际进行对话,这是两者的最大差异。
在DB-GPT主页上,点击"探索广场"导航,选择"ChatData"进入对话。

再输入前面Chat DB同样的问题怎么查具体某个学生的成绩?
可以看到提示SQL执行失败的错误,实际SQL会连接到SQL进行执行。

查看后台的出错信息,因为对话的问题中没有指定具体查询的是哪个学生的成绩,所以SQL的where条件是"students.student_id = ?",因此SQL执行出错。
因为DB-GPT缺乏debug功能,同时受限于SQL代码环境(比如:各种SQL方言),很多更加灵活的数据清洗和可视化操作在默认情况下无法顺利完成。
后续文章将会介绍怎么改造DB-GPT完成SQL debug的功能。

输入问题怎么查学生张三的具体成绩?
可以看到SQL正常执行,同时Data页显示了整齐的数据结果表格。


输入问题请分析不同科目的平均成绩,并用柱状图展示。
可以看到SQL正常执行,不单只Data页显示了整齐的数据结果表格,Chart页页显示了对应的柱状图。

三、Chat Dashboard
Chat Dashboard仪表盘对话可以围绕某个数据库,针对某个问题进行多维度分析与可视化展示。
输入问题请分析各个同学的学习情况
可以DB-GPT自动进行了不同维度的分析,结果中也有各种图表的自动生成。

在"Editor"tab页,可以看到每一个分析版块对应的具体SQL语句。

后台可以看到,DB-GPT自动进行的一步步思维链的过程



整个分析思维链过程,可以自定义prompt进行改造优化,后续prompt管理与优化的文章中将会详细介绍。

也看到有功能对报告进行评分。
