1. RAG 的基本原理
RAG(Retrieval-Augmented Generation)是一种让大语言模型不局限于训练知识的架构——通过从外部知识库检索相关信息,将其作为上下文注入提示词,再让模型基于这些信息生成回答。这有效解决了模型知识过时、幻觉问题和无法访问私有数据等局限。
2. LangChain 的 RAG 完整流水线
LangChain 提供了一套完整的 RAG 实现链路,涵盖五个核心步骤:
- 文档加载(Load):通过 DocumentLoader 从 PDF、网页、目录等多种来源加载文档,支持 PyPDFLoader、WebBaseLoader、DirectoryLoader 等数十种加载器
- 文档切分(Split):使用 TextSplitter(推荐 RecursiveCharacterTextSplitter)将大文档递归切分为合适大小的 chunk,控制 chunk_size 和 chunk_overlap 以平衡搜索精度和上下文完整性
- 嵌入向量化(Embed):通过 Embedding 模型将每个文本 chunk 转换为数值向量,使语义相似的内容在向量空间中距离更近。支持的 Embedding 提供商包括 OpenAI、Azure、Google Gemini、Cohere、Voyage AI 等
- 向量存储(Store):使用 VectorStore 索引 chunk 及其嵌入向量以便高效检索。支持的向量数据库包括 Chroma、Pinecone、FAISS、Milvus、Qdrant、Weaviate 等,腾讯云也提供了向量数据库(Tencent Cloud Vector Database)作为云原生选项
- 检索与生成(Retrieve + Generate):将用户查询转为向量,在 VectorStore 中进行相似度搜索获取相关 chunk,注入提示词后由 LLM 生成答案
3. 高级 RAG 技术
LangChain 还支持多种进阶 RAG 技术以提升回答质量:
- Multi-Query Retrieval:用 LLM 生成多个变体查询,提高召回覆盖率
- Ensemble Retriever:结合 BM25 关键词检索和向量语义检索的混合搜索策略
- Contextual Compression:检索后通过 LLM 压缩和提取最相关的信息片段
- Conversational RAG:在多轮对话中维护上下文,支持基于历史对话的追问
4. Deep Agents 中的 RAG 模式
在 Deep Agents 中,RAG 支持多种编排模式:
- Skills-guided retrieval:Agent 加载相关 skill 指导如何搜索 corpus
- Rubric-checked grounding:审核子 Agent 评估回答是否基于检索到的材料
- Todo-driven investigation:Agent 创建待办清单逐项调查文档
- Retrieve, offload, and delegate:检索 chunk 写入文件系统,子 Agent 并行读取和分析