简介

SQLBot 是一款基于大语言模型(Large Language Model,LLM)和 RAG(Retrieval Augmented Generation,检索增强生成)的智能问数系统。借助 SQLBot,用户可以实现数据的即问即答,快速提炼获取所需的数据信息及可视化图表,并且支持进一步开展智能分析。

SQLBot 的优势

  • 开箱即用: 只需配置大模型和数据源即可开启问数之旅,通过大模型和 RAG 的结合来实现高质量的 text2sql

​​​​​​​

  • 易于集成: 支持快速嵌入到第三方业务系统,也支持被 n8n、MaxKB、Dify、Coze 等 AI 应用开发平台集成调用,让各类应用快速拥有智能问数能力;

  • 安全可控: 提供基于工作空间的资源隔离机制,能够实现细粒度的数据权限控制。

系统架构

SQLBot 整体技术架构如下图所示:

用户提出问题之后,从数据库中获取表结构作为提示词发送给大语言模型,大模型将问题转换为 SQL 语句查询数据库中的数据,然后大模型基于结果和用户的需求整理生成表格和图表。

主要功能

  • 提问分析:用户聊天对话方式提问,大模型解析问题意图,结合所选数据源生成图表与分析。

  • 深度探索:在获得基础图表结果后,进一步进行分析、解释、验证和预测,支持更强的业务决策支持。

  • 数据管理:支持用户配置、管理多种类型的数据源和数据表,支持按需配置和管理。

  • 看板搭建:将多个问数对话生成的图表统一布局,构建成适用于汇报、监控或展示的仪表板。

下载安装

在线安装

支持多种安装方式,使用 Docker Compose 进行部署的命令如下:

# 创建目录
mkdir sqlbot
cd  sqlbot

# 下载 docker-compose.yaml
curl -o docker-compose.yaml https://raw.githubusercontent.com/dataease/SQLBot/main/docker-compose.yaml

# 启动服务
docker compose up -d

离线安装

从git或社区下载安装包,以 root 用户通过 ssh 协议登录到部署服务器, 对安装包进行解压:

tar -zxvf sqlbot-v1.0.0-x86_64-offline-installer.tar.gz
设置安装参数(可选)

SQLBot 安装目录、服务运行端口、数据库配置等信息可在安装包解压后中的 install.conf 文件进行配置。

# 基础配置
## 安装目录
SQLBOT_BASE=/opt
## SQLBot 端口
SQLBOT_WEB_PORT=8000
SQLBOT_MCP_PORT=8001

# 数据库配置
## 是否使用外部数据库
SQLBOT_EXTERNAL_DB=false
## 数据库地址
SQLBOT_DB_HOST=sqlbot-db
## 数据库端口 (仅使用外部数据库时才生效)
SQLBOT_DB_PORT=5432
## SQLBot 数据库库名
SQLBOT_DB_DB=sqlbot
## 数据库用户名
SQLBOT_DB_USER=root
## 数据库密码,密码如包含特殊字符,请用双引号引起来,例如 SQLBOT_DB_PASSWORD="Test@4&^%*^"
SQLBOT_DB_PASSWORD=Password123@pg

# 其他配置
## 普通用户默认密码
SQLBOT_DEFAULT_PWD=SQLBot@123456
## SQLBot Secret Key
SQLBOT_SECRET_KEY=y5txe1mRmS_JpOrUzFzHEu-kIQn3lf7ll0AOv9DQh0s
## Cross-Origin Resource Sharing (CORS) 设置
SQLBOT_CORS_ORIGINS=http://localhost,http://localhost:5173,https://localhost,https://localhost:5173
## 日志级别 DEBUG, INFO, WARNING, ERROR
SQLBOT_LOG_LEVEL="INFO"
## 缓存类型
SQLBOT_CACHE_TYPE="memory"
## MCP 图片存储路径
SQLBOT_SERVER_IMAGE_HOST=https://YOUR_SERVER_IP:MCP_PORT/images/
执行安装脚本
# 进入安装包解压缩后目录  
cd sqlbot-v1.0.0-x86_64-offline-installer

# 执行安装命令
bash install.sh

启动服务之后,在浏览器中打开以下地址:http://<主机IP>:8000/。

默认的用户名和密码分别是:admin 和 SQLBot@123456。

SQLBot 主界面导航栏包含四大核心模块:【智能问数】、【数据源】、【仪表板】和【设置】。

在使用智能问数和其他功能之前,还需要进行 AI 大模型和数据源的配置。官方文档提供了详细的介绍,配置过程也非常简单:

https://dataease.cn/sqlbot/v1/quick_start/

搭建全流程详解

一、配置 AI 模型

以 admin 用户登录后,进入【系统管理】→【AI 模型配置】,点击【添加模型】选择模型供应商,填写模型相关参数后点击【保存】。如有多个模型,可设置默认使用的模型。

