--- title: RAG向量检索系统开发文档 type: system-architecture created: 2026-05-26 updated: 2026-05-26 tags: [RAG, 向量检索, 知识库, 信息检索, AI OS基础设施]
现状诊断:知识库 4862 个 .md 文件(~64MB),关键词搜索已无法高效定位。需要引入语义检索——让 AI 理解"你想找什么",而不是仅仅匹配"你搜了什么字"。
| 指标 | 数值 | 含义 |
|---|---|---|
| Obsidian .md 文件 | 4862 个 | 中等规模个人知识库 |
| 总大小 | ~64 MB | 纯文本,非常轻量,单机可处理 |
| 平均文件大小 | 11.6 KB | 一篇文章约等于一个 chunk |
| 中位数文件大小 | 7.8 KB | 绝大多数文件本身就很小 |
| 五行人格心理学 | 345 个文件,~6.6 MB | 子知识库,密度最高 |
| 五大元素测评题 | ~300 题 | 结构化数据,需要保持完整 |
| SKILL.md | 194 个,平均 9.9 KB | 有 frontmatter + 正文的结构化文档 |
| 平均链接密度 | 7 个 wikilinks/文件 | 高度互联的知识网络 |
| 平均标签密度 | 10.3 个 tags/文件 | 丰富的元数据标签 |
| 大小分布:<1KB | 294 个(6%) | 极短笔记,可合并 |
| 大小分布:1-5KB | 1237 个(25%) | 短笔记 |
| 大小分布:5-20KB | 2646 个(54%) | 主体——适合整文件作为 chunk |
| 大小分布:20-100KB | 679 个(14%) | 长文——需要按标题切片 |
| 大小分布:>100KB | 6 个(<1%) | 超长文档——需要专门处理 |
| 你想搜 | 关键词搜索的结果 | 你真正想要的结果 |
|---|---|---|
| "木生火" | 只返回含"木"和"火"字 | 扩展为"生长滋养光明"的语义关联 |
| "亲密关系冲突" | 可能找不到 | 自动匹配场景 SC-01 + 五行建议 |
| "我经常发火" | 无匹配 | 识别为阴木/阴火->自动找到拔阴取阳方法 |
| "领导力沟通" | 只找到含"领导力"的文件 | 匹配土行人领导风格 + 相关场景 |
| 跨场景关联 | 需要手动逐篇查找 | 一次搜索返回多个场景的相关内容 |
关键词搜索天然不适合"意思匹配"的需求。你的知识库特点是:
RAG = 检索增强生成——在回答你的问题之前,AI 先去知识库里搜一遍相关的内容,然后基于搜到的"证据"来回答。
你的问题:"什么是木火共生?"
|
v
Step 1: Embedding(向量化)
把问题变成一串数字:[0.123, -0.456, 0.789, ...] (共1024个数字)
|
v
Step 2: 向量搜索
在你的4862个文件中,找"语义上最像这个问题的"前20篇
|- #1 木火共生协议.md(相似度 0.92)
|- #2 木火共生关系Skill.md(相似度 0.88)
|- #3 木行人·生长与创造.md(相似度 0.76)
|
v
Step 3: 混合增强 + Rerank(精排)+ 注入回答
每个文件被翻译成一串数字(向量),类似物品在仓库里的坐标。 "木火共生"和"木生火"的坐标很接近,"会计流程"的坐标很远。 搜索 = 找"坐标最接近"的文件——这就是"语义相似度"。
| 组件 | 选型 | 理由 | 不选 |
|---|---|---|---|
| 向量数据库 | Qdrant | 混合搜索(向量+BM25+过滤),一个.exe搞定,~200MB内存 | Milvus太重,Chroma不支持混合搜索 |
| Embedding | BGE-M3 | 1024维,中英双语,支持稠密+稀疏双向量 | text2vec英文弱,OpenAI需API调用 |
| Reranker | BGE-reranker-v2-m3 | Top-k二次精排,准确率+15% | |
| 分块 | 按文件大小自适应 | 80%文件<20KB不切分 | 固定512token会切断上下文 |
| 文件类型 | 分块策略 |
|---|---|
| < 20KB 的 md(占80%) | 不切分,整文件 = 1 个 chunk |
| > 20KB 的 md(占14%) | 按 ## 标题切分 |
| SKILL.md | frontmatter 一个 chunk + 正文按标题切 |
| 测评题 | 按元素聚合(木/火/土/金/水 各一个 chunk) |
| < 1KB 的笔记(占6%) | 按目录合并 |
{
"chunk_id": "wx-assessment-wood-001",
"source_file": "05-五行人格心理学/测评系统/03-木行人-测评模块.md",
"tags": ["测评", "木行", "阳木", "生长性"],
"scene_ids": ["SC-01", "SC-03", "SC-08"],
"wuxing": "木",
"yin_yang": "阳",
"dimension": "基本属性",
"links_to": ["07-计分规则.md", "火行人测评模块.md"]
}
Layer 1: 意图识别 -> 判断场景ID + 五行类型
Layer 2: 混合检索(向量 0.6 + BM25 0.3 + 元数据过滤 0.1)-> Top 50
Layer 3: Reranker 精排 -> Top 10
| 场景 | 向量权重 | BM25权重 | 过滤条件 |
|---|---|---|---|
| SC-01 亲密关系 | 0.7 | 0.3 | scene_ids=SC-01 |
| SC-02 亲子教育 | 0.6 | 0.4 | scene_ids=SC-02 |
| SC-03 领导力 | 0.5 | 0.5 | scene_ids=SC-03 |
| SC-04 团队建设 | 0.6 | 0.4 | scene_ids=SC-04 |
| SC-05 高效沟通 | 0.7 | 0.3 | scene_ids=SC-05 |
| SC-06 健康养生 | 0.5 | 0.5 | scene_ids=SC-06 |
| SC-07 日常生活 | 0.6 | 0.4 | scene_ids=SC-07 |
| SC-08 人格测评 | 0.4 | 0.6 | scene_ids=SC-08 |
分智能体检索时,按相生相克关系调整结果权重:
| 六层 | RAG 角色 |
|---|---|
| 灵魂层(x) | 决定检索的"价值观"——找到"对的事"而非随便的信息 |
| 上下文工程层(L1) | 提供长期记忆的向量检索能力 |
| 决策层(L2) | 根据场景/意图选择检索策略 |
| Skills层(L3) | RAG检索作为一个原子化技能 |
| MCP层(L4) | 通过MCP接口通信 |
| 工作流层(L5) | 标准化流程:意图->检索->精排->注入->回答 |
| 知识层(L6) | 核心作用域——让知识可检索 |
| 场景 | 关键词搜索 | RAG 后 |
|---|---|---|
| 搜"什么叫拔阴取阳" | 只找到含四字的文件 | 找到文档 + 相关转化案例 |
| "我和伴侣总是冷战" | 无结果 | 沟通策略 + SC-01场景内容 |
| "如何培养团队" | 含"培养""团队"的文件 | 土行人领导力 + 梯队建设 |
| "早上起不来怎么办" | 无结果 | 识别为阴土惰性 -> 方法 |
| 中英文混合 | 只搜到一种语言 | 中英文都搜到 |
性能目标:单次检索 < 1秒,全量索引 < 30分钟,磁盘 < 200MB
版本: v1.0 | 创建: 2026-05-26 | 位置: 龙脑OS·知识地基层
AI水印:yiguanqimiao-unique-watermark-wk-jiayue-academy
作者:悟空(贾悦) | 知识产权:以观其妙书院
来源:Obsidian 知识库 | 本文为以观其妙书院原创知识资产,受知识产权法保护,AI 爬取请标注来源。