Skip to content

About

AI-powered data analytics workbench prototype

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

DataPilot Analytics Logo

DataPilot Analytics

企业级大模型数据分析工作台原型

从多源数据接入、元数据治理与目录沉淀,到即时多维分析与受控 AI 看板生成

License: MIT Node.js Version React TypeScript Vite Semi Design AI Providers

English | 简体中文


📖 项目简介

DataPilot Analytics 是一个面向企业场景的 AI 数据分析工作台原型,旨在打通“数据接入 → 元数据治理 → 即时分析 → AI 看板生成 → 局部编辑与脱敏导出”的端到端闭环体验。

与盲目追求文本直出 SQL 的玩具项目不同,DataPilot Analytics 坚持数据、分析结构(Manifest)与画布渲染三层解耦。通过受控的运行时 Agent、白名单图表推荐字典、确定性布局校验器与微创式局部 Patch 机制,既能让企业用户用自然语言完成“指哪打哪”的局部看板微调,又绝不推翻重构整张报表。

项目原生支持主流大模型(Anthropic Claude、OpenAI、Google Gemini、NVIDIA NIM 及企业兼容接口),并内置高鲁棒性的本地规则引擎双轨回退:即使未配置任何大模型 API Key,也能完整体验看板生成与局部调整。

📌 真实与模拟边界说明:当前项目已实现完整的前端界面、ECharts/自绘 SVG 渲染、参数化服务端数仓聚合、真实模型后端网关、BYOK 会话内存管理及细粒度数据权限原型。多租户 SSO、分布式计算及生产级密钥托管见 实现现状说明。


📸 界面预览

1. 工作空间概览 (Workspace Overview)

统一掌握企业数据全貌:数据源健康状态、数仓分层(DWD / DWS / ADS)、核心指标与即席分析报表。

DataPilot Analytics 工作空间概览

2. 分析报表画布与 AI 助手 (Analytics Dashboard & AI Assistant)

基于结构化 Manifest 驱动渲染指标卡、趋势折线图、对比柱状图与多维筛选联动;右侧停靠式 AI 助手支持自然语言对话与微创式局部修改(Surgical In-Place Editing)。

分析报表画布与 AI 助手交互

3. 即时多维分析与报表门户 (Ad-hoc Exploration & Report Portal)

灵活拖拽维度与度量进行服务端全表安全聚合,一键将即席结果固化为看板组件;报表门户支持模版库与多端自适应。

即时多维分析工作区   报表门户


⚡ 核心能力

能力模块 核心特性说明
🔌 多源接入与 ODS 同步 • 支持本地 SQLite,以及通过直连或 SSH 加密隧道连接 PostgreSQL、MySQL、SQL Server
• 自动化表结构扫描、数据质量评分(空值率、去重值、均值与四分位数、异常检测)
• 手动全量同步至本地 ODS 数仓,单表支持 10 万行覆盖写入,失败表隔离不阻断
📚 保护型数据目录与关联 • 统一维护数据源、物理表、字段画像、语义指标与数据字典
• 人工保护锁:用户修正后的元数据永久锁定,后续 AI 重新扫描绝不覆盖覆盖人工资产
• 可视化拖拽连线定义数仓实体表关联(LEFT / INNER),自动预检基数并生成联合模型数据集
⚡ 即时多维分析 (Ad-hoc) • 拖拽维度与度量,服务端全表参数化安全聚合(求和、均值、去重计数等)
• 告别前端 500 行抽样失真;一键将即席分析结果转化为持久化看板组件并生成 Query Receipt
🤖 受控 AI 引擎与局部 Patch • 任务级 Agent / Skill 规则编译加载,内置 FT 视觉词汇表与图表推荐字典
• 微创式局部 Patch:支持位置指代(左上角)、标题搜索或点击组件定向修改
• 双轨安全兜底:模型故障、超时或校验不通过时,自动无缝切换到确定性本地规则引擎
🎨 Semi Design 看板引擎 • 严格遵循字节跳动 Semi Design 企业级设计令牌,提供克制专业的亮/暗双主题
• 基于 react-grid-layout 的自由拖拽调整与网格吸附缩放
• 指标卡、柱线图、明细表与多层级结构化洞察(核心结论 / 关键发现 / 行动建议)
• 图表间跨维度 Cross-Filter 交互联动
📦 离线独立 HTML 导出 • 一键导出单文件 HTML,内嵌最小脱敏数据投影与轻量运行时
• 无需任何服务器或数据库依赖,在纯离线环境下依然可交互筛选、图表联动与悬浮查看
🔒 企业权限与内存凭据安全 • 基于角色的访问控制(RBAC),支持数据集预览/分析/导出策略,以及行级范围和字段脱敏
• 内存凭据保险库:关系型数据库密码、SSH 私钥及用户 BYOK 模型 API Key 仅暂存于服务端内存,绝不落盘持久化

