ORANGE BOOK · LOCAL AI

第十一章 搭建你的本地知识库——RAG 从入门到能用

11.1 一个真实场景:那个把 8 年笔记喂给 AI 的产品经理

老吴是一家互联网公司 11 年的资深产品经理。他用 Notion 写笔记 8 年,积累了 4200+ 篇——产品复盘、用户访谈、功能讨论、行业研究、读书心得,全在里面。

问题是:他自己也找不到了

每次想起"那个客户访谈里说过的那段话",他要翻 30 分钟才能找到。每次想引用"我半年前对某个功能的判断",他要靠记忆找关键词搜索。

2025 年底他装了 AnythingLLM + Qwen 3 14B + bge-m3 嵌入模型,把 4200 篇笔记一次导入本地知识库。

第一次问的问题:

我在 2023 年 Q3 关于"留存率"提过一个核心观点,记得是和"30 天流失节点"有关,但找不到原文了。

知识库 4 秒后给了他答案——把那段笔记直接引用了出来,并附上文件路径。

他后来跟本书作者说:

"本地 RAG 帮我找回了过去的自己。这件事的价值无法用钱衡量。"

11.2 一句话讲完 RAG

RAG = 让 AI 在回答前,先去你的资料库里"翻一下书",再回答。

英文 RAG 的全称是 Retrieval-Augmented Generation(检索增强生成)。

拆开三个词:

  • Retrieval(检索):先去找相关的资料
  • Augmented(增强):把找到的资料喂给 AI
  • Generation(生成):AI 基于这些资料给你答案

简单说:它让 AI 不再只靠"它脑子里学过的",而是基于"你给它的资料"回答

为什么需要 RAG

普通 AI 对话有三个先天问题:

  1. 不懂你的私事:它只学过公开数据,不知道你公司的 SOP、你家娃的成绩、你客户的合同
  2. 会一本正经胡说八道:碰到不知道的事,它倾向于编造
  3. 知识有截止日期:它学的是某个时间点的数据,不知道你今天写的东西

RAG 一次解决这三件事——它让 AI 基于"你提供的最新资料"回答。

11.3 RAG 的内部工作流(不懂技术也要看一眼)

下面是 RAG 在你电脑里实际发生的事:

[一次性的"准备"步骤]
你的所有文档 (PDF/Word/MD/TXT)
        ↓
切成小块 (chunk, 每块 500–1500 字)
        ↓
用"嵌入模型"把每块变成向量 (一串数字)
        ↓
存到本地"向量数据库"

[每次对话的实时步骤]
你的问题
        ↓
也用"嵌入模型"变成向量
        ↓
在向量数据库里找"最像你问题的"几块文档
        ↓
把这几块文档 + 你的问题 → 一起塞给 AI
        ↓
AI 基于这些文档回答你

这一切都在你电脑里发生——没有任何资料外泄。

三个关键名词速记

名词 大白话
Chunk(块) 把长文档切成的小段(通常 500–1500 字一块)
Embedding(嵌入) 把文字变成一串数字,让计算机能比较"语义相似度"
Vector DB(向量数据库) 存这些数字的"小图书馆",能秒级找到相似内容

11.4 5 步搭起你的第一个本地知识库

我们以 Cherry Studio + Ollama 为例(最适合中文小白)。

第 1 步:准备本地基础设施

