开源 BI 工具「问数」, 利用 LLM AI 技术,不写 SQL, 通过自然语言方式提问,就能进行数据分析

项目名:问数 (Ask Data). 开源地址:

功能介绍

自动取数

输入您的问题,点击提交, 将自动翻译成 SQL, 并完成取数,如下截图。

数据浏览

目前仅导入了 MySQL 官方提供的 world 数据库,可以进行简单浏览

因此,目前只能回答关于这三张数据表的问题。如果需要接入数据源,可以参看下一小节。

数据源

一分钟部署自己专属的「问数」

进入项目页面:https://inscode.csdn.net/@hynmath/askdata-backend, 如下图所示

点击右上角的 Run 按钮,大约一分钟,就帮你专属部署好了一个容器。首先配置你的数据源,目前仅支持 MySQL 数据库。

配置好以后,就可以浏览到你的数据啦

也可以通过自然语言查询了。

本地私有化部署

  1. Java 8 环境,参考这里
  2. MySQL, 然后创建数据库,假设数据库的名字为 askdata
    CREATE DATABASE IF NOT EXISTS `askdata` DEFAULT CHARACTER SET utf8mb4;
    
    然后执行 import.sql 中的语句,创建相关数据表。
  3. 准备 InsCode 的 GPT 访问 Key, 属于薅羊毛^^, 访问这里, 点击右上角的 Run 按钮,当出现类似于下图所示的终端时,按下 Ctrl+C. 然后在终端中输入 echo $INSCODE_API_KEY, 就得到了访问 Key 啦。
  4. 从 Github release 页面 下载 jar 包,然后在 jar 包存放的目录下,新建一个 restart.sh 脚本,输入一下内容:
    #!/bin/bash
    
    export AD_DB_HOST=<第 2 步中,MySQL 所在的服务器 IP>
    export AD_DB_PORT=<第 2 步中,MySQL 的端口号,一般是 3306>
    export AD_DB_NAME=askdata
    export AD_DB_USER=<访问数据库的用户名>
    export AD_DB_PASS=<访问数据库的密码>
    export INSCODE_API_KEY=<第 3 步中,获取到的 InsCode GPT 访问 Key>
    
    ps -ef | grep 'askdata-backend' | grep -v grep | awk '{print $2}' | xargs kill -9
    rm -frv askdata.log
    nohup java -jar askdata-backend-1.0-SNAPSHOT.jar --spring.profiles.active=prod >> askdata.log 2>&1 &
    sleep 1
    tail -fn 200 askdata.log
    
  5. 最后,执行脚本 sh restart.sh 即可。

功能持续完善中,文档撰写中。.. 敬请期待! 有任何疑问可以加入如下群聊。