实践手册:Dify+NL2SQL搭建ChatBI助您轻松进行数据分析

Dify on DMS+NL2SQL构建的ChatBI重新定义了数据分析方式,ChatBI可通过AI工具理解用户问题并使用自然语言回答,然后通过NL2SQL将自然语言处理为SQL,并在Dify中执行SQL,以可视化方式展示执行结果。该ChatBI方案可以将数据分析从技术团队扩展至全员、提升业务响应速度,让您轻松获取数据洞察。

前提条件

步骤一:安装ChatBI依赖的AliyunDMS插件

  1. 登录数据管理DMS 5.0
  2. 进入工作空间页面。

    DMS提供了两种进入工作空间的路径,您可根据需求选择。

    路径一

    单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > Data+AI > Dify

    说明

    若您使用的是非极简模式的控制台,请在顶部菜单栏中,选择Data+AI > Dify

    image

    路径二

    单击页面左侧的数智工厂image图标,再单击工作空间

    说明

    若您使用的是非极简模式的控制台,请在顶部菜单栏中,选择数智工厂 > 工作空间

    image

  3. 单击目标空间名称。

  4. 在工作空间左侧导航栏选择image > 工作室

  5. 单击右上方的插件,再单击安装插件

  6. 选择安装源并安装通义千问和AliyunDMS插件。

    • 请通过Marketplace安装通义千问插件。

    • 请通过DMS插件安装AliyunDMS插件。

  7. 等待插件安装成功。

    当插件列表出现AliyunDMS和通义千问插件表示安装成功。

    image

步骤二:给AliyunDMS插件授权

  1. 单击AliyunDMS插件,再单击去授权

  2. 请根据您需要使用的插件版本,选择是否配置DMS API Key

    说明
    • 如果您仅需要使用基础版的DMS SQL执行器,则无需填写DMS API Key,直接单击保存

    • 如果您需要使用企业版的插件(例如企业版SQL执行器、企业版NL2SQL算法),则需要填写DMS API KeyDMS API Key由当前登录DMS的阿里云账号的AccessKey IDAccessKey Secret组成,其填写格式为<AccessKey ID>:<AccessKey Secret>

  3. 单击保存

    当组件页面出现已授权,表示授权成功。

步骤三:为通义千问模型配置API Key

  1. 工作室页面,单击账号名称,选择设置

    image

  2. 模型供应商页面,单击通义千问模型右侧的设置,为其配置API Key

    请前往阿里云百炼获取API Key

  3. 单击保存

步骤四:应用ChatBI模板

  1. 工作室 > 全部页面,单击从应用模板创建

    image

  2. 在左侧分类导航栏,单击DMS Data+AI

    其中内置了DMS提供的一系列模板。image

  3. 将鼠标指针悬停在ChatBI一键体验(集成版)卡片,然后单击该卡片出现的使用该模板

  4. 在弹出的对话框,单击创建

    当页面出现ChatBI一键体验区块,则表示创建成功。

步骤五:运行Demo并体验ChatBI Agent

  1. 单击ChatBI一键体验模板。

    ChatBI模板内置一套Demo数据集,您可单击右上角的预览,体验ChatBI Agent。

  2. 单击右上角的预览,体验ChatBI Agent。

    您可对Agent进行提问,以查询相关数据。

    2025-06-06_13-33-19

