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。

阶段实践拆解

  1. 建立文档模型:保存 document、chunk、metadata、source、owner、permission 和版本信息。
  2. 实现入库链路:上传文件后解析文本,清洗无效内容,按结构切分 chunk,并生成 embedding。
  3. 接入 pgvector:把 embedding、chunk 文本和 metadata 写入数据库,支持按 tenant、document type、权限字段过滤。
  4. 实现检索链路:对用户问题做 rewrite,执行 vector search 或 hybrid search,再进行 metadata filter。
  5. 增加 rerank 和上下文组装:根据相关性重排候选 chunk,按 token budget 拼装上下文,并保留引用来源。
  6. 生成带引用答案:要求模型只基于上下文回答,无法回答时明确说明证据不足。
  7. 加入调试面板:展示 query、命中的 chunk、分数、rerank 结果、最终上下文和引用。
  8. 建立 RAG Eval:准备问题集,评估 retrieval recall、answer faithfulness 和 citation accuracy。

阶段实践

  • 用 pgvector 实现文档问答。
  • 支持文档上传、chunking、引用来源和检索结果调试。

计划文章

  • RAG 不是向量数据库教程
  • Embedding 到底是什么
  • 如何从零实现一个可用的文档问答系统