作为一个技术人,积累了大量的技术笔记、方案文档、踩坑记录,但需要的时候总是找不到。2026年我用 weknora + MCP 搭建了一套个人私有技术知识库 RAG 问答系统,把所有技术知识沉淀进去,AI 随时帮我检索和回答。今天把完整实战分享出来。

一、为什么需要个人 RAG 知识库

传统的知识管理方式有痛点:

  1. 关键词搜索不够:记得"好像在哪篇笔记里写过",但搜不到——因为用的词和笔记里的词不一样
  2. 知识散落在各处:本地 Markdown、Notion、微信收藏、浏览器书签、脑子里,需要的时候翻半天
  3. 无法跨文档综合:一个问题的答案可能分散在多篇笔记里,人工整合费时
  4. 知识不更新:收藏了就忘了,不会主动回顾和关联
  5. 通用 AI 不知道你的知识:ChatGPT/Claude 不知道你写过什么、踩过什么坑、项目里用了什么方案

RAG(Retrieval-Augmented Generation,检索增强生成)解决这些问题:

  • 把你的所有知识向量化,存到向量数据库
  • 提问时用语义检索找到相关知识(不是关键词匹配)
  • 把检索到的知识作为上下文传给大模型,生成基于你知识的回答
  • 回答附带来源引用,可以溯源验证

二、整体架构

MaWrekbdoUwInCwlNeaokutnAdioIeorM/naCC/PurMSsieolrr/vvuesr/pgAvPeIctor

三、weknora 搭建

weknora 是一个开源的知识库平台,内置 RAG 功能,支持 Markdown 导入、向量化、语义检索、问答,还提供 MCP Server 接口。

部署

用 Docker 一键部署:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# docker-compose.yml
version: '3.8'
services:
  weknora:
    image: weknora/weknora:latest
    ports:
      - "8080:8080"
    environment:
      - LLM_API_KEY=sk-xxx          # 大模型 API Key
      - LLM_BASE_URL=https://api.xxx.com/v1  # 大模型 API 地址
      - LLM_MODEL=claude-3-5-sonnet  # 用的模型
      - EMBEDDING_MODEL=bge-m3       # 嵌入模型
      - VECTOR_DB=milvus              # 向量数据库(内置/milvus/pgvector)
      - STORAGE_PATH=/data/weknora    # 数据存储路径
    volumes:
      - ./data:/data/weknora
    restart: unless-stopped

  # 如果用 Milvus(可选,大规模数据用)
  milvus:
    image: milvusdb/milvus:v2.4-latest
    command: ["milvus", "run", "standalone"]
    environment:
      - ETCD_ENDPOINTS=etcd:2379
      - MINIO_ADDRESS=minio:9000
    volumes:
      - ./milvus:/var/lib/milvus
    ports:
      - "19530:19530"

个人用数据量不大(几千篇文档),用 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. 知识分类

我的个人技术知识库分了这些分类:

/00000001234567_______AGPIMRPAKeDAAGKoHCArI8BeIIo8PPG/sPv/s///mA/FO/pg//p///////te/s//n////t//

2. 文档处理

导入文档前要做预处理,否则检索效果差:

文档格式

  • 优先用 Markdown,结构清晰,weknora 解析效果好
  • PDF 要先转成 Markdown(用 marker 或 nougat 工具),直接导入 PDF 解析效果差
  • 网页内容用浏览器插件保存为 Markdown,不要直接存 HTML
  • 代码文件直接导入,weknora 能识别代码结构

文档清洗

  • 去掉广告、导航、页脚等无关内容
  • 统一编码(UTF-8)
  • 去掉重复内容
  • 大文档拆成小文档(按章节拆)

元数据标注: 每篇文档加元数据,方便过滤和排序:

1
2
3
4
5
6
7
8
---
title: "Go 性能调优完整指南"
date: 2025-12-01
tags: ["Go", "性能调优", "pprof"]
category: "后端技术/Go"
author: "Allen"
source: "个人博客"
---

3. 分块策略

RAG 的关键是分块(Chunking),分块大小和策略直接影响检索效果。

常见分块策略

策略说明适用场景
固定长度分块按固定字符数分块(如 500 字符)通用,简单
语义分块按段落/章节分块,保持语义完整文章、文档
递归分块先按大结构分,再递归细分长文档、书籍
代码分块按函数/类分块代码文件

