Eatmydata.ai 实战:本地优先的 AI 数据分析工具,不向云端泄露一行数据
背景
数据分析的日常流程通常是这样的:从数据库或 CSV 里拿到数据,打开 Jupyter Notebook 或 BI 工具,花半小时写 SQL、调图表,最后才看到结果。更麻烦的是,如果数据涉及客户信息或业务敏感数据,直接丢进 ChatGPT 或 Claude 的分析窗口会带来隐私风险。
Eatmydata.ai 是一个完全开源(MIT 协议)、本地优先的 AI 数据分析工具。它的核心理念是数据不离浏览器——你上传的 CSV 或电子表格存储在浏览器内的 SQLite 数据库中,AI 生成的 SQL 查询直接在本地执行,远程 LLM 只看到经过 PII 过滤后的元数据,永远接触不到原始数据行。
项目地址:github.com/eatmydata-org/eatmydata
安装与部署
Eatmydata 是一个纯前端应用,无需后端服务器:
git clone https://github.com/eatmydata-org/eatmydata.git cd eatmydata make all
构建产物是一组静态文件,可以部署到任何静态托管平台(GitHub Pages、Cloudflare Pages、Nginx 等)。最快的体验方式是直接访问官方部署站点 eatmydata.ai,无需安装即可试用。
实战场景一:快速上手——用自然语言分析销售数据
假设你有一份 CSV 格式的销售数据,想快速了解各品类销售趋势。
加载数据
在 Eatmydata 界面的「Data Sources」选项卡中,上传你的 CSV 文件。工具会自动将数据导入浏览器内的 SQLite 数据库,并构建语义索引。
提问
在对话输入框中,直接用自然语言提问:
“显示过去 12 个月每个月的总销售额,按品类分组,用折线图展示”
Eatmydata 的多 Agent 系统会这样工作:
- SQL Planner Agent 分析问题,生成对应的 SQL 查询
- Coder Agent 编写图表配置代码
- Orchestrator 协调执行流程,在本地 SQLite 中运行查询
- 结果直接渲染为 Apache ECharts 图表
所有查询都在浏览器内的 SQLite 中执行,数据不会发送到任何远程服务器。
迭代探索
可以继续追问:
“哪三个品类的月增长率最快?用柱状图对比”
工具支持上下文对话,AI 会根据之前的查询结果进一步分析。
实战场景二:多表关联分析——复杂业务查询
Eatmydata 内置了多个示例数据库(Microsoft Contoso、AdventureWorks、NorthWind),方便你快速体验。假设你加载了 Contoso 数据库后提问:
“找到过去一个季度中,退货率最高的前 10 个产品,同时显示它们的供应商信息和库存量”
对于这种跨表 JOIN 查询,Eatmydata 的 Semantic Index 会发挥作用。工具会先扫描数据库 Schema、识别表间关系,然后让 SQL Planner 生成正确的关联查询。整个过程在本地 SQLite 中完成,你看到的是最终图表,中间生成的 SQL 对用户透明。
如果 AI 第一次生成的 SQL 不正确,验证机制会自动重试和修正查询计划。
实战场景三:隐私保护机制——数据如何安全地使用 AI
这是 Eatmydata 最独特的部分。它通过多层机制保护你的数据:
PII 检测与过滤
所有输入到 LLM 的数据会先经过内置的 NER(命名实体识别)引擎过滤。工具使用量化后的 bert-small-pii-detection 模型,直接在浏览器中运行,自动检测并脱敏姓名、邮箱、电话、地址等个人信息。
高基数数据脱敏
对于数值型和统计型数据,工具会在传输给 LLM 前对分布进行 rescale 或完全隐藏具体值。LLM 只能看到经过处理的汇总信息,无法反推出单行数据。
AI 代码沙箱
由 Coder Agent 生成的图表 JavaScript 代码在 QuickJS 沙箱中执行——一个没有网络、文件系统或宿主 API 访问权限的 WASM 隔离环境。即使 AI 生成的代码有恶意逻辑,也无法跳出沙箱。
自定义推理引擎
工具没有使用通用的 ONNX Runtime,而是实现了自己的 WASM SIMD 优化推理引擎——体积仅 0.34 MB(ONNX Runtime 的 1/38),推理速度反而快 1.5–1.7 倍。这意味着嵌入向量生成和 NER 全部在浏览器本地完成,无需调用任何云端推理 API。
最佳实践
- 使用本地 LLM 或廉价 API:Eatmydata 支持 OpenRouter 和所有 Vercel AI SDK 兼容的提供商。搭配
gemini-flash-2.5-lite等低成本模型,每次分析的 API 成本几乎可以忽略。
- 先加载示例数据熟悉流程:内置的 NorthWind、Contoso 数据库带预构建语义索引,是快速上手的最佳起点。
- 大数据集分批加载:虽然 SQLite OPFS 支持最高 2GB 的数据库,但浏览器内存有限。建议将大型数据集按分析维度切片后再上传。
- 利用 Schema 探索 Agent:当涉及不熟悉的数据库结构时,先让 AI 分析 Schema,再提出查询需求,能显著提高首条 SQL 的正确率。
- 注意浏览器上下文限制:如果对话过长导致 Agent 上下文超限,刷新页面后历史对话会丢失——导出关键查询结果到本地后再继续。
总结
Eatmydata 解决了一个看似简单但实际很普遍的问题:如何在不把数据上传到云端的前提下,让 AI 帮你快速分析数据。它的多 Agent 架构(Orchestrator → SQL Planner → Coder)、本地 SQLite 执行引擎和 PII 过滤机制,让「用 AI 分析敏感数据」不再是安全团队的噩梦。
对于需要快速做临时数据分析但又受限于数据隐私政策的开发者、分析师和数据团队来说,Eatmydata 提供了一条实用的中间路线——完全本地运行、完全开源免费、数据全程不离开你的浏览器。