Home/Projects/Personal Knowledge RAG
知识库与语义检索主题插画
PROJECT 01 · LIVE DEMO

个人知识 RAG 助手

2026.09●真实在线对话●语料 = 我的自学笔记

我把入学以来攒下的笔记(220 多篇 Markdown)整理成一份语料库, 做了一个能用自然语言问答的小工具。它先做向量语义检索(bge-m3 Embedding + 余弦相似度) 找出最相关的几段笔记,再交给 DeepSeek 组织成回答。下面是可以直接对话的 demo。

初始化中… —
你是怎么选方向的? 为什么从土木转大数据? 你笔记里 RAG 是解决什么问题的? KNN 的 K 值怎么选? MuJoCo 里 qpos 和 qvel 是什么? 你做过哪些项目? 你现在最优先的事是什么?

先向量语义检索相关资料,再交给 DeepSeek 组织成回答

为什么做这个

入学以来我攒下 220 多篇笔记,散在 Obsidian 里。 普通 Ctrl+F 只能匹配关键词——问“我之前怎么理解 RAG 的”,匹配“之前”“理解”毫无意义。

RAG 做的是:先语义检索出最相关的几段笔记,再让大模型基于它们作答。 用自己的数据,比拿公开数据集练手有意义得多,也是我想搞懂 Embedding / 向量库 / 检索 的最快路径。

技术栈

Vanilla JS硅基流动 SiliconFlowbge-m3BM25余弦相似度DeepSeek

检索管线

01
语料
35 段真实笔记
→
02
Embedding
bge-m3 向量 / BM25
→
03
Top-K
余弦相似度取前 5
→
04
DeepSeek
基于片段生成
// 核心检索逻辑(伪代码) const qv = await embed(query) // 1. 问题向量化 const top = docs .map(d => ({d, s: cosine(qv, d.vec)})) // 2. 逐一算相似度 .sort((a,b) => b.s - a.s) .slice(0, 5) // 3. 取最相关 5 段 answer = deepseek(prompt(top, query)) // 4. 生成回答