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 对话有三个先天问题:
- 不懂你的私事:它只学过公开数据,不知道你公司的 SOP、你家娃的成绩、你客户的合同
- 会一本正经胡说八道:碰到不知道的事,它倾向于编造
- 知识有截止日期:它学的是某个时间点的数据,不知道你今天写的东西
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 里配置嵌入模型
- 打开 Cherry Studio → "模型设置"
- 点 "Ollama" → 已经能看到本地模型列表
- 在 "嵌入模型" 下拉里选
bge-m3 - 保存
第 4 步:创建第一个知识库
- Cherry Studio 左侧栏 → "知识库" 图标
- 点 "+ 新建知识库"
- 输入名称:比如"我的笔记"
- 选嵌入模型:
bge-m3 - 点击 "确认"
第 5 步:导入文件,等向量化完成
- 进入新建的知识库
- 点 "+ 添加",选择:
- 文件:单个 / 多个 PDF、Word、MD、TXT
- 文件夹:整个目录递归导入
- 网页:粘贴 URL,自动抓取内容
- 等待右侧显示绿色对勾——向量化完成
首次向量化需要时间。100 个 PDF 大约 5–10 分钟。期间 Ollama 会跑 bge-m3 满负荷工作。
第 6 步:开始提问
- 新建对话
- 在对话工具栏点 "知识库" 图标
- 选刚才创建的知识库
- 提问
AI 的回答下方会显示引用的来源(哪个文件、哪个段落)——这一点至关重要,让你能验证它没胡说。
11.5 AnythingLLM 路线(替代选择)
如果你不喜欢 Cherry Studio,AnythingLLM 是另一个非常好的选择。
优势
- 工作区概念清晰:每个工作区独立存档、独立模型设置
- 多用户支持:适合团队
- 完全开源(MIT),可商用
- Mac/Windows/Linux 桌面 App + Docker 自托管
5 步上手
- 到 https://anythingllm.com 下载并安装桌面版
- 第一次启动 → 选 "LLM Provider" 为 Ollama,模型选
qwen3:8b - 选 "Embedding Model" → 用内置的或选 Ollama 的
bge-m3 - 创建工作区:"+ New Workspace" → 命名
- 在工作区里 → "Upload Documents" → 拖拽文件 → 等向量化
之后在工作区里聊天,所有对话都自动引用工作区文件。
11.6 4 个真实样例
下面用 4 个常见场景演示如何配置和使用。
样例 1:个人笔记(Obsidian / Notion 导出)
适用人:知识工作者、读书人、写作者、研究者
设置:
- 知识库:单一大型,导入全部笔记
- 模型:
qwen3:8b或qwen3:14b - 嵌入:
bge-m3 - 块大小:800 字符
典型问题:
我过去 2 年关于"管理"主题写过哪些核心观点?请按时间排序,每条附原文出处。
找出我所有读书笔记里,反复出现 3 次以上的"概念"。
我去年某个时候写过一篇关于"远程工作"的反思,找出来,并总结主要观点。
样例 2:法律合同库
适用人:律师、法务、合规
设置:
- 多个知识库分类(如"租赁合同"、"NDA"、"采购合同"、"劳动合同")
- 模型:
qwen3:14b或qwen3: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:8b或phi-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。
启用方法:
- 模型设置 → ReRank 模型
- 选
bge-reranker-v2-m3(同样 ollama pull 下载) - 配置:检索 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-m3 或 bge-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 不只会"看字",还能"看图、听声、出图"。