跳到正文
返回作品列表

AITimeline:一条句句有出处的知识信息流AITimeline: a knowledge feed that shows its sources

年份
2026
状态
在做
结果
我自己写的那道出处检查,让它三周半没从外部文章里出过一张卡

这个项目押在一件事上:卡片里的每句话都得能在原文里找到出处。

AITimeline 是我给自己写的一条知识信息流。丢一个文章或视频链接进去,它读完原文,拆成几张两三分钟能读完的卡片,每张标明来源、附上原文的原话,排进一条只有我自己看得到的流。赞过、存过、问过的概念连成一张图,到时间提醒我回头看一眼。整个东西跑在自己电脑上,数据就是几个 JSON 文件;凡是要调模型的地方,都有一套不调模型也能出结果的做法,不配 API key 也能完整跑通。

那道出处检查写在 groundingGate.ts,1641 行、72 个测试用例,是开源那部分里最大的一个文件。数字、百分比、年份必须逐字出现在被引的原文里,对不上整张卡拒收。

然后它差点把产品干死。七月我把它收紧成「每个分句的词要按顺序出现在被引原文里」,真实的 X 长文走一遍导入流程,中文卡每张 18 到 29 条错误,英文卡 18 到 22 条,五轮实验下来,一张都没活。整个库也一样:收紧之后,模型从外部文章成功出卡只有一次;此后三周半新出的卡,全是它拿自己写过的卡再生成的,因为只有自己引自己才过得了词序检查。八月初我把这段实测原样记进文档,把检查改成只认关键词:数字、技术名词、方向、否定仍然逐字必查,叙述性的句子放行。后来做了一次对照,开着这道检查跑 8.2 分钟,一张卡都没出;关掉它,7.3 分钟出了 2 张能看的。最后不再是一律拦下:拦不住的就在卡上标一句「出处存疑」,让读的人自己决定信几分。

同一周我把库里那张概念关系图也审了一遍。271 条概念之间的连线里,有 211 条,它引的那句原文里压根没提到这两个概念。标成「扩展」的 49 条里有 42 条、标成「依赖」的 60 条里有 58 条,引的那句话里连这个意思都找不到。101 张卡里 93 张至少挂着一条这样的连线,其中 85 张标着「有据支持」。这些数字我原样写进了同一批文档,结论也是我自己写的:没编造引文,但在用真引文给没人验证过的断言背书。

规模:203 次提交,6 月 8 号到 8 月 6 号,一个人。网页、本地 API、Electron 桌面版、在 X 上一键存文章的 Chrome 插件、macOS 刘海那块的小应用、MCP 服务、手机端,加一个开源内核,六万四千行。最近十几次 CI 全绿;一次干净 clone 跑下来,30 个测试文件 377 个用例全过,六个跑通全流程的脚本也全过。58 份设计文档、118 组界面前后对比截图都在仓库里。

main 最后一次提交停在 8 月 6 号。8 月 9 号是一场黑客松的提交日,为它冲刺那四天的东西,162 个文件、一万四千多行,挂在 PR #179 上,8 月 10 号开的,到现在还没合。用户只有我一个。8 月 4 号那天的截图上,我自己那个库攒到了 99 张卡、192 个概念、419 条连接。