RAG Engineering
RAG Engineering 进入 RAG。RAG 不是向量数据库教程,而是一条从文档进入答案的完整工程链路。
真正可用的 RAG 系统,要同时处理文档质量、切分策略、检索召回、权限过滤、上下文组装、引用来源和评估。这个阶段会把“把文档丢进向量库”升级为“设计一条可调试、可评估、可迭代的知识问答流水线”。
学习目标
完成这个主题后,你应该能够:
- 解释 RAG 与模型训练、长上下文、普通搜索之间的区别。
- 设计从文档解析、清洗、切分、向量化到索引入库的 ingestion pipeline。
- 根据业务场景选择 chunking、metadata、hybrid search、rerank 和 context assembly 策略。
- 为 RAG 输出提供引用来源、检索调试信息和 groundedness 评估。
- 用 pgvector 实现一个具备权限过滤和引用展示的最小可用文档问答系统。
关键概念
RAG 是 Retrieval Augmented Generation。它先从外部知识库检索相关内容,再把检索结果作为上下文交给模型生成答案。RAG 的目标不是让模型“记住”私有知识,而是在回答时把可信资料带进上下文。
Embedding 是把文本映射成向量表示的过程。相似语义通常会在向量空间里更接近,但 embedding 不理解权限、时效和事实正确性,这些仍然要由应用层处理。
Chunking 决定知识进入检索系统的颗粒度。切得太大,召回噪声高;切得太小,语义不完整。好的切分通常要结合标题层级、段落结构、表格、代码块和 overlap。
Retrieval 不只是 top-k 相似度搜索。生产系统会加入 query rewrite、metadata filter、hybrid search、rerank、去重和上下文预算控制。
RAG Eval 同时评估检索和回答。检索要看是否找到了应该找的证据,回答要看是否忠实于证据、是否引用正确、是否越权暴露信息。
RAG Pipeline
这张图说明 RAG 有两条链路:文档入库链路和用户问答链路。入库质量决定可召回的知识边界,问答链路决定最终是否能给出可信、可追溯的回答。
核心主题
- RAG:Retrieval Augmented Generation,外部知识增强生成,不是训练模型,也不是简单向量搜索。
- 适用场景:私有知识库、企业文档问答、帮助中心问答、法规、合同、技术文档、长文档问答。
- Embedding:文本向量化、semantic representation、embedding model、vector dimension。
- 相似度搜索:cosine similarity、dot product、top-k、recall。
- 文档处理:parsing、cleaning、metadata、document id、source、permission。
- Chunking:fixed、recursive、semantic、overlap、parent-child、hierarchical chunk。
- Indexing:embedding generation、vector storage、metadata indexing、incremental indexing。
- Vector Database:pgvector、Milvus、Pinecone、Weaviate、Qdrant。
- Retrieval Pipeline:query understanding、query rewrite、retrieval、filter、rerank、context assembly、answer generation。
- Hybrid Search:keyword search、BM25、vector search、hybrid scoring。
- Rerank:cross encoder、rerank model、relevance improvement。
- RAG Eval:retrieval precision、retrieval recall、answer faithfulness、citation accuracy、groundedness。
阶段实践拆解
- 建立文档模型:保存 document、chunk、metadata、source、owner、permission 和版本信息。
- 实现入库链路:上传文件后解析文本,清洗无效内容,按结构切分 chunk,并生成 embedding。
- 接入 pgvector:把 embedding、chunk 文本和 metadata 写入数据库,支持按 tenant、document type、权限字段过滤。
- 实现检索链路:对用户问题做 rewrite,执行 vector search 或 hybrid search,再进行 metadata filter。
- 增加 rerank 和上下文组装:根据相关性重排候选 chunk,按 token budget 拼装上下文,并保留引用来源。
- 生成带引用答案:要求模型只基于上下文回答,无法回答时明确说明证据不足。
- 加入调试面板:展示 query、命中的 chunk、分数、rerank 结果、最终上下文和引用。
- 建立 RAG Eval:准备问题集,评估 retrieval recall、answer faithfulness 和 citation accuracy。
阶段实践
- 用 pgvector 实现文档问答。
- 支持文档上传、chunking、引用来源和检索结果调试。
计划文章
- RAG 不是向量数据库教程
- Embedding 到底是什么
- 如何从零实现一个可用的文档问答系统