实测对比:用思源笔记当 AI 知识库 vs 传统 RAG,结果让我意外

2026-07-22 20:28:22 0点赞 1收藏 0评论

我用同一个 AI 助手,分别挂载了思源笔记和传统 RAG 向量库作为知识源,从准确率、响应速度、上下文完整性等多个维度做了实测对比。结论可能和你想的不一样。


写在前面

最近在折腾 AI 个人知识库的方案。需求很简单:让 AI 能读懂我的笔记,然后基于我的笔记回答问题

市面上主流的方案是传统的 RAG(检索增强生成)路线:把文档切块、嵌入向量、存进向量数据库,查询时做语义检索,再喂给大模型生成回答。

但作为一个用了好几年思源笔记的人,我一直在想:能不能直接让 AI 读我的思源笔记?

于是我做了一个实验——用同一个 AI 助手,分别挂载了两种知识源,跑了相同的查询任务,把结果放在一起对比。


先说结论

实测对比:用思源笔记当 AI 知识库 vs 传统 RAG,结果让我意外

一句话总结:思源笔记方案准确率碾压,但速度慢一截;传统 RAG 速度快但容易"答非所问"。

下面展开说说。


什么是传统 RAG?它的问题在哪

传统 RAG 的流程是这样的:

原始文档 → 切块(chunking) → 嵌入(embedding) → 向量数据库 查询时:问题 → 向量检索 → 拼接片段 → 大模型生成回答

看起来很完美,实际用起来有几个痛点:

1. 分块切断上下文

文档被切成 500-1000 字的片段后,很多关键信息被拦腰截断。比如一篇笔记里"系统建模"的完整流程被切成两半,AI 只拿到了第三步和第四步,回答自然不完整。

2. 语义漂移

向量检索是基于"语义相似度"的,但它经常召回语义相近但内容不相关的片段。比如你搜"成功学",它可能给你返回一堆"心理学"的内容——语义确实近,但完全不是你要的。

3. 格式全部丢失

你笔记里的 Mermaid 流程图、Markdown 表格、层级标题、代码块……切块之后全部变成纯文本碎片。那些精心整理的结构化信息,在向量检索面前一文不值。

4. 嵌入模型的中文能力参差不齐

很多嵌入模型是英文优先的,中文语义理解不够精准,导致检索质量打折扣。


思源笔记方案是怎么做的

思路很直接:利用思源笔记的 API,让 AI 直接查询和读取笔记内容

具体流程:

用户提问 → AI 生成 SQL/API 查询 → 思源笔记返回完整文档块 → AI 基于完整内容回答

关键技术点:

  • 通过 fullTextSearchBlock 做全文搜索,快速定位相关文档

  • 通过 SQL 查询(SELECT ... WHERE root_id = '...')按文档 ID 聚合所有块,拿到完整文档

  • 利用思源的文档树结构,保留"笔记本 → 文档 → 子文档"的层级关系

  • Markdown 格式直接返回,表格、代码、引用块都完好


实测对比:同一个问题,两种知识源

我用了一个真实的查询案例来对比。我的思源笔记里有一个「modelica系统建模仿真课程」的笔记本,里面有接口定义、组件原理、动力学方程、流量方程等完整的课程笔记。

测试问题:"给出一个完整的 Modelica 建模案例"

传统 RAG 的回答:

  • 返回了 3-4 个文本片段

  • 每个片段大约 500 字

  • 动力学方程被切块切断,只看到一半

  • 表格变成了乱序的纯文本

  • 缺少完整的模型代码

思源笔记的回答:

  • AI 通过 SQL 查询拿到了完整的溢流阀建模文档

  • 返回了包含接口定义、组件参数表、完整方程推导、完整 Modelica 代码的完整案例

  • 表格格式完好,代码块高亮正确

  • 甚至连文档里的层级结构都保留了

差距非常明显。


准确率对比:为什么思源笔记接近 100%

思源笔记方案准确率高的核心原因是:你检索的是你自己整理过的、结构化的笔记