确保你已经装好:

  • Ollama(参考第四章)
  • 一个聊天模型(推荐 qwen3:8b
  • Cherry Studio(推荐)

如果还没装,回第四章补完再来。

第 2 步:下载嵌入模型

知识库需要一个专门把文字变成向量的小模型,叫"嵌入模型"(Embedding Model)。

下载推荐的中文嵌入模型 bge-m3

ollama pull bge-m3

文件约 2.3 GB。下完后用 ollama list 应该能看到它。

为什么用 bge-m3:北京智源出品,2024 年最强的中文嵌入模型之一,多语言支持,长文本好。

第 3 步:在 Cherry Studio 里配置嵌入模型

  1. 打开 Cherry Studio → "模型设置"
  2. 点 "Ollama" → 已经能看到本地模型列表
  3. 在 "嵌入模型" 下拉里选 bge-m3
  4. 保存

第 4 步:创建第一个知识库

  1. Cherry Studio 左侧栏 → "知识库" 图标
  2. 点 "+ 新建知识库"
  3. 输入名称:比如"我的笔记"
  4. 选嵌入模型:bge-m3
  5. 点击 "确认"

第 5 步:导入文件,等向量化完成

  1. 进入新建的知识库
  2. 点 "+ 添加",选择:
    • 文件:单个 / 多个 PDF、Word、MD、TXT
    • 文件夹:整个目录递归导入
    • 网页:粘贴 URL,自动抓取内容
  3. 等待右侧显示绿色对勾——向量化完成

首次向量化需要时间。100 个 PDF 大约 5–10 分钟。期间 Ollama 会跑 bge-m3 满负荷工作。

第 6 步:开始提问

  1. 新建对话
  2. 在对话工具栏点 "知识库" 图标
  3. 选刚才创建的知识库
  4. 提问

AI 的回答下方会显示引用的来源(哪个文件、哪个段落)——这一点至关重要,让你能验证它没胡说。

11.5 AnythingLLM 路线(替代选择)

如果你不喜欢 Cherry Studio,AnythingLLM 是另一个非常好的选择。

优势

  • 工作区概念清晰:每个工作区独立存档、独立模型设置
  • 多用户支持:适合团队
  • 完全开源(MIT),可商用
  • Mac/Windows/Linux 桌面 App + Docker 自托管

5 步上手

  1. 到 https://anythingllm.com 下载并安装桌面版
  2. 第一次启动 → 选 "LLM Provider" 为 Ollama,模型选 qwen3:8b
  3. 选 "Embedding Model" → 用内置的或选 Ollama 的 bge-m3
  4. 创建工作区:"+ New Workspace" → 命名
  5. 在工作区里 → "Upload Documents" → 拖拽文件 → 等向量化

之后在工作区里聊天,所有对话都自动引用工作区文件。

11.6 4 个真实样例

下面用 4 个常见场景演示如何配置和使用。

样例 1:个人笔记(Obsidian / Notion 导出)

适用人:知识工作者、读书人、写作者、研究者

设置

  • 知识库:单一大型,导入全部笔记
  • 模型:qwen3:8bqwen3:14b
  • 嵌入:bge-m3
  • 块大小:800 字符

典型问题

我过去 2 年关于"管理"主题写过哪些核心观点?请按时间排序,每条附原文出处。
找出我所有读书笔记里,反复出现 3 次以上的"概念"。
我去年某个时候写过一篇关于"远程工作"的反思,找出来,并总结主要观点。

样例 2:法律合同库

适用人:律师、法务、合规

设置

  • 多个知识库分类(如"租赁合同"、"NDA"、"采购合同"、"劳动合同")
  • 模型:qwen3:14bqwen3:32b(长合同需要更强能力)
  • 嵌入:bge-m3
  • 块大小:1500 字符(合同条款长,避免上下文断裂)

典型问题

我们公司过去签的所有 NDA 中,"违约金"最高的是哪一份?金额是多少?

请引用具体合同名和原文条款。
对比"NDA-2024-A"和"NDA-2024-B"两份合同的"保密期限"条款,找出关键差异。
我们的标准 NDA 模板有没有覆盖"AI 训练数据使用"这一条款?如果没有,请基于行业惯例草拟一段加进去。

样例 3:公司 SOP 知识库

适用人:小公司老板、HR、运营负责人

设置

  • 知识库:单一全局,所有 SOP / 流程文档 / FAQ
  • 模型:qwen3:8b
  • 嵌入:bge-m3
  • 块大小:500 字符(SOP 通常一条一条短,块小更精准)

典型问题(用本地局域网部署后给员工用):

新员工入职第一天该做什么?
请假流程是怎样的?需要哪些审批?
客户提了一个 P0 bug,我应该按哪个流程处理?

额外玩法:把这个工作区暴露在公司局域网,让全公司员工都能问——完全替代企业内部 wiki + 客服

样例 4:课程资料库(学生 / 教师 / 培训师)

适用人:考研党、考证党、培训师、家长

设置

  • 知识库分类(如"高数"、"线代"、"概率论"),每门课一个
  • 模型:qwen3:8bphi-4:14b(理科推理强)
  • 嵌入:bge-m3
  • 块大小:1000 字符

典型问题

"中心极限定理"在我们教材的第几章讲过?请引用核心定义。
出 5 道关于"傅里叶变换"的练习题,难度从易到难。
我对"贝叶斯公式"的应用还不太熟。请基于我们教材的例题风格,给我一道详细解题示范。

11.7 防幻觉的 3 个技巧

RAG 的最大坑:AI 把"知识库里没有的内容"也编造进答案

下面 3 个技巧大幅降低幻觉率:

技巧 1:在系统提示词里加"严格引用"约束

你是一个严格的知识库助手。回答时必须遵守:

1. 只基于知识库里实际找到的内容回答
2. 每个论点后面必须标注 [来源: 文件名]
3. 如果知识库里没有相关内容,你必须明确说"未找到相关资料",绝不编造
4. 如果只找到部分相关,明确说"找到的资料只能回答 XX 部分,YY 部分未找到"
5. 不要把你"模型自带知识"和"知识库内容"混在一起。如果用了模型常识,必须标注 [模型常识]

【绝对不要做的事】
- 用"根据相关研究表明"、"通常认为"这种模糊表达
- 用模型自己学过的知识冒充知识库内容
- 在没有引用的情况下给出具体数字、人名、日期

技巧 2:调整检索数量

Cherry Studio / AnythingLLM 都允许调整"每次检索回多少块":

  • 太少(1–2 块):信息不够,AI 容易脑补
  • 太多(10+ 块):噪声大,AI 容易抓错点
  • 推荐:5–8 块:平衡

技巧 3:使用 ReRank(二次重排)

Cherry Studio 0.9+ 起支持 ReRank 模型——在检索回 10 块后,用一个小模型再筛出最相关的 3 块给主 LLM。

启用方法:

  1. 模型设置 → ReRank 模型
  2. bge-reranker-v2-m3(同样 ollama pull 下载)
  3. 配置:检索 10 → ReRank 后保留 5

质量提升非常明显——尤其对中文文档。

11.8 块大小(Chunk Size)的科学

新人最常忽略的细节,但对效果影响巨大

不同块大小的特点

块大小 优点 缺点 适合
200 字符 检索精准 上下文太短,常常断裂 FAQ、SOP
500 字符 平衡 一般 大多数场景默认
1000 字符 上下文连贯 检索精准度下降 笔记、文章
1500–2000 字符 长段连贯 多个话题混在一起 合同、论文

重叠(Overlap)

为防止"切割时把一段话切两半",相邻块之间通常重叠 10–20%。Cherry Studio 默认开启。

实战建议

  • 不知道选啥:用 500 字符 + 50 字符重叠
  • 法律 / 学术 / 长文档:1500 字符 + 150 字符重叠
  • FAQ / 短卡片:300 字符 + 30 字符重叠

11.9 多模态 RAG:图片也能进知识库

最新(2026 年)的本地 RAG 工具开始支持图片向量化

  • AnythingLLM + 视觉嵌入模型:可以"以图搜图"
  • Cherry Studio 0.9+:支持图片 OCR 后入库

用法

  • 把扫描版老笔记(图片)入库 → 自动 OCR + 向量化
  • 把产品截图、设计稿入库 → 用文字描述去找图

11.10 知识库的 5 大常见坑

坑 1:把垃圾扔进去 → 垃圾出来

把所有文件不加挑选地塞进知识库,AI 会被噪声干扰。 解法:先整理,只导入"高质量、有保留价值"的文档。

坑 2:不更新 → 知识过时

知识库里的合同改了,但你忘了重新导入新版。AI 还在引用旧版。 解法:定期"清空 + 重导",或建立"按月迭代"的机制。

坑 3:嵌入模型选错 → 中文检索差

用了英文专精的嵌入模型(如 nomic-embed-text)做中文检索,准确率只有 30%。 解法:中文场景必用 bge-m3bge-large-zh-v1.5

坑 4:上下文长度不够 → 检索回的内容塞不下

你检索了 8 块,每块 1500 字 = 1.2 万字 = 1.5 万 token。但你的模型上下文只有 4K → 截断,AI 看不到关键信息。 解法:把模型 num_ctx 调到 16K 或 32K(注意内存)。

坑 5:没看引用就当真

AI 引用错了你也不知道,照样信。 解法:永远扫一眼"引用源",重要决策必须点开原文核对。

11.11 高级玩法预告

下面这些是"知识库 + Agent"的进阶玩法,第十三章会讲:

  • 每周自动同步:让 Agent 每周一凌晨把你 Notion / Obsidian / 公司 OneDrive 自动同步到本地知识库
  • 多模态联合:知识库里同时有文字 + 图片 + 录音转写
  • 混合检索:本地知识库 + 联网搜索结果一起喂给 AI
  • 自动归类:Agent 自动把新文件分到对应知识库(如发票自动进"财务",合同自动进"法务")

11.12 隐私与安全(第十六章会详细讲)

短版本

  • 本地 RAG 数据完全不出本机 ✓
  • 但要注意:
    • 你装的"插件"可能上传(看清开关)
    • Cherry Studio / AnythingLLM 默认不上传,但自带的"使用情况统计"开关在设置里关一下
    • Ollama 本身从不上传

11.13 本章小练习

练习 1:搭你的第一个知识库

按 11.4 节,用 Cherry Studio 把你最近一年的笔记(Obsidian、备忘录、Notion 导出都行)导入。 问 1 个你"知道答案在里面,但找不到"的问题

练习 2:尝试不同块大小

把同一批文档用 500 字符块 vs 1500 字符块各建一份知识库,问同一个问题,对比答案质量。 亲身体会"块大小对效果的影响"

练习 3:写"严格引用"系统提示词

把 11.7 技巧 1 的系统提示词存为模板。下次做"重要决策类"问答(如合同条款判断、医疗信息查询)一定挂上它。

11.14 一句话记住

本地知识库 = 把你的私人资料 + 本地 AI 的对话能力 = 一个永远不会泄密的"全知秘书"。

下一章 第十二章 · 本地多模态 看图说话听声辨意,我们让本地 AI 不只会"看字",还能"看图、听声、出图"。