作为一个技术人,积累了大量的技术笔记、方案文档、踩坑记录,但需要的时候总是找不到。2026年我用 weknora + MCP 搭建了一套个人私有技术知识库 RAG 问答系统,把所有技术知识沉淀进去,AI 随时帮我检索和回答。今天把完整实战分享出来。
一、为什么需要个人 RAG 知识库
传统的知识管理方式有痛点:
- 关键词搜索不够:记得"好像在哪篇笔记里写过",但搜不到——因为用的词和笔记里的词不一样
- 知识散落在各处:本地 Markdown、Notion、微信收藏、浏览器书签、脑子里,需要的时候翻半天
- 无法跨文档综合:一个问题的答案可能分散在多篇笔记里,人工整合费时
- 知识不更新:收藏了就忘了,不会主动回顾和关联
- 通用 AI 不知道你的知识:ChatGPT/Claude 不知道你写过什么、踩过什么坑、项目里用了什么方案
RAG(Retrieval-Augmented Generation,检索增强生成)解决这些问题:
- 把你的所有知识向量化,存到向量数据库
- 提问时用语义检索找到相关知识(不是关键词匹配)
- 把检索到的知识作为上下文传给大模型,生成基于你知识的回答
- 回答附带来源引用,可以溯源验证
二、整体架构
三、weknora 搭建
weknora 是一个开源的知识库平台,内置 RAG 功能,支持 Markdown 导入、向量化、语义检索、问答,还提供 MCP Server 接口。
部署
用 Docker 一键部署:
| |
个人用数据量不大(几千篇文档),用 weknora 内置的向量数据库就够了,不用单独部署 Milvus。
模型选择
嵌入模型(Embedding):
- bge-m3:中英文都好,支持长文本,推荐
- text-embedding-3-large:OpenAI 的,效果好但要花钱
- bge-large-zh-v1.5:中文专用,效果好
- m3e-base:中文轻量,速度快
个人知识库推荐 bge-m3,中英文混合效果好,开源免费,可以本地部署。
大模型(LLM):
- Claude 3.5 Sonnet:长上下文,回答质量高,推荐
- GPT-4o:通用能力强
- Qwen2.5-72B:国产,中文好,成本低
- 本地模型:Ollama 部署 Qwen2.5,数据完全本地
四、知识库内容建设
1. 知识分类
我的个人技术知识库分了这些分类:
2. 文档处理
导入文档前要做预处理,否则检索效果差:
文档格式:
- 优先用 Markdown,结构清晰,weknora 解析效果好
- PDF 要先转成 Markdown(用 marker 或 nougat 工具),直接导入 PDF 解析效果差
- 网页内容用浏览器插件保存为 Markdown,不要直接存 HTML
- 代码文件直接导入,weknora 能识别代码结构
文档清洗:
- 去掉广告、导航、页脚等无关内容
- 统一编码(UTF-8)
- 去掉重复内容
- 大文档拆成小文档(按章节拆)
元数据标注: 每篇文档加元数据,方便过滤和排序:
| |
3. 分块策略
RAG 的关键是分块(Chunking),分块大小和策略直接影响检索效果。
常见分块策略:
| 策略 | 说明 | 适用场景 |
|---|---|---|
| 固定长度分块 | 按固定字符数分块(如 500 字符) | 通用,简单 |
| 语义分块 | 按段落/章节分块,保持语义完整 | 文章、文档 |
| 递归分块 | 先按大结构分,再递归细分 | 长文档、书籍 |
| 代码分块 | 按函数/类分块 | 代码文件 |
推荐配置:
- 分块大小:500-1000 token(中文约 300-600 字)
- 重叠:50-100 token(相邻块有重叠,避免上下文断裂)
- 按 Markdown 标题分块(#、##、###),保持章节完整
weknora 内置了智能分块,会根据文档类型自动选择分块策略,不用手动调。
五、检索优化
RAG 的效果 80% 取决于检索质量,检索不到相关内容,大模型再强也没用。
1. 混合检索
不要只用语义检索,用关键词检索 + 语义检索混合:
- 关键词检索(BM25):精确匹配术语、专有名词、代码标识符
- 语义检索(向量):理解语义,匹配同义表达
- 混合检索:两者结果加权融合,召回率最高
weknora 默认用混合检索,效果比单纯向量检索好很多。
2. 检索重排序(Rerank)
检索到 Top K 后,用 Rerank 模型重新排序,把最相关的排前面:
Rerank 能显著提升准确率,特别是检索结果多的时候。推荐用 bge-reranker-v2-m3,中英文都好。
3. 查询优化
用户的提问可能不适合直接检索,要做查询优化:
查询改写:
- 口语化提问 → 标准化查询(“这个东西怎么弄” → “Go 微服务分布式事务解决方案”)
- 多问题拆分 → 拆成多个子查询分别检索
- 上下文补全 → 结合对话历史补全查询
查询扩展:
- 用大模型生成相关关键词,扩展查询
- 例如"性能调优" → “pprof、trace、火焰图、CPU分析、内存分析”
weknora 内置了查询优化,会自动改写和扩展查询。
4. 元数据过滤
检索时可以按元数据过滤,缩小范围:
元数据过滤能大幅提升检索精度,避免不相关的文档干扰。
六、MCP 接入
weknora 提供了 MCP Server 接口,可以把知识库接入 Claude、Cursor 等 AI 工具,编程时直接查询个人知识库。
配置 MCP
Claude Desktop 配置:
| |
Cursor 配置:
| |
使用方式
接入后,在 Claude/Cursor 里可以直接查询知识库:
AI 会调用 weknora 的 MCP 工具检索知识库,然后基于检索结果回答。
MCP 工具列表
weknora MCP Server 提供这些工具:
| 工具 | 说明 |
|---|---|
search | 语义检索知识库,返回相关文档片段 |
query | 基于知识库问答,返回答案和来源 |
get_document | 获取完整文档内容 |
list_documents | 列出知识库中的文档(支持分类过滤) |
create_document | 创建新文档(写入知识库) |
update_document | 更新已有文档 |
delete_document | 删除文档 |
编程时最常用的是 search 和 query,查方案、查踩坑、查最佳实践。
七、效果评估
RAG 系统效果怎么评估?不能只靠感觉。
1. 评估指标
| 指标 | 说明 | 目标 |
|---|---|---|
| 召回率(Recall) | 相关文档被检索到的比例 | ≥ 90% |
| 精确率(Precision) | 检索结果中相关文档的比例 | ≥ 80% |
| 答案准确率 | 生成的答案正确且基于知识库 | ≥ 85% |
| 引用准确率 | 答案引用的来源确实支持答案 | ≥ 90% |
| 响应时间 | 从提问到回答的时间 | ≤ 5秒 |
| 无答案率 | 知识库没有相关内容时正确说"不知道" | ≥ 95% |
2. 评估方法
构建测试集:
- 准备 50-100 个问题,覆盖不同分类和难度
- 每个问题标注标准答案和相关文档
- 定期跑测试集,评估效果
人工评估:
- 每周抽查 10 个问答,人工评分(1-5分)
- 记录 bad case,分析原因,优化
A/B 测试:
- 调整分块策略/检索参数/模型,对比效果
- 每次只改一个变量,知道哪个改动有效
3. 我们的效果
| 指标 | 初期 | 优化后 |
|---|---|---|
| 召回率 | 70% | 92% |
| 精确率 | 60% | 85% |
| 答案准确率 | 70% | 88% |
| 响应时间 | 8秒 | 3秒 |
主要优化:混合检索 + Rerank + 查询优化 + 分块策略调整,效果提升明显。
八、使用场景
1. 编程时查方案
不用翻遍所有笔记,AI 直接帮你找到相关内容。
2. 写技术方案时参考
3. 踩坑快速定位
4. 知识回顾和关联
5. 面试准备
九、踩坑经验
- 文档质量决定一切:垃圾进垃圾出,文档写得乱、内容重复、格式不统一,检索效果就差。花时间整理文档,比调参数效果好
- 分块太大或太小:分块太大(2000+ token),检索到的内容不精准;分块太小(100 token),上下文不完整。500-1000 token 是甜点区
- 只用语义检索:纯向量检索对专有名词、代码标识符、精确匹配效果差。一定要用混合检索(关键词+向量)
- 不做 Rerank:检索 Top 20 直接传给大模型,不相关的内容会干扰答案。加 Rerank 重排序,取 Top 3-5,效果提升明显
- 嵌入模型选错:用英文嵌入模型处理中文文档,效果差。中文文档要用中文嵌入模型(bge-m3、bge-large-zh)
- 不更新知识库:知识库建好了就不管了,内容过时。定期导入新文档,清理过时内容,保持知识库新鲜
- 盲目相信 AI 回答:RAG 也会幻觉,特别是知识库没有相关内容时。一定要看引用来源,验证答案
- 数据安全:个人知识库可能包含敏感信息(公司内部方案、客户数据),不要用公网 SaaS,自托管 weknora,数据自己掌控
十、总结
个人 RAG 知识库搭建核心:
- weknora 是好选择:开源、内置 RAG、支持 MCP、部署简单,个人/小团队够用
- 文档质量是基础:垃圾进垃圾出,花时间整理文档(Markdown、清洗、元数据),比调参数效果好
- 分块策略是关键:500-1000 token + 重叠 + 按标题分块,保持语义完整
- 混合检索 + Rerank 是标配:关键词+向量混合检索召回,Rerank 精排,效果比纯向量检索好很多
- MCP 接入是放大器:把知识库接入 Claude/Cursor,编程时直接查询,知识真正用起来
- 效果评估不能少:构建测试集,定期评估召回率、精确率、答案准确率,用数据指导优化
- 持续维护是本质:知识库不是建完就完事,定期导入新内容、清理过时内容、优化检索策略
- 数据安全要重视:敏感知识自托管,不要用公网 SaaS,数据自己掌控
个人知识管理的终极形态不是"收藏更多",而是"需要时能快速找到并应用"。RAG 知识库让你的知识真正"活"起来——AI 帮你检索、综合、回答,知识不再是躺在笔记里的死文字,而是随时能调用的能力。投入时间搭建和维护,长期来看回报率极高。