Phase 95 — BI智能分析设计
版本: v4.5.0 创建日期: 2026-03-10 状态: ✅ 已实现
一、模块概述
Phase 95 实现BI智能分析引擎,支持自然语言转SQL查询、自动报表生成、可视化仪表盘、Z-score异常检测和线性趋势预测,提供5种内置报表模板,让数据分析零门槛。
1.1 核心目标
- NL→SQL转换: 自然语言描述自动转换为SQL查询,支持多表关联
- 智能报表: 自动生成分析报表,支持图表选择、指标计算和趋势标注
- 仪表盘: 可视化Dashboard编排,支持实时数据刷新和布局自定义
- 异常与预测: Z-score异常检测识别数据突变,线性回归趋势预测
1.2 技术架构
┌───────────────────────────────────────────────────────┐
│ BI Intelligence Engine │
│ │
│ ┌──────────────────┐ ┌───────────────────────────┐ │
│ │ NL→SQL Engine │ │ Report Generator │ │
│ │ LLM语义解析 │ │ 5种内置模板 │ │
│ │ Schema感知+SQL生成│ │ 图表自动选择+指标计算 │ │
│ └──────────────────┘ └───────────────────────────┘ │
│ ┌──────────────────┐ ┌───────────────────────────┐ │
│ │ Dashboard Mgr │ │ Analytics Engine │ │
│ │ 组件编排+布局 │ │ Z-score异常检测 │ │
│ │ 实时数据刷新 │ │ 线性回归趋势预测 │ │
│ └──────────────────┘ └───────────────────────────┘ │
│ ┌────────────────────────────────────────────────────┐│
│ │ Schedule & Export ││
│ │ 定时报表 → PDF/Excel导出 → 邮件分发 ││
│ └────────────────────────────────────────────────────┘│
└───────────────────────────────────────────────────────┘二、核心模块设计
2.1 BIEngine (enterprise/bi/bi-engine.js)
BI智能分析核心引擎,整合查询、报表、仪表盘和分析功能。
核心方法:
nlQuery(naturalLanguage, context)— 自然语言转SQL查询并执行(返回结果+SQL+置信度)generateReport(config)— 基于模板或自定义配置生成分析报表createDashboard(layout)— 创建可视化仪表盘(组件编排+数据绑定)detectAnomaly(dataPoints, options)— Z-score异常检测(阈值可配,默认σ=3)predictTrend(dataPoints, periods)— 线性回归趋势预测(指定预测周期数)listTemplates()— 获取5种内置报表模板列表exportReport(reportId, format)— 导出报表(PDF/Excel/CSV)scheduleReport(reportId, cron)— 设置定时报表生成计划
2.2 内置报表模板
| 序号 | 模板名称 | 说明 |
|---|---|---|
| 1 | 销售概览 | 营收趋势、Top产品、区域分布 |
| 2 | 用户分析 | 活跃度、留存率、行为漏斗 |
| 3 | 项目进度 | 里程碑、任务完成率、风险矩阵 |
| 4 | 财务报表 | 收支对比、现金流、预算执行率 |
| 5 | 运营监控 | 系统性能、错误率、资源使用率 |
三、核心文件
| 文件 | 说明 |
|---|---|
src/main/enterprise/bi/bi-engine.js | BI智能分析引擎(NL→SQL、报表、异常检测) |
src/main/enterprise/bi/bi-ipc.js | IPC Handler注册(8个通道) |
四、IPC Handlers
| Channel | 说明 |
|---|---|
bi:nl-query | 自然语言转SQL查询并执行 |
bi:generate-report | 生成分析报表(模板或自定义) |
bi:create-dashboard | 创建可视化仪表盘 |
bi:detect-anomaly | Z-score异常检测 |
bi:predict-trend | 线性回归趋势预测 |
bi:list-templates | 获取5种内置报表模板 |
bi:export-report | 导出报表(PDF/Excel/CSV) |
bi:schedule-report | 设置定时报表生成计划 |
五、数据库表
5.1 bi_reports — BI报表表
sql
CREATE TABLE IF NOT EXISTS bi_reports (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
template TEXT, -- 模板名称(NULL表示自定义)
config TEXT, -- JSON: 报表配置(数据源、图表、过滤条件)
result_data TEXT, -- JSON: 最近一次生成的报表数据
schedule TEXT, -- Cron表达式(NULL表示不定时)
status TEXT DEFAULT 'draft', -- draft | generated | scheduled
created_by TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);5.2 bi_dashboards — BI仪表盘表
sql
CREATE TABLE IF NOT EXISTS bi_dashboards (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
layout TEXT, -- JSON: 仪表盘布局(组件位置、尺寸)
components TEXT, -- JSON: 组件配置数组(数据绑定、图表类型)
refresh_interval INTEGER DEFAULT 0, -- 自动刷新间隔(秒),0=不刷新
created_by TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);六、测试覆盖
| 测试文件 | 测试数量 | 状态 |
|---|---|---|
src/main/enterprise/bi/__tests__/bi-engine.test.js | 20 | ✅ 通过 |
| 合计 | 20 | ✅ 全部通过 |
测试要点
- 自然语言转SQL解析正确性和多表关联
- 5种内置模板报表生成完整性
- 仪表盘组件编排和布局序列化
- Z-score异常检测阈值和边界条件
- 线性回归预测精度和空数据处理
- 报表导出格式(PDF/Excel/CSV)正确性
- 定时计划设置和触发验证