具体来说:

  1. 内容是你认可的 — 笔记是你亲手写的或者筛选过的,不存在"脏数据"

  2. 结构是完整的 — 文档有标题层级、标签、引用关系,AI 可以利用这些结构信息

  3. 不存在分块损失 — 通过 root_id 聚合拿到的是完整文档,不是碎片

  4. 格式是保留的 — Markdown 原样返回,表格、代码、公式都不变形

传统 RAG 的准确率问题主要来自:

  • 向量检索的语义漂移

  • 分块导致的上下文丢失

  • 嵌入模型对中文的理解偏差

  • 无法利用文档的结构信息


响应速度对比:思源笔记的短板

坦率说,思源笔记方案在速度上确实不如传统 RAG

我的实测数据:

实测对比:用思源笔记当 AI 知识库 vs 传统 RAG,结果让我意外

慢在哪?

  1. 需要多次查询 — 搜到关键词后,还要按 root_id 聚合完整文档,可能要来回 5-7 次 API 调用

  2. 没有预计算索引 — 每次都是实时查库,不像向量数据库有预建的索引

  3. 分页限制 — 大文档需要 LIMIT/OFFSET 分页读取,多次往返

  4. 关键词匹配而非语义检索 — 全文搜索是精确匹配,不像向量检索能一步到位


各自适合什么场景

思源笔记方案更适合:

  • 个人知识管理 — 你自己的笔记库,几百到几千篇的量级

  • 结构化内容 — 笔记有清晰的标题层级、标签、引用关系

  • 需要完整上下文 — 比如查一个完整的建模案例、一套完整的方法论

  • 格式敏感 — 内容包含表格、代码、公式、流程图

  • 信任度要求高 — 你不希望 AI 基于不确定的来源胡说八道

传统 RAG 更适合:

  • 大规模知识库 — 几万到几十万篇文档

  • 非结构化语料 — 网页、PDF、合同等原始文档

  • 需要快速响应 — 对话式应用,用户等不了几十秒

  • 多源聚合 — 需要同时检索多个来源的内容


一个更优的混合方案

用了两种方案之后,我觉得最好的方案其实是混合架构

思源笔记(知识源 + 结构化存储

定期导出 / 实时同步

向量数据库(ChromaDB / Milvus,预计算索引)

AI 查询时:向量检索(快) + 思源原文验证(准)

核心思路:

  1. 思源笔记作为"真相来源" — 你的笔记是最终的、可信的知识源

  2. 向量数据库作为"加速层" — 预计算 embedding,提供快速检索

  3. 查询时双重验证 — 先用向量检索快速定位,再回思源拿完整原文确认

这样既保留了思源笔记的准确性和完整性,又获得了向量检索的速度优势。


给想折腾的同学一些建议

  1. 先整理好你的笔记 — 不管用哪种方案,知识库的质量取决于你笔记的质量。垃圾进,垃圾出。

  2. 给笔记加标签和层级 — 思源笔记的文档树和标签系统不是摆设,结构化程度越高,AI 检索越准。

  3. 从小规模开始 — 先拿你最常用的几十篇笔记试试,别一上来就导入几百 GB 的文档。

  4. 关注思源的语义搜索 — 如果你开了 AI 功能,semanticSearchBlock 可以提供类似向量检索的效果,速度比 SQL 聚合快。

  5. 定期备份 — 知识库是你长期积累的资产,一定要做好备份。


总结

思源笔记当 AI 知识库,准确率碾压传统 RAG,上下文完整性遥遥领先,维护成本几乎为零(因为笔记你本来就在记)。代价是响应速度慢一些,查询需要多次 API 调用。

对于个人知识管理场景,如果你的笔记量在几百到几千篇,思源笔记方案的体验其实比传统 RAG 更好。它不是万能的,但在"让 AI 真正读懂你的笔记"这件事上,它做到了传统 RAG 做不到的事情。

最后说一句:最好的知识库,是你愿意持续往里写东西的那个。工具只是手段,持续积累才是核心。


本文基于实测对比撰写,测试环境为 SiYuan v3.7.x + AI Agent 框架。如有疑问欢迎评论区交流。

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
1
扫一下,分享更方便,购买更轻松