Chuyển đến nội dung chính

dsh-plugin-nlbi

Đã xác minh

dsh-plugin-nlbi · v0.2.1 · MIT · Giao diện web

自然语言查询 + 商业智能报表插件 for DeepSeek Harness:在 dsh-mysql 连接底座之上,提供 Text2SQL 自然语言查库、15+ 图表类型、Dashboard 仪表盘、指标/维度管理、多维分析、自助分析、报表导出、审计日志与数据权限。Natural-language data queries + enterprise BI reports for DeepSeek Harness: Text2SQL, 15+ chart types, dashboards, metric

Cài đặt

dsh plugin add dsh-plugin-nlbi

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Thẻ

Tác giả

Readme

dsh-plugin-nlbi

DeepSeek Harness 的自然语言查询 + 商业智能报表插件。在 dsh-mysql 连接底座之上,提供 Text2SQL、15+ 图表类型、Dashboard 仪表盘、指标/维度管理、多维分析、自助分析、报表导出、审计日志与数据权限。

English

功能总览

🔌 数据接入

  • MySQL 多连接管理(设置页增删改+测试)
  • 连接池自动管理(配置变更自动重建)
  • 表白名单 + 写权限开关

📐 数据建模与指标管理

  • 指标定义:GMV、订单数、客单价等业务指标,支持表达式/聚合类型/格式
  • 维度定义:地区、时间、商品类别等分析维度,支持层级定义(省→市→区)
  • 数据集:关联表+Join+指标+维度,形成可复用分析模型
  • 智能推荐:根据表结构自动推荐指标候选

📊 可视化引擎(15+ 图表类型)

类型 用途 说明
📊 统计卡 单一数值展示 SUM/AVG/MAX/MIN
📈 折线图 趋势分析 时间序列数据
📊 柱状图 分类对比 各类别数值比较
🥧 饼图 占比分布 低基数类目占比
📊 面积图 趋势+规模 折线 + 面积填充
🔽 漏斗图 转化分析 各阶段转化率
🔵 散点图 相关性 双变量关系
🔥 热力图 密度分布 时段×维度热力
🕸 雷达图 多维对比 多维度评分
🔀 桑基图 流向分析 数据流向
🎯 仪表盘 目标完成度 单一指标仪表
🗂 矩形树图 层级占比 树形占比展示
📊 堆叠柱状图 堆叠对比 多维度堆叠
🌊 瀑布图 累计增减 逐步增减展示
📏 进度条 进度展示 完成百分比

📐 Dashboard 仪表盘

  • 12 列网格布局,自由拖拽调整组件位置/大小
  • 多组件类型:KPI 卡片、图表、表格、文本
  • 全局筛选器:下拉选择、日期范围、文本搜索
  • 自动刷新(60 秒)
  • 复制/编辑/删除 Dashboard
  • 多 Dashboard 管理

🔍 智能查询(Text2SQL)

  • 自然语言 → SQL 自动生成
  • 双层安全护栏(AST + 正则)
  • 自动注入表白名单和行级权限
  • 自动推荐图表类型
  • 分析类型识别(趋势/对比/排名/占比/漏斗/相关)

🔧 自助分析

  • 可见字段列表(按类型着色)
  • 拖拽式维度/指标选择
  • 聚合方式选择(SUM/AVG/COUNT/MIN/MAX)
  • 排序 + Top N
  • 图表类型选择
  • 自动生成 SQL 预览

📋 报表管理

  • 收藏查询结果为报表
  • 重跑报表(最新数据+图表)
  • 导出为 Markdown/CSV/TSV/Excel
  • 删除报表

📥 数据导出

  • CSV 导出(防注入)
  • TSV 导出(适合粘贴到 Excel)
  • Markdown 表格复制
  • Excel(HTML 格式,兼容 WPS/Office)
  • 图表 PNG 导出(前端 ECharts getDataURL)

🔒 数据权限

  • 行级权限:按列值过滤(= / IN / LIKE)
  • 列级黑名单:禁止查看敏感列
  • 查询超时和行数上限
  • 权限自动注入到 Text2SQL prompt

📋 审计日志

  • 记录所有查询操作(类型/时间/耗时/成功/失败)
  • 环形缓冲(最多 1000 条)
  • 侧栏面板查看

📐 多维分析

  • 同比增长率计算
  • 环比增长率计算
  • 累计值计算
  • 移动平均(窗口可调)
  • Top N 排名
  • 排名计算
  • 增长率计算

