作者:互联网 时间: 2026-08-04 14:36:54
在我创业的过程中(企业日常运营),业务人员(销售、运营、财务等)每天会产生大量的数据,但受限于技术门槛,无法像数据分析师一样高效地探查数据、获取洞察。
而传统BI工具操作又比较复杂、学习成本高,让技术人员逐项写SQL取数效率又非常低下。
于是我花了一周时间,借助Vibe Coding,打造了一款开源可视化数据分析工具——灵析(AureKa)。
它可以让用户“像聊天一样”分析数据,用自然语言完成原本需要SQL和Python才能实现的数据分析。
概括来看,我们不需要雇佣一个数据分析人员,或者一个专业人士,来帮我们分析整理数据,只需要一个指令,AI就能自动帮你分析excel数据内容,并生成专业的数据洞察报告。
之前和大家说会开源一个版本,所以今天来兑现一下自己的承诺:
github:github.com/MrXujiang/o…
下面我会详细地和大家介绍这款AI开源项目有哪些值得参考的功能和技术实现。
Aureka是一个开箱即用的对话式智能数据分析平台(Chat BI),我们完成一个数据分析报告,只需要按照如下步骤操作:
整个过程不需要我们编写任一行代码,数据全部保存在用户本地(基于SQLite + DuckDB存储),隐私可控、支持本地私有化部署。
核心功能如下:
1.自然语言查询
我们可以像聊天一样提问,Aureka 会自动翻译为可执行 SQL,并进行数据查询和分析工作。
下面分享一个完整对话的过程:
我们可以看到,通过我设计的Agent,AI可以自动编写SQL进行数据查询和分析,自动生成可视化图表。
2. 多意图智能路由
Aureka 内置了数据查询、对比分析、归因分析、异常检测、趋势预测、统计汇总等分析意图,可以帮助我们进行专业的数据分析。
如果你是团队管理者,可以导入一个任务管理表,它能一键帮你分析团队项目进展,风险评估和团队KOI / KPI;
如果你是经营者,可以让Aureka 帮你分析经营数据,并给出更科学的洞察和建议。
下面是我基于一个 Excel 表格让 Aureka 生成的分析报告,给大家参考一下:
3. 多格式数据接入
目前 Aureka 支持了 CSV,XLSX,XLS等文件格式的解析和导入,同时还能直接在线编辑这些文件的数据,让AI实时分析。
另一方面,对于企业业务系统的数据,我还提供了数据源接入的模块:
支持接入 Mysql,PostgreSQL等数据库连接。大家还能在已有方案的基础上继续扩展。
4. 高性能分析引擎
Aureka 采用了 DuckDB列式引擎设计,支持百万行级数据秒级聚合,并且能实现高效的图表生成服务。
5. 定制可视化报表
我们可以从历史对话中,将生成的图表 ding 到指定的仪表盘中,来实现上图所示的可视化大屏,让数据持续产生洞察价值。
比如在上面的AI分析对话中,我们可以 hover 到图表的右上角,点击按钮即可将当前分析图表“钉”到指定的仪表盘中:
上面是我设计的Aureka Agent 工作流。完整的技术栈如下:
| 分层 | 技术选型 |
|---|---|
| 前端 | Vue 3 · Vite · Pinia · Vue Router · UnoCSS · ECharts · vue-i18n,JitWord SDK |
| 后端 | NestJS 10 · Passport JWT · SSE 流式推送 |
| AI 编排 | LangGraph · LangChain · 多 LLM Provider(OpenAI / DeepSeek / Qwen / Kimi) |
| 数据引擎 | DuckDB(分析查询)· SQLite(元数据)· Keyv(缓存) |
| 工程化 | pnpm workspace · Turborepo · TypeScript 全栈共享类型 |
各节点实现逻辑我下面和大家详细分析总结一下:
输入:用户的自然语言对话 + 当前数据集表结构元信息
实现:LLM 分类多分析意图(统计汇总、渠道对比、异常检测、趋势预测、多维度归因等)
作用:区分分析类型,给后续 SQL 生成提供定向 Prompt,减少无效 SQL
2. SQL 生成 SQL Generator
上下文注入:自动拼接数据集字段名、数据类型、样例数据,规避字段名拼写错误等风险
约束:强制生成 DuckDB 兼容标准 SQL,禁止 DDL 删改表语句,仅支持 SELECT 查询
容错机制:LLM 生成 SQL 语法错误时,自动携带报错日志二次修正
3. DuckDB 查询执行层
批量导入 Excel/CSV 至本地列式存储,无需依赖外部数据库
列式引擎天然适配聚合、分组、排序,百万行数据秒级返回
隔离机制:每个用户数据集独立逻辑表,数据仅存在本地文件./data/analysis.duckdb
4. 数据分析模块 Analysis
接收 SQL 查询结果,LLM 基于数值自动输出业务解读:涨跌幅度、占比、异常点、潜在原因
结构化输出文本结论,区分客观数据描述与主观业务分析
5. 图表推荐 Chart Advisor
规则 + LLM 双层判断:根据维度数量、指标类型自动匹配 ECharts 图表(折线、柱状、饼图、表格)
输出标准化 ECharts 配置 JSON,前端直接渲染,无需二次适配
6. SSE 流式输出
采用 Server-Sent Events 长连接,替代轮询 / WebSocket,轻量化无连接断开开销
分块推送:先输出思考文本 → SQL 语句 → 数据表格 JSON → 图表配置 → 完整分析结论
前端useSSE钩子增量渲染,实现打字机实时输出体验
项目采用双数据库分离存储,实现了元数据与分析数据的解耦,所有文件都通过本地磁盘存储,不需要云端上传,提高了数据的安全性:
存储内容:用户账号、JWT 会话、数据集基础信息、历史对话、分析报告、系统配置
文件路径:./data/metadata.db
缓存配套:Keyv 支持 memory/sqlite 双缓存驱动,缓存 LLM 配置、数据集表结构,减少重复解析
DuckDB(列式分析引擎)
存储内容:用户上传的 Excel/CSV 原始数据,全部导入本地文件./data/analysis.duckdb
技术优势:嵌入式 OLAP 引擎,无需独立服务进程,NodeJS 直接本地读写;针对批量聚合查询性能远优于 SQLite;支持 CSV/Excel 直接导入语法
文件存储: 上传文件本地保存./uploads目录,可自定义存储驱动,默认 local 本地磁盘
整个项目我采用了 Monorepo 全栈分层架构,分为前端应用层、后端服务层、AI 智能编排层、数据存储引擎层,一共四层,配套工程化底座、鉴权、国际化基础设施,对于AI项目来说还是非常有参考借鉴价值的,大家可以研究参考一下。
后端我抽象了统一的 LLM Provider 接口,兼容主流大模型,用户可以线上接入自己的模型AI,也可以使用 OpenAPI 兼容的URL地址接入(比如DIFY),具体模型兼容和技术设计如下:
LLM_PROVIDER、LLM_API_KEY、LLM_BASE_URL、LLM_MODEL、温度控制LLM_TEMPERATURE=0.1(低温度保证 SQL 稳定性)大家可以直接用 JitWord 的账号一键注册登录,同时也可以使用它的开放API,通过API自动获取 Token:
github:github.com/MrXujiang/o…
如果大家对这款工具感兴趣,欢迎交流反馈 + 共建。
开源不易,多多 star~