添加模型 APIkey

添加模型 APIkey

二、管理数据源、提供数据和表结构

1、功能概述

【数据源】用来管理各类数据连接信息,是后续的智能问数和数据分析中数据的来源。 在数据源管理页面中,提供如下核心功能:

  • 新建/填加数据源:点击右上角绿色按钮可新建数据源,支持多种类型;
  • 数据源搜索:顶部搜索框支持按名称关键字快速查找数据源;
  • 数据源类型筛选:下拉选择筛选当前展示的数据源类型(如 MySQL、Oracle 等);
  • 数据源操作:点击数据源卡片右下角,可进行编辑或删除操作;
  • 开启智能问数:对数据源可直接点击按钮启用;

数据源管理页面

2、支持的数据源类型
  • OLTP 型数据库: MySQL、SQL Server、Oracle、PostgreSQL
  • 数据文件: Excel/CSV

支持的数据源类型

3、数据源预览与字段结构

点击某个数据源卡片可进入该数据源详情页面。 在左侧展示该数据源下的所有数据表,可查看字段结构,包括字段名称、字段类型、备注信息及启用状态。
例如,点击"生产制造销售数据"数据源下的sales_summary_table 表,可以查看该表的字段结构:

  • 中心经度、中心纬度(类型:double)

  • 产品状态、区域、市场名(类型:varchar)

  • 出货量、年度计划、月度目标(类型:int)

字段支持按需启用或禁用,后续智能问数时仅识别已启用字段。

数据源

数据源

三、智能问数、关联数据源

1、功能概述

智能问数是 SQLBot 的核心功能模块,支持用户通过自然语言与大模型对话,自动生成图表展示和分析结果。


提供如下核心能力:

  • 自然语言提问:无需 SQL 基础,可直接自然语言提问;【猜你想问】提供智能推荐,降低提问门槛;
  • 图表自动生成:模型根据问题意图智能选择合适图表类型(如柱状图、折线图、表格等);
  • 图表使用与管理:支持图表类型切换、放大、导出为图片,或添加至仪表板;
  • 数据明细查看与导出:所有图表支持查看数据明细与导出;
  • SQL 查询可见:每次问数均自动生成对应 SQL 查询语句,支持查看与复制;
  • 多轮上下文理解:支持连续提问,自动记忆上下文,实现更自然的分析过程;
  • 历史对话记录:支持查看、重命名、搜索、删除过往对话,便于复用与追溯分析。

使用前提:需先完成 AI 模型配置,并添加至少一个可用数据源可发起问数操作。

智能问数管理页面

2、创建与管理对话
2.1 创建对话

点击【序号 1】 、【序号 2】位置新建对话。

智能问数管理页面

新建对话步骤:

  • 点击新建对话的按钮;
  • 选择一个数据源;
  • 点击【确认】,进入下一步。

智能问数管理页面

2.1.1 快捷提问

系统将基于当前所选数据源的结构、字段信息,以及用户历史的问数行为,自动生成推荐问题。用户可直接点击推荐问题,一键发起问数操作,快速获得分析结果。

智能问数管理页面

在每轮提问完成后,系统还会根据上下文内容生成【追加提问建议】,帮助用户持续追问、挖掘更深层的数据洞察

智能问数管理页面

2.1.2 手动提问

支持用户直接输入业务问题,系统将自动解析语义、识别字段,并返回图表与 SQL 查询结果。支持多轮连续提问。
示例提问:

  • “近一周各品类的订单量趋势”
  • “哪个渠道的转化率最高?”
  • “相比上周增长最快的部门是哪个?”

智能问数管理页面

2.2 历史对话

左侧对话栏展示用户全部历史提问记录。支持以下操作:

  • 搜索关键词快速定位;
  • 修改对话标题;
  • 删除不再需要的对话记录;

智能问数管理页面

点击任意历史对话卡片,可回溯原始问答内容、图表与 SQL。支持基于历史对话继续追问,延续上下文分析链路。

智能问数管理页面

3、图表操作与分析
3.1 图表类型切换

系统会根据提问内容自动生成适配图表类型。用户也可根据分析需求切换为柱状图、折线图、表格、饼图等。

注意:可选图表类型取决于当前数据结构。

智能问数管理页面

所有图表支持如下操作:

  • 放大查看:查看高清图表;
  • 导出图片:支持导出 PNG 图片,用于汇报与分享.

智能问数管理页面

智能问数管理页面

3.2 查看明细数据

点击图表右上方的【查看明细数据】,可查看数据表格,并支持导出为 Excel 文件,便于离线分析或共享。

智能问数管理页面

智能问数管理页面

3.3 查看 SQL

系统每次问数自动生成底层 SQL 查询语句,点击图表右上角【查看 SQL】可查看、复制 SQL,用于验证逻辑或做进一步分析。

智能问数管理页面

智能问数管理页面

3.4 数据分析

