W
AI-Wiki
CONCEPT

LangChain RAG能力框架

基本定义

LangChain RAG能力框架是LangChain生态下内置的检索增强生成(Retrieval-Augmented Generation, RAG)全流程实现框架,属于LangChain链(Chain)的核心能力模块,基于LangChain表达式语言(LCEL)实现组件的灵活编排,为开发者提供开箱即用的RAG全链路工具,无需从零搭建文档处理、向量存储、检索逻辑,大幅降低RAG应用的开发门槛。

核心能力组成

框架覆盖RAG全流程的所有核心环节,各层能力如下:

  1. 文档加载层:内置超过100种文档加载组件,适配PDF、Word、Markdown、网页、CSV、数据库表、代码仓库等不同格式的文档解析需求,支持自定义加载逻辑拓展适配特殊格式。
  2. 文档分割层:提供字符分割、Token分割、语义分割、文档结构分割(如按Markdown标题、PDF章节拆分)等多种分割算法,内置针对代码、学术论文、法律文书等特定文档的优化分割逻辑。
  3. 嵌入处理层:支持对接OpenAI、通义千问、BGE等主流商用、开源嵌入模型,内置嵌入缓存能力,可将高频查询对应的向量结果存入缓存,避免重复计算降低嵌入成本。
  4. 向量存储层:提供统一的向量存储操作接口,支持对接超过50种主流向量存储引擎,包括开源引擎Chroma、Milvus、Neo4j向量索引,商用引擎Pinecone、Weaviate,以及OpenViking等上下文数据库,支持向量的增删改查、索引配置、持久化存储。
  5. 检索优化层:内置多种检索优化策略提升召回准确率,包括:
    • MultiQueryRetriever:通过大模型生成多个同义查询并行检索,覆盖不同表述的语义匹配需求
    • 上下文压缩检索:对召回的原始文档块进行二次精简,仅保留与查询相关的片段
    • 父文档检索:召回小块向量后关联返回完整父文档,解决上下文割裂问题
  6. 生成对齐层:支持检索结果的自动重排、去重、引用标注,自动拼接为符合Prompt规范的上下文输入给大模型,可配合输出解析器将生成结果转换为结构化格式。

边界与注意事项

  1. 内置的通用文档加载、分割策略对结构化程度极低的文档(如手写扫描件、乱码文本、加密文档)适配性较差,需额外集成OCR、解密等预处理逻辑。
  2. 嵌入缓存默认仅做内存存储,如需跨进程、跨会话持久化缓存,需额外配置Redis、本地文件等缓存后端。
  3. MultiQueryRetriever等基于大模型的检索优化策略会产生额外的大模型调用开销,需根据业务场景在召回准确率和资源成本之间做平衡。
  4. 对接第三方向量存储引擎时需单独安装对应依赖包,商业向量库需额外配置鉴权信息、访问端点等参数。

典型开发流程

基于该框架搭建RAG应用的标准步骤如下:

  1. 选择匹配原始文档格式的加载器,读取原始文档内容;
  2. 根据文档类型选择对应的分割策略,将文档拆分为合适大小的文本块;
  3. 选定嵌入模型,可选开启嵌入缓存配置,将文本块转换为向量;
  4. 将向量与对应原始文本块写入选定的向量存储引擎,配置索引规则;
  5. 选定检索器,按需配置MultiQueryRetriever等优化策略;
  6. 基于LangChain表达式语言(LCEL)将检索模块、Prompt模板、大模型、输出解析器组装为RAG链;
  7. 调用链的invoke/stream/batch方法处理用户查询,返回最终结果。

相关条目