推荐配置

  • 分块大小:500-1000 token(中文约 300-600 字)
  • 重叠:50-100 token(相邻块有重叠,避免上下文断裂)
  • 按 Markdown 标题分块(#、##、###),保持章节完整

weknora 内置了智能分块,会根据文档类型自动选择分块策略,不用手动调。

五、检索优化

RAG 的效果 80% 取决于检索质量,检索不到相关内容,大模型再强也没用。

1. 混合检索

不要只用语义检索,用关键词检索 + 语义检索混合

  • 关键词检索(BM25):精确匹配术语、专有名词、代码标识符
  • 语义检索(向量):理解语义,匹配同义表达
  • 混合检索:两者结果加权融合,召回率最高

weknora 默认用混合检索,效果比单纯向量检索好很多。

2. 检索重排序(Rerank)

检索到 Top K 后,用 Rerank 模型重新排序,把最相关的排前面:

TbogpTeo-5pre2r0ankerToTpop2020Top5

Rerank 能显著提升准确率,特别是检索结果多的时候。推荐用 bge-reranker-v2-m3,中英文都好。

3. 查询优化

用户的提问可能不适合直接检索,要做查询优化:

查询改写

  • 口语化提问 → 标准化查询(“这个东西怎么弄” → “Go 微服务分布式事务解决方案”)
  • 多问题拆分 → 拆成多个子查询分别检索
  • 上下文补全 → 结合对话历史补全查询

查询扩展

  • 用大模型生成相关关键词,扩展查询
  • 例如"性能调优" → “pprof、trace、火焰图、CPU分析、内存分析”

weknora 内置了查询优化,会自动改写和扩展查询。

4. 元数据过滤

检索时可以按元数据过滤,缩小范围:

catGeogory="/Go"ANDdate>"2025-01-01"

元数据过滤能大幅提升检索精度,避免不相关的文档干扰。

六、MCP 接入

weknora 提供了 MCP Server 接口,可以把知识库接入 Claude、Cursor 等 AI 工具,编程时直接查询个人知识库。

配置 MCP

Claude Desktop 配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// ~/.claude.json
{
  "mcpServers": {
    "personal-kb": {
      "url": "https://kb.yourdomain.com/mcp",
      "headers": {
        "X-API-Key": "your-api-key"
      }
    }
  }
}

Cursor 配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// .cursor/mcp.json
{
  "mcpServers": {
    "personal-kb": {
      "url": "https://kb.yourdomain.com/mcp",
      "headers": {
        "X-API-Key": "your-api-key"
      }
    }
  }
}

使用方式

接入后,在 Claude/Cursor 里可以直接查询知识库:

@@@pppeeerrrsssooonnnaaalll---kkkbbbGoTCCSaga

AI 会调用 weknora 的 MCP 工具检索知识库,然后基于检索结果回答。

MCP 工具列表

weknora MCP Server 提供这些工具:

工具说明
search语义检索知识库,返回相关文档片段
query基于知识库问答,返回答案和来源
get_document获取完整文档内容
list_documents列出知识库中的文档(支持分类过滤)
create_document创建新文档(写入知识库)
update_document更新已有文档
delete_document删除文档

编程时最常用的是 searchquery,查方案、查踩坑、查最佳实践。

七、效果评估

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. 编程时查方案

@peArIsonal-kb

不用翻遍所有笔记,AI 直接帮你找到相关内容。

2. 写技术方案时参考

@peArIsonal-kbElasticsearch

3. 踩坑快速定位

@peArIsonal-kbK8sPodOOMKilled

4. 知识回顾和关联

@peArIsonal-kMbCPMCP

5. 面试准备

@peArIsonal-kbGo

九、踩坑经验

  1. 文档质量决定一切:垃圾进垃圾出,文档写得乱、内容重复、格式不统一,检索效果就差。花时间整理文档,比调参数效果好
  2. 分块太大或太小:分块太大(2000+ token),检索到的内容不精准;分块太小(100 token),上下文不完整。500-1000 token 是甜点区
  3. 只用语义检索:纯向量检索对专有名词、代码标识符、精确匹配效果差。一定要用混合检索(关键词+向量)
  4. 不做 Rerank:检索 Top 20 直接传给大模型,不相关的内容会干扰答案。加 Rerank 重排序,取 Top 3-5,效果提升明显
  5. 嵌入模型选错:用英文嵌入模型处理中文文档,效果差。中文文档要用中文嵌入模型(bge-m3、bge-large-zh)
  6. 不更新知识库:知识库建好了就不管了,内容过时。定期导入新文档,清理过时内容,保持知识库新鲜
  7. 盲目相信 AI 回答:RAG 也会幻觉,特别是知识库没有相关内容时。一定要看引用来源,验证答案
  8. 数据安全:个人知识库可能包含敏感信息(公司内部方案、客户数据),不要用公网 SaaS,自托管 weknora,数据自己掌控

十、总结

个人 RAG 知识库搭建核心:

  1. weknora 是好选择:开源、内置 RAG、支持 MCP、部署简单,个人/小团队够用
  2. 文档质量是基础:垃圾进垃圾出,花时间整理文档(Markdown、清洗、元数据),比调参数效果好
  3. 分块策略是关键:500-1000 token + 重叠 + 按标题分块,保持语义完整
  4. 混合检索 + Rerank 是标配:关键词+向量混合检索召回,Rerank 精排,效果比纯向量检索好很多
  5. MCP 接入是放大器:把知识库接入 Claude/Cursor,编程时直接查询,知识真正用起来
  6. 效果评估不能少:构建测试集,定期评估召回率、精确率、答案准确率,用数据指导优化
  7. 持续维护是本质:知识库不是建完就完事,定期导入新内容、清理过时内容、优化检索策略
  8. 数据安全要重视:敏感知识自托管,不要用公网 SaaS,数据自己掌控

个人知识管理的终极形态不是"收藏更多",而是"需要时能快速找到并应用"。RAG 知识库让你的知识真正"活"起来——AI 帮你检索、综合、回答,知识不再是躺在笔记里的死文字,而是随时能调用的能力。投入时间搭建和维护,长期来看回报率极高。