RAG 与知识库
RAG 知识库从 0 到 1 的工程实践
记录一次基于文档切分、Embedding、向量检索、重排和大模型问答的完整 RAG 实践。
背景
很多 AI 应用的第一步不是训练模型,而是让模型能够可靠地使用私有知识。RAG 的价值在于把外部知识检索和大模型生成连接起来,让回答既有上下文,也能保留引用来源。
目标
这次实践的目标是做出一个可以回答 Markdown 笔记内容的问题系统,并且支持来源引用、检索结果检查和 Prompt 迭代。
技术方案
整体链路分为五步:
- 文档清洗:去掉无效空行、私人信息和临时链接。
- 文档切分:按标题层级和语义段落切块。
- 向量化:使用 Embedding 模型生成向量。
- 检索与重排:先召回候选块,再按相关性重排。
- 答案生成:把问题、上下文和约束输入大模型。
实现过程
切分策略不能只看固定长度。对技术笔记来说,标题、代码块和列表常常代表语义边界。比较稳妥的做法是先按 Markdown 结构切,再对超长段落做二次切分。
遇到的问题
最常见的问题是召回内容看起来相关,但不足以回答问题。这时单纯调 Prompt 效果有限,更应该检查切分粒度、Embedding 模型、召回数量和重排策略。
结果
系统可以对指定笔记集合进行问答,并返回引用片段。对于事实型问题,引用来源能明显降低幻觉;对于总结型问题,答案质量主要依赖笔记本身的结构化程度。
复盘
RAG 工程里最容易被低估的是评估。后续应补充一组固定问题集,记录每次调整切分、召回和 Prompt 后的命中率与答案质量变化。
Reusable projects
关联可复用项目
本文已经进入以下工程项目;项目页提供固定版本、运行命令和结果工件。
- 已独立复现
本文梳理文档处理、召回、重排和答案生成主链路;本项目把其中检索与决策部分收紧为可重放评测合同。
正在加载评论...
讨论