开源!我用SQLite + DuckDB打造了一款可视化AI问数平台

在我创业的过程中(企业日常运营),业务人员(销售、运营、财务等)每天会产生大量的数据,但受限于技术门槛,无法像数据分析师一样高效地探查数据、获取洞察。

而传统BI工具操作又比较复杂、学习成本高,让技术人员逐项写SQL取数效率又非常低下。

于是我花了一周时间,借助Vibe Coding,打造了一款开源可视化数据分析工具------灵析(AureKa)。

它可以让用户"像聊天一样"分析数据,用自然语言完成原本需要SQL和Python才能实现的数据分析。

简单来说,我们不需要雇佣一个数据分析人员,或者一个专业人士,来帮我们分析整理数据,只需要一个指令,AI就能自动帮你分析excel数据内容,并生成专业的数据洞察报告。

之前和大家说会开源一个版本,所以今天来兑现一下自己的承诺:

github:github.com/MrXujiang/o...

下面我会详细地和大家介绍这款AI开源项目有哪些值得参考的功能和技术实现。

核心功能介绍

Aureka 是一个开箱即用的 对话式智能数据分析平台(Chat BI),我们完成一个数据分析报告,只需要按照如下步骤操作:

  1. 上传 Excel / CSV 数据集
  2. 用自然语言提问,例如「近三个月各渠道销售额对比,哪个渠道下滑最严重?」
  3. AI Agent 自动完成 意图识别 → SQL 生成 → DuckDB 查询 → 数据分析 → 图表推荐
  4. 实时流式输出分析结论、数据表格与 ECharts 可视化图表
  5. 一键沉淀为分析报告,随时回溯历史会话

整个过程不需要我们编写任一行代码,数据全部保存在用户本地(基于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 全栈共享类型

各节点实现逻辑我下面和大家详细分析总结一下:

  1. 1. 意图识别 Intent Router
  • 输入:用户的自然语言对话 + 当前数据集表结构元信息

  • 实现: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钩子增量渲染,实现打字机实时输出体验

数据存储层双引擎设计

项目采用双数据库分离存储,实现了元数据与分析数据的解耦,所有文件都通过本地磁盘存储,不需要云端上传,提高了数据的安全性:

  1. SQLite(元数据存储)
  • 存储内容:用户账号、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),具体模型兼容和技术设计如下:

  • 支持厂商:OpenAI、DeepSeek、通义千问 (Qwen)、Kimi
  • 统一配置字段:LLM_PROVIDERLLM_API_KEYLLM_BASE_URLLLM_MODEL、温度控制LLM_TEMPERATURE=0.1(低温度保证 SQL 稳定性)
  • 适配器封装:统一格式化 Prompt、处理流式 chunk、捕获 API 异常,上层 Agent 无感知切换模型

用户体系和JitWord完全打通

大家可以直接用 JitWord 的账号一键注册登录,同时也可以使用它的开放API,通过API自动获取 Token:

github:github.com/MrXujiang/o...

如果大家对这款工具感兴趣,欢迎交流反馈 + 共建。

开源不易,多多 star~

相关推荐
Hrain-AI1 小时前
2026 企业 AI 智能体平台横评:8 大主流平台 7 维度实测对比
人工智能·算法·机器学习
leslie1181 小时前
babel笔记
前端
用户059540174462 小时前
Redis 记忆存储踩坑实录:一个并发写入 Bug 让我排查了 4 小时
前端·css
Angel Q.2 小时前
因子分析和生成模型有什么关系?从“幕后因素”到“生成数据”
算法
小徐_23332 小时前
Wot UI 2.3.0 发布:二维码组件来了,Open Wot 与 wot-starter 同步更新
前端·微信小程序·uni-app
kyriewen3 小时前
Claude自己跑出去hack了3家公司——我为什么还在用它写代码
前端·ai编程·claude
IT_陈寒3 小时前
SpringBoot自动配置的坑,这次真踩疼我了
前端·人工智能·后端
子兮曰3 小时前
AI 浏览器 Agent 的安全困局:当自动化工具可以偷走你的登录态
前端·人工智能·后端
程序员黑豆3 小时前
鸿蒙应用开发之@Styles 装饰器:定义可复用的组件样式
前端·harmonyos