DataMind:用自然语言和 AI 直接问出你想要的数据
不写 SQL,不找数据分析师,不等报表——只需一句话,10 秒得到图表、数据与洞察结论。
你有没有遇到过这些困境?
业务同学想看一下「上个月各地区销售额对比」,于是在工单系统里提了个需求。数据分析师排期三天后才能排上,还要沟通口径、确认维度,最终一张图出来,需求方觉得「不是这个意思」……
或者你自己会写一点 SQL,好不容易拼出了查询语句,却发现连接哪个数据库、用哪张表、字段名叫什么,每次都要翻文档或者问别人。
DataMind 就是为解决这个问题而生的。
它的核心逻辑只有一句话:你用中文说需求,它自动帮你查数据、出图表、给结论。
DataMind 是什么?
DataMind 是一个开源的 AI 数据分析平台,基于微服务架构构建,前端零依赖(纯浏览器运行),后端用 Python/FastAPI,支持接入主流数据库和多种 AI 大模型。
它把「数据分析」这件事拆成了四个自动化步骤:
你输入中文问题
↓
① 语义解析:AI 理解你要分析的是「趋势」「对比」「排名」还是「构成」
↓
② SQL 生成:根据你的数据库表结构,自动写出安全的查询语句
↓
③ 数据查询:执行 SQL,从真实数据库取数(带缓存加速)
↓
④ 可视化与洞察:生成柱图/折线/饼图,并输出「核心结论 + 数据发现 + 行动建议」
整个过程你什么都不需要做,只需要等 10 秒左右。
快速上手:5 分钟跑起来
环境准备
只需要一台装了 Docker 的机器,Windows/Mac/Linux 均可。
# 检查 Docker 版本(需要 24+)
docker --version
docker compose version
一键启动
# 克隆项目
git clone <repo-url>
cd datamind
# 初始化配置文件
make setup
# 编辑 .env,填入你的 AI Key(详见下方「接入 AI 模型」)
vim .env
# 启动所有服务
make up
# 打开浏览器
open http://localhost:8080
启动后你会看到一个深色系的控制台界面,两个主要入口:
- 智能数据查询 → 日常使用的主界面
- 可视化配置中心 → 初始化配置数据库和 AI 模型
第一步:配置你的数据库
打开配置中心(/config.html),在「数据库」标签下填写连接信息:
| 字段 | 说明 |
|---|---|
| 配置名称 | 随便起个名字,比如「生产库」「测试库」 |
| 数据库类型 | 支持 PostgreSQL、MySQL、ClickHouse、Oracle、SQL Server、Doris |
| 主机 / 端口 | 填你的数据库地址 |
| 数据库名 | 要分析的库名 |
| 用户名 / 密码 | 建议使用只读账号 |
填好后点「测试连接」,绿灯亮起就说明配通了。
提示: 可以保存多个数据库配置,在查询页面可以随时切换或同时选择多个库。
让 AI 知道你的表结构
连接成功后,点击「自动读取 Schema」,系统会自动抓取当前库里所有表的字段信息。
如果你的表字段名比较晦涩(比如 ord_rgn_cd 表示「订单地区编码」),可以在 Schema 管理页面手动给字段加上中文备注。AI 在生成 SQL 时会参考这些备注,理解能力会大幅提升。
第二步:接入 AI 模型
DataMind 支持多种 AI 大模型,在配置中心的「AI 引擎」标签下添加:
选项一:Claude(推荐,效果最好)
注册 Anthropic 后获取 API Key:
接口格式:Anthropic 原生
端点:https://api.anthropic.com/v1/messages
API Key:sk-ant-api03-xxxx
模型:Claude Sonnet 4.6(推荐均衡)/ Claude Opus 4.6(质量最高)
选项二:Kimi(国内访问稳定)
注册 Moonshot 获取 Key:
接口格式:OpenAI 兼容
端点:https://api.moonshot.cn/v1/chat/completions
模型:moonshot-v1-32k
选项三:DeepSeek(高性价比)
接口格式:OpenAI 兼容
端点:https://api.deepseek.com/v1/chat/completions
模型:deepseek-chat
选项四:本地模型(完全离线,数据不出本机)
安装 Ollama 后:
接口格式:OpenAI 兼容
端点:http://localhost:11434/v1/chat/completions
模型:qwen2.5 / llama3(本地安装的模型名)
API Key:(留空)
可以保存多个 AI 配置,查询时自由切换——比如平时用 Kimi 省成本,重要分析时换 Claude 出更好的结论。
开始查询:几个真实示例
配置完成后,打开查询页面(/query.html),在输入框里用中文描述你的需求:
示例 1:趋势分析
过去 6 个月,每月的订单量变化趋势是什么?
AI 会识别这是「趋势分析」,生成带日期分组的 SQL,自动渲染为折线图,并告诉你:「5 月环比增长 23%,为近半年最高点」。
示例 2:对比分析
各大区近 30 天销售额对比,哪个区最高?
生成 GROUP BY region 的 SQL,渲染为柱状图,洞察结论直接指出:「华东区占比 41%,华南区同比下滑 8%」。
示例 3:排名分析
毛利率最高的产品类目 Top 5
自动加 ORDER BY + LIMIT,饼图或水平柱图展示,附上排名数据表。
示例 4:构成分析
当前活跃用户中,VIP / 普通 / 新用户各占多少比例?
饼图 + 百分比表格,直接告诉你用户结构现状。
每次查询结果都包含三部分:
- 生成的 SQL:可以一键复制,放到任意 SQL 工具里验证
- 可视化图表:支持柱图、折线、饼图、面积图,随时切换
- 智能洞察:核心结论 / 数据发现 / 行动建议,三段式结构,可直接复制到报告里
进阶技巧
多数据库联合分析
查询页面顶部的数据库选择器支持多选。当你勾选多个库时,系统会分别查询每个库的相同结构,帮你做跨库对比。这对于「主库 vs 备库数据一致性核查」或「多业务线数据横向比较」非常有用。
自定义 Prompt 前缀
在 AI 配置里有一个「自定义 Prompt 前缀」字段,你可以在这里写入业务背景:
本系统为电商业务数据库。
金额单位为人民币元。
订单状态:1=待支付,2=已支付,3=已发货,4=已完成,5=已取消。
分析时请忽略测试账号(user_id < 1000)的订单。
加了这段前缀后,AI 在生成 SQL 时会自动过滤测试数据,金额单位也会在洞察文字里正确描述。
查询缓存
相同的问题第二次查询会从缓存直接返回(默认 5 分钟),响应速度从 10 秒变成不到 1 秒。缓存时长可以在配置中心的「规则」标签里调整。
SQL 安全规则
系统默认禁止 DROP、DELETE、UPDATE、INSERT 等危险操作,所有查询自动追加 LIMIT 10000。这意味着即使配置了有写权限的数据库账号,DataMind 也不会误操作数据。
建议还是使用只读账号,多一层保障。
技术架构一览(给技术同学看的)
DataMind 采用微服务架构,各服务职责清晰、独立部署:
Browser(Vue 3,无构建工具)
│
Nginx :8080(静态文件 + 反代)
│
API Gateway :8000(路由 / 限流 / 链路追踪)
│
┌─────┼──────┐
↓ ↓ ↓
NLP SQL Viz
:8001 :8002 :8003
│
Redis :6379(查询结果缓存)
| 模块 | 技术选型 | 职责 |
|---|---|---|
| 前端 | Vue 3 CDN + ECharts 5 | 零构建,单 HTML 文件 |
| 网关 | FastAPI + httpx | 路由、限流、配置管理 |
| NLP | FastAPI + Anthropic SDK | 语义解析、意图识别 |
| SQL | FastAPI + SQLAlchemy | SQL 生成、安全校验、执行 |
| Viz | FastAPI | 图表配置、AI 洞察生成 |
| 缓存 | Redis 7 Alpine | LRU 缓存,256MB 限制 |
整个项目只需要 Docker Compose 即可运行,没有 K8s、没有复杂的依赖链。对中小团队来说,维护成本极低。
常见问题
Q:不会写 SQL 能用吗?
完全可以,这正是 DataMind 的核心价值。你只需要大概知道「我想分析什么」,AI 会替你处理所有技术细节。
Q:数据安全吗?会把数据发给 AI 吗?
DataMind 只会把表结构(字段名和备注)发给 AI,让它生成 SQL 语句。你的实际业务数据始终留在你自己的数据库里,不会离开你的服务器。如果使用本地 Ollama 模型,连表结构也不会出境。
Q:支持哪些数据库?
PostgreSQL、MySQL 8.0+、ClickHouse、Oracle 19c+、SQL Server、Apache Doris,以及 SQLite(用于测试)。
Q:AI 生成的 SQL 不准怎么办?
几个改善方向:
- 给 Schema 里的字段加中文备注,让 AI 更好理解字段含义
- 在 AI 配置的「Prompt 前缀」里描述业务背景和特殊规则
- 换用更强的模型(Claude Opus 4.6 比 Sonnet 更准确)
- 问题描述尽量具体,「近 30 天各地区销售额」比「看看销售情况」效果好很多
Q:查询很慢怎么办?
第一次查询需要调用 AI,一般 5-15 秒。之后相同问题会走缓存,基本秒回。如果觉得慢,可以试试 Kimi 或 DeepSeek 等国内模型,网络延迟更低。
Q:可以私有化部署吗?
可以。整个系统通过 Docker Compose 部署,在内网服务器上运行完全没问题。配合 Ollama 本地大模型,可以实现数据和 AI 全程不出局域网。
适合谁用?
- 业务分析师:摆脱等 SQL 的痛苦,自助取数、自助出图
- 产品经理:快速验证数据假设,会议前 5 分钟就能出数据
- 技术团队:给非技术同学部署一套自助分析工具,减少数据需求工单
- 创业公司:没有专职数据分析师,老板和运营可以直接看数据
- 数据团队:作为内部数据民主化工具,降低数据门槛
项目地址与反馈
项目开源 地址1:download.csdn.net/download/ap… 地址2:github.com/xiaohunqiu1… 欢迎 Star、Fork 和提 Issue。
如果你在使用中遇到问题,或者有功能建议,欢迎在 GitHub Issues 反馈。
DataMind — 让每个人都能轻松读懂数据。