安装

从 npm 安装(推荐)

# 安装最新稳定版
 dsh plugin --profile web add dsh-plugin-nlbi@latest

# 或固定安装当前版本
 dsh plugin --profile web add [email protected]

npm 包地址:https://www.npmjs.com/package/dsh-plugin-nlbi

从本地源码/压缩包安装(开发测试)

pnpm pack
dsh plugin --profile web add C:\path\to\dsh-plugin-nlbi-0.2.1.tgz

安装后,如果当前没有运行中的 DSH Web 实例,再启动:

dsh web

如果提示 EADDRINUSE: 127.0.0.1:3080,说明 DSH Web 已经运行,直接打开 http://127.0.0.1:3080,不要重复启动。安装后打开 设置 → Nlbi 数据库,添加连接并点「测试连接」。

快速上手

  1. 添加连接:打开 设置 → Nlbi 数据库+ 添加连接,填写主机/端口/账号/密码/默认库
  2. 选择连接:在会话输入栏左侧点击 🐬 按钮,选择刚添加的连接
  3. 自然语言查库:在输入框输入"上个月每天的订单量"或"各分类商品数量"
  4. 创建 Dashboard:在右侧栏 📐 仪表盘 标签页,点击「+ 新建」
  5. 定义指标:在右侧栏 📐 指标 标签页,定义 GMV、订单数等业务指标
  6. 自助分析:在右侧栏 🔧 自助分析 标签页,拖拽字段生成分析

架构

                    BI 平台
                       │
       ┌───────────────┼───────────────┐
       ↓               ↓               ↓
   数据接入          数据建模         权限管理
       │               │               │
       ↓               ↓               ↓
 MySQL/Excel/API    Dataset/指标    RBAC/行级权限
       │               │
       └───────→ 指标层 ←──────────────┘
                    │
                    ↓
              可视化分析引擎
                    │
       ┌────────────┼────────────┐
       ↓            ↓            ↓
    Dashboard     自助分析      报表
       │            │            │
       └────────────┼────────────┘
                    ↓
              多维分析引擎
                    │
          ┌─────────┼─────────┐
          ↓         ↓         ↓
        下钻       联动       筛选
                    │
               发布/分享
                    │
          ┌─────────┼─────────┐
          ↓         ↓         ↓
        Excel      PDF       大屏

安全模型

  • 双层 SQL 安全:AST 级校验(node-sql-parser)+ 正则级校验(shared.js)
  • 强制只读:nl_query/mysql_query 仅接受 SELECT/SHOW/DESCRIBE/EXPLAIN
  • 表白名单:超出白名单的表引用直接拒绝
  • 行级权限:自动注入 WHERE 条件
  • 列级黑名单:禁止查看敏感列
  • LIMIT 注入:自动补 LIMIT 2000,拒绝无限制查询
  • 超时保护:MAX_EXECUTION_TIME(15000ms) 优化器提示

开发

node --check lib\index.js lib\shared.js lib\sqlsafe.js lib\text2sql.js lib\chart.js lib\metrics.js lib\dashboard.js lib\export.js lib\typert.host.js lib\client.js
node test\shared.test.mjs
node test\sqlsafe.test.mjs
node test\text2sql.test.mjs
node test\chart.test.mjs
node test\chart-v2.test.mjs
node test\metrics.test.mjs
node test\dashboard.test.mjs
node test\export.test.mjs

版本历史

v0.2.0(2026-08-23)

  • 🎉 全面升级为企业级 BI 报表系统
  • 📐 新增指标/维度/数据集管理
  • 📊 扩展 15+ 图表类型(漏斗/散点/热力/雷达/桑基/仪表盘/树图/面积/堆叠/瀑布/进度条)
  • 📐 新增 Dashboard 仪表盘(网格布局/多组件/全局筛选器/自动刷新)
  • 🔍 增强 Text2SQL prompt(指标感知/分析类型/chartType 输出)
  • 🔧 新增自助分析面板(拖拽字段→生成 SQL)
  • 📥 新增数据导出(CSV/TSV/Markdown/Excel)
  • 📋 新增审计日志
  • 🔒 新增行级权限和列级黑名单
  • 📐 新增多维分析函数(同比/环比/累计/移动平均/TopN/排名)

v0.1.1

  • 基础 Text2SQL 自然语言查库
  • 4 种图表类型(bar/line/pie/stat)
  • 报表收藏
  • 侧栏数据面板(SchemaTree + GridPanel)