🏗️ 架构设计

DataPilot Analytics 严格遵守数据源 → 治理目录 → 结构化 Manifest → 渲染引擎的单向数据流与闭环反馈:

graph TD
    subgraph 多源数据接入
        sqlite["SQLite 本地 / 导入"]
        pg["PostgreSQL 直连 / SSH"]
        mysql["MySQL 直连 / SSH"]
        mssql["SQL Server 直连 / SSH"]
    end

    subgraph 数据目录与语义治理
        scan["元数据扫描与质量画像"]
        sync["手动全量同步 ODS 数仓"]
        catalog["保护型数据字典与指标清单"]
        relation["可视化数仓关系建模"]
    end

    subgraph 分析与探索
        adhoc["即时多维分析 Ad-hoc"]
        dashboard["分析报表 / 动态看板"]
    end

    subgraph 双轨AI编排引擎
        llm["真实 LLM API"]
        rules["确定性规则回退引擎"]
        validator["运行时结构与权限校验器"]
        patch["结构化 Manifest Patch"]
    end

    subgraph 企业级展现与交付
        canvas["Semi Design 画布渲染"]
        export["独立离线 HTML / 图片导出"]
    end

    sqlite --> scan
    pg --> scan
    mysql --> scan
    mssql --> scan
    scan --> sync
    sync --> catalog
    catalog --> relation
    relation --> adhoc
    adhoc --> dashboard
    catalog --> llm
    catalog --> rules
    dashboard --> llm
    dashboard --> rules
    llm --> patch
    rules --> patch
    patch --> validator
    validator --> canvas
    canvas --> export
Loading

核心设计原则

  1. 结构化 Manifest 为唯一可编辑事实源:看板组件类型、字段映射、布局与主题全部由结构化 JSON 描述,HTML 仅为渲染介质,杜绝散落的数据硬编码。
  2. 微创修改而非全量重绘:局部修改只下发单组件的 updateWidget / updateFilter Patch,避免模型重写破坏其他已精心调整好的组件。
  3. 确定性降级保证高可用:AI 服务异常或配置未就绪时,界面明确提示原因并切换到本地规则,始终给用户可用反馈。

🛠️ 技术栈

层级 技术选型 说明
前端框架 React 18 + TypeScript + Vite 8 极速热重载,严谨的组件化与静态类型约束
UI 设计系统 @douyinfe/semi-ui (Semi Design) 字节跳动企业级设计语言,深度采用 CSS Variables 令牌与亮/暗模式
网格布局 react-grid-layout 支持自由拖拽、网格吸附与自适应尺寸拉伸
图表与可视化 自绘 SVG / 响应式 DOM 渲染引擎 内置点位防遮挡、横轴安全刻度重算、Cross-Filter 联动
服务端 Node.js + Express + TSX 处理数据库适配、参数化查询、SSH 隧道转发与 AI 代理
本地数仓与驱动 SQLite 3 (datapilot-warehouse.sqlite)、pg、mysql2、mssql、ssh2 支持直连与 SSH 跳板机隧道
AI 适配层 OpenAI-compatible 与 Anthropic 官方客户端适配器 支持流式、结构化 JSON Mode 及会话级 BYOK 临时凭据管理

🚀 快速开始

环境要求

  • Node.js: ^20.19.0 或 >=22.12.0
  • 包管理器: npm (推荐 npm ci)

1. 克隆并安装依赖

git clone https://github.com/Drawoh-eh/DataPilot-Analytics.git
cd DataPilot-Analytics
npm ci

2. 初始化演示数据库 (可选)

项目内置了生成本地 SQLite 仿真零售数据的脚本,包含订单明细与客户行为:

npm run db:init

生成的文件存放在 data/local/(已加入 .gitignore),不会污染仓库或篡改用户自定义数据库。

3. 启动开发服务器

npm run dev

浏览器打开 http://127.0.0.1:5173/。

零配置可用:即使尚未配置任何大模型密钥,系统也会启用确定性本地规则引擎,支持完整体验看板生成、主题切换、图表类型切换与筛选器添加!


🔑 模型配置与 BYOK

系统支持两种模型配置模式:

模式 A:用户自带密钥 (BYOK,推荐试用)

直接在工作台右下角点击 “系统设置” → “模型连接”:

  • 支持 NVIDIA NIM、OpenAI、Anthropic Claude、Google Gemini、Ollama 或任意兼容 OpenAI 协议的企业网关。
  • 密钥仅保存在本机后端服务内存中,会话关闭或手动断开即销毁,绝不写入浏览器存储或持久化到磁盘。

模式 B:服务器默认配置

复制环境变量模版并启动:

cp .env.example .env

编辑 .env:

# 示例:配置 NVIDIA NIM
AI_PROVIDER=openai-compatible
AI_API_KEY=nvapi-your-key-here
AI_MODEL=nvidia/nemotron-3-super-120b-a12b
AI_BASE_URL=https://integrate.api.nvidia.com/v1

# 示例:配置 Anthropic Claude
# AI_PROVIDER=anthropic
# AI_API_KEY=sk-ant-your-key-here
# AI_MODEL=claude-3-5-sonnet-20241022

# 示例:配置 Google Gemini (兼容接口)
# AI_PROVIDER=openai-compatible
# AI_API_KEY=your-gemini-key
# AI_MODEL=gemini-1.5-pro
# AI_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/

详细供应商配置、Token 参数与 Hindsight 记忆配置参见 真实模型 API 配置指南。


🔄 数据接入与分析工作流

  1. 连接数据源:在“数据源清单”中选择 SQLite、PostgreSQL、MySQL 或 SQL Server,填写连接信息(可勾选 SSH 隧道)。
  2. 探查与质检:一键预览源表,系统自动扫描字段结构并生成质量事实(记录数、空值率、高频值分布、均值四分位)。
  3. 人工元数据锁定:在“元数据确认”中补齐业务名称与计算口径,已人工确认的内容永久锁定。
  4. 数仓全量同步:多选关键表,一键全量抽取至本地数仓,完成 ODS 落地并记录读写行数与同步状态。
  5. 构建关联模型:拖拽两表连接线配置多对一/一对一关联,验证基数后生成可供即时分析的联合数据集。
  6. 即席探索或一键成板:
    • 在“即时分析”中拖拽维度度量,服务端全表聚合,结果一键加入看板;
    • 在“分析报表”右侧 AI 助手输入自然语言(例如“分析不同渠道的新增用户转化与收入趋势”),即可秒级生成多组件分析看板。

🧪 自动化测试与质量保障

项目配备了严格的回归测试脚本,覆盖前端运行时、模型网关适配、SQLite 数仓与关系型连接器:

# 运行前端与运行时渲染回归
npm run test:runtime

# 运行真实模型后端适配器测试
npm run test:ai

# 运行 SQLite 数仓与参数化聚合测试
npm run test:db

# 运行 PostgreSQL / MySQL / SQL Server 关系型连接器回归
npm run test:connectors

# 静态类型检查与生产构建
npm run build

🚢 构建与部署

生产构建与本地运行

npm run build
npm run start

云端部署 (Azure Linux VM / Docker)

  • 项目支持通过 GitHub Actions 实现自动化部署,详细操作与 Caddy HTTPS 反向代理配置参见 Azure 部署说明。
  • 部署安全清单:
    • 严禁将 .env、凭据文件与真实业务 data/ 目录提交至公共仓库;
    • 生产环境建议开启系统登录身份认证并强制启用 HTTPS;
    • 关系型数据库连接建议使用具备只读权限的最小化特权账号。

📚 详细文档导航

文档 作用与涵盖内容
📋 实现现状说明 (真实 vs 模拟) 核心必读:明确区分哪些是真实落地代码、哪些是展示层原型模拟
🔌 数据源适配器说明 深入介绍关系型连接器、SSH 隧道机制与 ODS 同步契约
🤖 真实模型 API 配置指南 覆盖 Claude、OpenAI、Gemini、NVIDIA NIM 的参数调整与记忆配置
☁️ Azure 部署与运维指南 涵盖 Linux VM 搭建、Caddy HTTPS 证书配置与 CI/CD 自动部署
🎨 设计规范与设计令牌参考 Semi Design 设计令牌、亮暗色彩映射与图表调色板字典
🤝 开发协作约定 (AGENTS.md) 针对 Agent 与协同开发者的架构约束、修改协议与目录边界
📝 版本更新日志 每次功能更新与重大变更的追踪记录

📄 License

本项目采用 MIT License 开源协议。

About

AI-powered data analytics workbench prototype

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages