P2 向量索引与语义检索(2026-08-11)
P2 向量索引与语义检索(2026-08-11)
阶段:P2(向量索引)——给 2,152 篇原始语料建本地语义索引,支持"结合知识库"式语义查询。
构建日期:2026-08-11,纯本地,无外部 API。
状态:✅ 完成(断点续跑补齐 553 个文件)
是什么
对 raw/articles/ 下全部 2,152 个可读 markdown 文件做分块 + 中文嵌入(BAAI/bge-small-zh-v1.5),存成 faiss 向量索引。查询时把问题嵌入后检索 top-k 相关文本块,返回文件路径 + 相似度 + 片段。
解决什么问题:Obsidian 全文搜索是关键词匹配;这套索引能按语义找到相关文件——比如搜"国产模型价格战"能命中没出现"价格战"字样的相关段落。
构建参数
| 项 | 值 |
|---|---|
| 模型 | BAAI/bge-small-zh-v1.5(本地缓存,离线) |
| 向量维度 | 512 |
| 索引结构 | faiss IndexFlatIP(内积 + L2 归一化嵌入) |
| 分块 | 600 字符 / 重叠 80 |
| 最小块长 | 20 字符(过短丢弃) |
| 最小文章长 | 100 字符 |
| 索引文件数 | 2,152 / 2,153(1 个过短跳过) |
| 总块数 | 26,484 |
| 构建耗时 | 中断前 ~1700 文件 + 续跑 10.3 min(CPU) |
文件位置
| 文件 | 作用 |
|---|---|
wiki/tools/build_vector_index.py |
构建主索引(含断点续跑,可增量重跑) |
wiki/tools/wiki_search.py |
查询工具(CLI) |
~/文档/AI研究wiki-vectordb/ |
向量库本体(vault 外,避免 Obsidian 索引臃肿) |
使用
# 查询(top 8 结果,含相似度与片段)
python3 ~/文档/我的AI研究wiki/wiki/tools/wiki_search.py "OpenClaw Agent 架构" --top 8
# 显示更完整片段
python3 ~/文档/我的AI研究wiki/wiki/tools/wiki_search.py "Kimi K3 开源价格战" --show-text
结果按相关度排序,相似度 | 相对路径(raw/articles/)| 第N块 | 片段预览。
相似度 ≥0.7 视为强相关,0.6–0.7 视为相关(本批验证查询全部 ≥0.65)。
离线强制:构建与查询都设了 HF_HUB_OFFLINE=1——本机有模型缓存,若不设会联网检查 huggingface,在代理环境下挂起(实测卡死 0% CPU)。模型仅在缓存存在时可用。
重建/增量
# 增量(新语料进库后重跑,自动检测 checkpoint 只处理新文件)
/usr/bin/python3.10 wiki/tools/build_vector_index.py
断点续跑原理:读已有 wiki_flat.index + meta.jsonl 建立 done_paths,只处理未编码文件。建议新语料进库后每月重跑一次。
验证查询(9 条,全部达标)
P2 语料广度验证(5 条)
| 查询 | 相似度 | 命中主题 |
|---|---|---|
| 具身智能 人形机器人 融资 | 0.718 | 具身智能融资报告 / 世界模型 / 赛道融资全景 |
| 自进化 agent 记忆 反思 Hermes | 0.731 | Hermes 自进化设计 / 记忆系统 |
| AI 编程 Cursor 效率 单位经济 | 0.668 | AI 编程应用 / 组织提效 / 生产率研究 |
| 国产大模型 API 降价 价格战 | 0.711 | 中国大模型价格战 / API 商业化 |
| Anthropic 与 OpenAI 模型竞争 领先 | 0.774 | 模型竞争格局 / 编程工具三分天下 |
P3 三联页语义验证(4 条,预置于 triple_pages_plan.md)
| 查询 | 相似度 | 应命中 → 实际命中 |
|---|---|---|
| Claude Code 源码泄漏 | 0.824 | claude/ 5 篇 → 命中 4 篇 + 相关微信文章 |
| OpenClaw Agent 架构 | 0.779 | openclaw/ 教程 + 架构解读 → 命中 |
| Kimi K3 开源价格战 | 0.767 | 微信文章 → 命中 K3 评测/价格战 |
| MCP 协议 接入教程 | 0.707 | openclaw/ 教程 → 命中 Skills/MCP 教程 |
结论:检索质量达标,全部命中目标目录与主题;Claude Code 源码泄漏查询 top-5 命中 4 篇 claude/ 专文,与预置期望一致。P3 三联页的语义验证查询全部通过(≥0.6)。
与工作流的关系
- 用户说 "结合知识库" 时:先跑
wiki_search.py召回候选文件,再读文件精读,最后综合回答。 - 向量检索召回 →
wiki/sources/精读 →wiki/concepts/entities交叉引用 → 综合输出,符合 vault CLAUDE.md 的查询权限规则。 - P4 图谱复用规划见
wiki/tools/output/kg_plan.md(L0 底座 + L1 实体抽取),待 P4 启动。