RAG应用

RAG(Retrieval Augmented Generation)结合检索和生成,让LLM能够访问外部知识库。

LangChain·预计阅读时间:50分钟

01概述

RAG(检索增强生成)是一种将信息检索与文本生成相结合的技术。通过检索相关文档并将其作为上下文提供给LLM,RAG能够显著提升LLM的回答质量和准确性,同时减少幻觉问题。LangChain提供了完整的RAG开发工具链。

RAG优势

优势说明
知识扩展让LLM访问最新、私有知识
减少幻觉基于真实文档生成答案
可追溯答案可追溯到源文档
成本低无需微调模型
易更新知识库更新即可生效

02RAG架构

RAG应用包含两个主要阶段:索引和检索生成。

索引阶段

文档加载

从各种来源加载文档

文档分割

将长文档切分为合适大小的块

向量化

将文档块转换为向量

存储索引

将向量存储到向量数据库

检索生成阶段

处理流程

  • 查询向量化: 将用户问题转换为向量
  • 相似度检索: 从向量库检索相似文档
  • 上下文构建: 将检索结果作为上下文
  • 答案生成: LLM基于上下文生成答案

03文档处理

文档处理是RAG的基础环节。

文档加载器

加载器支持格式
PyPDFLoaderPDF文档
TextLoader纯文本
WebBaseLoader网页内容
CSVLoaderCSV文件
UnstructuredLoader多种格式

文档分割策略

CharacterTextSplitter

按字符数分割,简单高效

RecursiveCharacterTextSplitter

递归分割,保持语义完整性

MarkdownHeaderTextSplitter

按Markdown标题分割

CodeSplitter

按代码结构分割

04向量存储

向量存储是RAG的核心组件。

常用向量数据库

数据库特点适用场景
Chroma轻量级,易上手开发测试
Pinecone全托管,高性能生产环境
Weaviate功能丰富,开源企业应用
Milvus分布式,可扩展大规模数据
FAISSFacebook开源,高效本地部署

05检索策略

LangChain支持多种检索策略。

相似度检索

基于向量相似度的标准检索

MMR检索

最大边际相关性,增加多样性

混合检索

结合关键词和语义检索

上下文压缩

压缩检索结果提高相关性

06高级技术

提升RAG效果的高级技术。

高级RAG技术

  • 查询重写: 优化用户查询
  • 多查询检索: 生成多个查询并行检索
  • 重排序: 对检索结果重新排序
  • 知识图谱RAG: 结合知识图谱
  • 自适应检索: 根据问题类型调整策略

07最佳实践

1. 合理分块

选择合适的分块大小和重叠

2. 混合检索

结合多种检索策略

3. 元数据过滤

利用元数据提高检索精度

4. 持续优化

根据反馈持续改进检索效果

RAG应用要点

RAG是构建知识密集型AI应用的核心技术。通过合理的文档处理、向量存储和检索策略,可以让LLM访问海量知识。建议从简单RAG开始,逐步添加高级技术优化效果。

----