点击图表的【数据分析】按钮,系统将基于当前图表数据,调用大模型自动进行趋势分析与业务解读。

系统向大模型发送分析请求,模型返回详细的分析过程与结论,包括关键趋势描述、变化原因推测、可能的业务含义等。

智能问数管理页面

智能问数管理页面

3.4 数据预测

点击图表的【数据预测】按钮,系统将基于当前图表中的时间序列数据(如月份、季度等),自动识别趋势并预测未来的关键指标值。

模型会进行如下操作:

  • 分析时间序列数据的波动趋势与变化规律;
  • 自动选择适用的预测方法(如移动平均、趋势外推等);
  • 输出未来一段时间的预测值及预测逻辑说明;
  • 保留原始数据结构,方便接入下游分析流程。

智能问数管理页面

智能问数管理页面

四、仪表板

1 仪表板概述

仪表板功能支持将【智能问数】生成的图表进行二次整理与展示,帮助用户搭建场景化的分析视图。

用户可通过拖拽、自定义布局、添加说明等方式,将零散的分析结果转化为结构化的数据看板,便于复用、协作和汇报。

搭建看板

2 新建仪表板

在【仪表板】页面,点击右上角的 新建仪表板。

搭建看板

3 编辑仪表板

进入仪表板编辑界面,进行以下操作:

  • 支持添加图表、富文本、标签页等组件;

  • 支持拖拽调整布局、实时预览。

搭建看板

搭建看板

搭建看板

4 仪表板管理

支持对已创建的仪表板进行查找、排序、重命名与删除操作。

仪表板删除后将不可恢复,请在确认无共享需求或无重要数据后再执行删除操作。

搭建看板

五、嵌入式管理

1 功能概述

SQLBot 支持通过【小助手】的方式将智能问数能力嵌入到外部系统页面中,用户可直接在嵌入页面中,通过自然语言提问并获取基于业务数据的实时分析结果。

嵌入式应用

嵌入式效果

2 应用类型与配置

系统提供【基础应用】与【高级应用】两类嵌入模式,满足从快速部署到精细权限管控的不同集成需求。

嵌入式应用类型

2.1 基础应用

基础应用支持快速嵌入 SQLBot 功能:

  • 免后端对接:无需业务系统提供接口;

  • 数据权限设置简单:通过配置“公共数据源”或“私有数据源”进行资源隔离;

适用场景:数据权限要求不高的页面,如运营看板、知识库、内网主页等。

嵌入式简单应用

嵌入式简单应用

2.2 高级应用

高级应用适用于数据权限需由业务系统严格控制的复杂场景:

接入模式:SQLBot 向业务系统传递用户标识,业务系统返回用户可访问的数据源列表;

适用场景:企业管理系统、客户门户、需要按用户数据隔离的 B2B 系统等。

嵌入式高级应用

在接口地址配置完成后,点击【添加接口凭证】,进入如下配置窗口。

嵌入式高级应用

配置流程:

  • 输入接口 URL:用于配置外部系统提供的接口地址。通过接口获取数据源信息、表的元数据信息、数据的过滤规则和虚拟表信息等。

  • 添加接口凭证:

    • 凭证名称:自定义命名,用于标识该凭证,方便后续管理和使用。

    • 源系统凭证类型:获取目标系统认证信息的方式,如localstorage、custom、cookie 等,用于接口调用时的身份认证。

    • 目标凭证名称:目标系统中认证信息的名称,例如 "sessionId" 等。

    • 目标凭证位置:获取的认证信息在请求中的放置的位置,如 Header、Cookie、Param。

    • 目标凭证:具体的凭证值,填写后系统会根据配置在请求时自动带上,一般无需填写,系统自动按类型获取。

2.3 嵌入代码获取

每个应用创建成功后,系统会自动生成可嵌入前端的 JavaScript 代码:

  • 标准嵌入代码:供业务系统开发者将问数小助手嵌入至目标页面;

  • 浏览器测试代码:支持在浏览器控制台快速运行测试,验证集成效果。

嵌入式代码

3 应用管理功能

在应用上点击【编辑】按钮,可进入应用详情页,修改名称、描述、跨域设置、数据源配置等内容。保存后立即生效。

嵌入式应用编辑

点击【删除】按钮后,系统将弹出确认框。确认后,该应用将被彻底移除,嵌入代码失效。

嵌入式应用删除

在页面右上角的搜索栏中输入应用名称关键词,系统将筛选展示符合条件的应用,支持快速定位和管理。

嵌入式应用搜索

至此就完成了所有配置,可以在各种页面中嵌入使用了。

总结

SQLBot 打破了数据与业务人员之间的技术壁垒,允许任何业务人员(如运营、市场、产品经理等)无需学习复杂的 SQL 语法和了解底层数据库结构,只需用自然语言提出问题,就能快速、准确地获取他们想要的数据和分析结果。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