SQLBot 是一款结合了大型语言模型(LLM)与检索增强生成(RAG)技术的智能数据查询系统。 它作为开源商业智能(BI)工具 DataEase 的一个功能模块,主要解决普通业务人员因不熟悉SQL语言而难以直接从数据库中获取数据的问题。用户可以通过日常说话的方式提出问题,SQLBot 能理解问题意图,并自动生成精确的SQL查询代码,最终返回查询结果或可视化图表。 该工具支持开箱即用,仅需简单配置大模型和数据源即可启动。同时,它也易于集成,可以嵌入到各类第三方业务系统中,为这些应用赋予对话式数据分析的能力。此外,SQLBot 提供了基于工作空间的资源隔离和细粒度的数据权限控制,确保了数据查询过程的安全性。
功能列表
- 自然语言转SQL:核心功能,将用户的自然语言提问(Text)自动转换成结构化查询语言(SQL)。
- RAG增强:集成检索增强生成(RAG)技术,提升大模型在特定数据环境中生成SQL的准确性。
- 数据源支持:可以连接并查询多种主流数据库,如MySQL等。
- 模型管理:支持接入并管理多种大型语言模型,用户可以根据需求配置和切换。
- 权限控制:提供工作空间级别的资源隔离和细粒度的数据权限管理,保障数据安全。
- 易于集成:支持作为插件或模块快速嵌入到第三方业务系统,也支持被n8n、Dify、Coze等AI应用开发平台集成。
- 开箱即用:提供一键安装脚本和Docker部署方式,简化了部署和配置流程。
使用帮助
SQLBot 的安装和使用流程非常直接,主要分为环境准备、服务启动、初始配置和开始使用四个步骤。
1. 环境准备与安装
安装SQLBot前,你的服务器需要先安装好Docker
和Docker Compose
。这两个工具是容器化部署的基础。
准备工作完成后,可以按照以下命令进行一键安装:
- 创建安装目录并进入
在你的Linux服务器上选择一个合适的位置,例如/opt/sqlbot
,并创建该目录。mkdir -p /opt/sqlbot cd /opt/sqlbot
- 下载配置文件
使用curl
命令从官方GitHub仓库下载docker-compose.yaml
文件。这个文件定义了SQLBot服务以及其依赖环境。curl -o docker-compose.yaml https://raw.githubusercontent.com/dataease/SQLBot/main/docker-compose.yaml
- 启动服务
执行以下命令,Docker Compose会根据配置文件自动拉取镜像并启动SQLBot服务。-d
参数表示在后台运行。docker compose up -d
你也可以通过
1Panel
应用商店进行可视化一键部署。
2. 访问和登录
服务启动后,在你的浏览器中访问部署服务器的IP地址和8000
端口:http://<你的服务器IP>:8000/
。
系统默认的管理员账号信息如下:
- 用户名:
admin
- 密码:
SQLBot@123456
首次登录后建议修改默认密码。
3. 核心配置
成功登录后,需要进行两个核心配置才能开始使用智能问数功能:配置大模型和添加数据源。
- 配置大模型
- 进入系统后,找到“模型管理”相关菜单。
- 点击“新建”或“添加模型”,选择你需要使用的大语言模型(例如 GPT、文心一言、通义千问或本地部署的模型等)。
- 根据界面提示,填入模型的API Key、Base URL等认证信息。
- 保存后,模型就添加到了系统中。你可以添加多个模型,并设置一个作为默认查询时使用的模型。
- 添加数据源
- 切换到“数据源”菜单,点击“新建数据源”。
- 从支持的数据库类型列表中选择你的数据源类型,例如“MySQL”。
- 填写该数据源的连接信息,包括:
- 名称:为这个数据源起一个易于识别的名字,如“生产环境销售数据库”。
- 主机名/IP地址:数据库服务器的地址。
- 端口:数据库服务端口。
- 数据库名:需要连接的具体数据库名称。
- 用户名/密码:用于数据库认证的账号和密码。
- 填写完毕后,可以点击“检验”按钮测试连接是否成功。检验通过后,点击“保存”即可。
4. 开始智能问数
完成以上配置后,就可以开始使用了。
- 进入问答界面(通常称为“对话”或“Q&A”)。
- 在输入框中,用自然语言描述你想要查询的数据。例如,你可以输入:“帮我查一下上个月销售额最高的前五个产品是什么?”
- SQLBot 会将你的问题发送给配置好的大模型进行处理,生成SQL语句,并自动执行查询。
- 查询结果会以表格、卡片或者图表的形式直接展示在界面上,让你可以快速获取数据洞察。
应用场景
- 业务人员的自助数据分析
对于市场、运营、销售等岗位的员工,他们通常不具备编写SQL的能力。SQLBot可以让他们通过自然语言直接向数据库提问,例如“查询最近30天的新用户增长趋势”或“统计华东地区各类商品的销售额占比”,从而实现数据的自助查询与分析,极大提升了数据驱动决策的效率。 - 快速数据探索
数据分析师在进行探索性数据分析(EDA)时,需要频繁地编写不同维度的查询语句。使用SQLBot,分析师可以通过对话快速验证数据假设,例如“男性用户和女性用户的平均客单价有差异吗?”,从而将更多精力投入到数据洞察而非代码编写上。 - 嵌入式分析
可以将SQLBot的问答能力集成到企业已有的业务系统(如CRM、ERP)中。用户在使用这些系统时,无需跳转到专门的BI平台,就可以直接通过对话窗口查询相关数据,实现了数据分析能力与业务流程的无缝融合。
QA
- SQLBot支持哪些类型的大模型?
SQLBot设计上是开放的,支持接入市面上主流的大语言模型,包括OpenAI的GPT系列、百度的文心一言、阿里的通义千问等。此外,它也支持接入通过Ollama等工具在本地部署的开源模型。 - 使用SQLBot是否必须先安装DataEase?
SQLBot可以被视为DataEase生态的一部分,与其结合使用体验最佳。但它本身也是一个可以独立部署和集成的系统,你可以将其集成到自己的其他业务平台中。 - 它如何保证生成SQL的准确性?
SQLBot利用RAG(检索增强生成)技术。在将用户问题发送给大模型前,系统会先从数据库的元数据(如表结构、字段名、注释等)中检索出与问题最相关的信息,并将这些信息作为上下文(Context)一同提供给大模型。这极大地提升了模型理解数据结构的能力,从而生成更准确的SQL。 - 数据安全是如何保障的?
SQLBot提供了工作空间级别的资源隔离机制,不同空间的数据源和问答历史是相互隔离的。同时,管理员可以进行细粒度的数据权限控制,确保用户只能查询到其权限范围内的数据,避免数据泄露。