作者设计了一套机制:AI 根据列名和样本推断类型后生成实际 JavaScript 代码,对全量数据执行并做可验证的确定性仪表盘。
几个月前,我让一个 AI 工具帮我汇总一张销售电子表格。它给出了一个干净、利落的数字。
但它是错的。不是那种"四舍五入误差"的错——它悄悄地跳过了一些行,生成一个看起来合理的总数。没有任何提示,没有任何保留。它直接报出那个数字,仿佛那是事实。
这才是 LLM 处理表格数据时的真正问题:它们不是在做计算,而是在做估计。让一个模型去求一列的和,在它内部,其实是在对你电子表格的某个序列化片段做 next-token 预测——而不是做算术。有时对,有时悄悄错。而它永远不会告诉你这次是对还是错。
所以我专门做了 Sheet Analysis AI,让它不可能犯这种错。下面是它真正的机制——不是营销说辞。
当你问"哪个地区增长最快?"这样的问题时,模型看到的不是你的数据。它看到的是:
基于这些,它会写一小段 JavaScript——真正的代码,而不是自然语言的回答。这段代码然后在你的浏览器本地执行,针对你的完整数据集(经测试最高可处理 10 万行)。
模型决定方法(按地区分组、求收入和、降序排列)。计算由你的机器完成。仅此一条就干掉了"自信估计"这种失败模式,因为根本没有估计这一步——只有代码执行。
确定性仪表盘(KPI、Mann-Kendall 趋势检测、ANOVA 季节性、Pareto/RFM 细分、预测)甚至完全不涉及 AI——它就是普通的统计代码,在你上传文件的那一刻就运行了,不需要任何 API key。
即便是代码生成的数字也可能出错——逻辑错误、边界情况、误读的列。所以在任何内容渲染之前,会有一个独立的确定性审计器——不涉及 AI——重新检查每个数字是否与源数据行一致。举一个具体的例子:
总收入是 $1,000。审计器会用几种不同的方式检查:
可追溯性——"$1,000"是否真的等于你文件中真实行的总和,还是有东西是编造出来的?
百分比计算——如果一份报告说"北方占收入的 40%",那是严格按 400 / 1000 计算出来的,还是一个听起来合理的猜测?
交叉核对——同一个总数用两种不同方式切分必须一致。按地区:400 + 600 = 1000。按产品:300 + 700 = 1000。如果这些不匹配,说明上游出了问题,那个数字会被阻止显示,而不是被展示出来。
声明绑定——如果摘要说"笔记本电脑是 Top 产品",那个声明会在允许打印之前根据实际计算出的数字进行核实。
任何一项检查失败都会阻止那个数字显示。它不会被降级为"大约"——它就是不会被渲染。
先把范围说清楚:
免费、不需要 key、即时可用:仪表盘、KPI、趋势统计、预测,以及一个基于规则的"与数据对话"版本。
需要你自己的 AI key(OpenAI / Gemini / DeepSeek 等,Bring Your Own Key):对话式问答会更智能,"深度分析"(完整 AI 报告 + 隐藏模式检测)也会可用。没有任何数据经过我的基础设施或由我付费——你的 key 从你的浏览器直接与你的提供商对话。
React 19 + TypeScript + Vite。这个版本没有后端——解析、分析和对账关卡全部在客户端运行。采用 AGPL-3.0 许可证。
我认为这个模式——AI 提出方法、确定性代码执行、独立的审计器在显示前验证——对于任何构建"AI + 你的数据"工具的人来说都是通用有用的,而且作为参考实现对更多人有用,而不是作为一个用户寥寥的 SaaS。
Repo: https://github.com/Durlabhkumarjha/sheet-analysis-ai
真的很想知道有没有人用不同方式解决过这个"AI + 真实数字"的信任问题——非常希望在评论区交流心得。