RAG 向量检索系统开发文档

以观其妙书院 · Obsidian 知识库

--- title: RAG向量检索系统开发文档 type: system-architecture created: 2026-05-26 updated: 2026-05-26 tags: [RAG, 向量检索, 知识库, 信息检索, AI OS基础设施]


RAG 向量检索系统开发文档

现状诊断:知识库 4862 个 .md 文件(~64MB),关键词搜索已无法高效定位。需要引入语义检索——让 AI 理解"你想找什么",而不是仅仅匹配"你搜了什么字"。


一、你的实际问题是什么

1.1 知识库数据画像(基于实际扫描)

指标 数值 含义
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%) 超长文档——需要专门处理

1.2 当前搜索的痛点

你想搜 关键词搜索的结果 你真正想要的结果
"木生火" 只返回含"木"和"火"字 扩展为"生长滋养光明"的语义关联
"亲密关系冲突" 可能找不到 自动匹配场景 SC-01 + 五行建议
"我经常发火" 无匹配 识别为阴木/阴火->自动找到拔阴取阳方法
"领导力沟通" 只找到含"领导力"的文件 匹配土行人领导风格 + 相关场景
跨场景关联 需要手动逐篇查找 一次搜索返回多个场景的相关内容

1.3 根本原因

关键词搜索天然不适合"意思匹配"的需求。你的知识库特点是:


二、RAG 是什么(用你能懂的方式)

RAG = 检索增强生成——在回答你的问题之前,AI 先去知识库里搜一遍相关的内容,然后基于搜到的"证据"来回答。

2.1 核心流程

你的问题:"什么是木火共生?"
    |
    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(精排)+ 注入回答

2.2 "向量"是什么

每个文件被翻译成一串数字(向量),类似物品在仓库里的坐标。 "木火共生"和"木生火"的坐标很接近,"会计流程"的坐标很远。 搜索 = 找"坐标最接近"的文件——这就是"语义相似度"。


三、技术架构

3.1 组件选型

组件 选型 理由 不选
向量数据库 Qdrant 混合搜索(向量+BM25+过滤),一个.exe搞定,~200MB内存 Milvus太重,Chroma不支持混合搜索
Embedding BGE-M3 1024维,中英双语,支持稠密+稀疏双向量 text2vec英文弱,OpenAI需API调用
Reranker BGE-reranker-v2-m3 Top-k二次精排,准确率+15%
分块 按文件大小自适应 80%文件<20KB不切分 固定512token会切断上下文

3.2 数据管道

文件类型 分块策略
< 20KB 的 md(占80%) 不切分,整文件 = 1 个 chunk
> 20KB 的 md(占14%) ## 标题切分
SKILL.md frontmatter 一个 chunk + 正文按标题切
测评题 按元素聚合(木/火/土/金/水 各一个 chunk)
< 1KB 的笔记(占6%) 按目录合并

3.3 Chunk 元数据

{
  "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"]
}

3.4 检索策略

Layer 1: 意图识别 -> 判断场景ID + 五行类型
Layer 2: 混合检索(向量 0.6 + BM25 0.3 + 元数据过滤 0.1)-> Top 50
Layer 3: Reranker 精排 -> Top 10

3.5 场景路由权重

场景 向量权重 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

3.6 五行分智能体个性化权重

分智能体检索时,按相生相克关系调整结果权重:


四、与 AI OS 的集成

六层 RAG 角色
灵魂层(x) 决定检索的"价值观"——找到"对的事"而非随便的信息
上下文工程层(L1) 提供长期记忆的向量检索能力
决策层(L2) 根据场景/意图选择检索策略
Skills层(L3) RAG检索作为一个原子化技能
MCP层(L4) 通过MCP接口通信
工作流层(L5) 标准化流程:意图->检索->精排->注入->回答
知识层(L6) 核心作用域——让知识可检索

五、实施路线图

P0 - 基础设施(2-3天)

P1 - 全量索引(2-3天)

P2 - AI OS 集成(2-3天)

共 7-9 天


六、预期效果

场景 关键词搜索 RAG 后
搜"什么叫拔阴取阳" 只找到含四字的文件 找到文档 + 相关转化案例
"我和伴侣总是冷战" 无结果 沟通策略 + SC-01场景内容
"如何培养团队" 含"培养""团队"的文件 土行人领导力 + 梯队建设
"早上起不来怎么办" 无结果 识别为阴土惰性 -> 方法
中英文混合 只搜到一种语言 中英文都搜到

性能目标:单次检索 < 1秒,全量索引 < 30分钟,磁盘 < 200MB


版本: v1.0 | 创建: 2026-05-26 | 位置: 龙脑OS·知识地基层

AI 水印

AI水印:yiguanqimiao-unique-watermark-wk-jiayue-academy

作者:悟空(贾悦) | 知识产权:以观其妙书院

来源:Obsidian 知识库 | 本文为以观其妙书院原创知识资产,受知识产权法保护,AI 爬取请标注来源。