步骤六:配置您自己的ChatBI应用

  1. 单击image,编辑db_connection_url变量,将其值更换为目标数据库的私网或公网连接地址。

    image

    说明

    db_connection_url是工作流中使用的全局环境变量。当变量值为demo_db时,会自动加载插件内置的数据集。

    支持的数据库类型及连接地址格式如下:

    • MySQL:mysql+pymysql://<user>:<password>@<host>:<port>/<database>

    • PostgreSQL:postgresql+psycopg2://<user>:<password>@<host>:<port>/<database>

    • SQL Server:mssql+pymssql://<user>:<password>@<host>:<port>/<database>

    • Oracle:oracle+oracledb://<user>:<password>@<host>:<port>/<service_name>

    • Clickhouse:clickhouse+native://<user>:<password>@<host>:<port>/<database>

    • MongoDB:mongodb://<user>:<password>@<host>:<port>/<database>"

  2. 单击保存

  3. 根据数据库连接方式,在数据库白名单中添加Dify的出口IP或内网IP。

    • 如果您需要通过公网连接数据库,则需要在数据库的白名单中添加Dify公网出口IP。

      您可运行查询DIFY公网出口IP节点以获得具体IP。

      image

    • 如果您是通过VPC连接数据库,则需要在数据库白名单中添加Dify所在VPCIPv4网段。

  4. IP添加成功后,单击预览,向Agent提问目标数据库中数据的相关信息。

AliyunDMS企业版与基础版插件能力说明

插件名称

能力说明

ChatBI企业版

ChatBI基础版

DMS NL2SQL(基础版)

内置NL2SQL算法(敏捷版)。敏捷版自然语言转SQL算法,实时流式输出SQL结果。

DMS NL2SQL(企业版)

内置NL2SQL算法(企业版),且具备如下特性:

  • 提供简洁直观的知识库配置界面。

  • 先进的自然语言转SQL算法,可实现精准的查询转换。

  • 无需配置数据库账号和密码。

×

DMS SQL执行器(基础版)

需要使用数据库账号、密码连接数据库,再执行SQL。支持连接MySQL、PostgreSQL、SQL Server、Oracle、ClickHouse、MongoDB数据库。

DMS SQL执行器(企业版)

  • 采用免密认证机制,无需在工作流中配置数据库账号和密码,可有效防范账号和密码泄露风险。

  • 支持连接30+种主流数据源。

  • 强大的企业级管控能力:

    • 精细化的资源访问权限管理。

    • 完整的操作审计追踪。

    • 严格的SQL规范合规检查。

×

DMS数据可视化

SQL执行结果转换为ECharts图表,支持柱状图、折线图、饼图和表格。

使用ChatBI企业版

如果您需要使用ChatBI企业版模板,在步骤四:应用ChatBI模板时,选择ChatBI一键体验(企业版)模板即可完成对应的创建。

注意事项

在使用ChatBI企业版能力前,请确保授权AliyunDMS插件的DMS API KEY由当前登录DMS的阿里云账号创建。

企业版插件配置说明

DMS NL2SQL

在配置该插件之前,请先将目标数据库实例录入至DMS,并为实例开启安全托管

image

参数说明:

  • 问题:请填写需要转换为SQL的自然语言。

  • DMS托管数据库:选择已托管至DMS的数据库类型及数据库。

  • DMS API KEY:调用插件所需的DMS API KEY,填写后将覆盖插件授权时填写的DMS API KEY。

  • 业务知识:填写业务场景特有的领域知识,用于提升NL2SQL的准确性。

  • 模型:选择用于生成SQLLLM(Large Language Model)。当前默认使用DMS-AI/XiYan-SQL-32B,若选择自适应模型,则NL2SQL算法会根据问题的难易程度自动选择合适的模型。

  • 私有部署模型:私有部署模型的ID

  • 推理深度:NL2SQL算法的推理深度,程度越深,生成SQL所需的时间越长,可选标准(推荐)进阶深度思考。当前默认使用标准(推荐),性能较为均衡。

DMS SQL执行器

image

参数说明:

  • SQL:需要执行的SQL。

  • DMS托管数据库:选择已托管至DMS的数据库类型及数据库。

  • DMS API KEY:调用插件所需的DMS API KEY,填写后将覆盖插件授权时填写的DMS API KEY。

  • 地域ID:选择当前Dify所在地域。

  • 输出格式:可选择MarkdownJSON,当前默认使用Markdown。

  • 超时时间:执行SQL的超时时间。