Skip to main content
本教程将带您了解如何使用 xParse SDK 和 LangChain 构建完整的 RAG(检索增强生成)应用。我们将通过三个实际场景,展示从文档解析到智能分块、向量化到检索的完整流程。

什么是 RAG?

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合信息检索和生成式 AI 的技术。通过 RAG,大模型可以基于企业知识库进行回答,而不是仅依赖训练数据,从而提供更准确、更相关的答案。 RAG 的核心流程包括:
  1. 文档解析:使用 xParse SDK 将非结构化文档转换为 Markdown 和结构化元素
  2. 智能分块:使用 LangChain 文本分割器对解析结果进行分块
  3. 向量化存储:使用 LangChain Embeddings 将分块向量化并存入向量数据库
  4. 检索查询:根据用户问题检索相关文档片段
  5. 生成回答:将检索到的内容作为上下文,让大模型生成答案
xParse SDK 负责高质量的文档解析,LangChain 负责后续的分块、向量化和检索,两者结合为您提供灵活的 RAG 构建能力。

环境准备

首先安装必要的依赖:
创建 .env 文件存储配置:
提示:TEXTIN_APP_IDTEXTIN_SECRET_CODE 参考 API Key,请登录 Textin 工作台 获取。示例中使用 通义千问 的大模型能力,其他模型用法类似。
下面我们将通过三个实际场景,展示如何构建 RAG 应用。

RAG 完整流程

场景 1:企业知识库构建

需求描述

某企业需要构建内部知识库,包含产品手册、技术文档、培训材料等。员工可以通过自然语言提问,快速找到相关信息。 文档特点
  • 格式多样:PDF、Word、Excel
  • 结构清晰:有明确的章节标题
  • 内容专业:技术术语较多
处理要求
  • 保持章节完整性
  • 支持语义检索
  • 快速响应查询

配置方案

针对结构化文档,我们使用 MarkdownHeaderTextSplitter 按标题分块,保持章节完整性:

完整代码示例

场景 2:法律文档检索系统

需求描述

律师事务所需要构建法律文档检索系统,包含合同、判决书、法律条文等。律师可以通过关键词或自然语言快速检索相关案例和法律依据。 文档特点
  • 主要是 PDF 格式
  • 页面结构清晰
  • 需要保持页面完整性
  • 跨页内容需要关联
处理要求
  • 按页面分块,保持页面完整性
  • 支持精确检索
  • 保留文档元数据(如案件编号、日期等)

配置方案

针对 PDF 文档,我们通过 xParse 解析出的元素按 page_number 分组,保持页面完整性:

完整代码示例

场景 3:技术文档问答系统

需求描述

技术团队需要构建 API 文档问答系统,开发者可以通过自然语言提问,快速找到 API 使用方法、参数说明等。 文档特点
  • 主要是 Markdown 和 PDF 格式
  • 代码示例较多
  • 结构相对简单
  • 需要精确匹配 API 名称
处理要求
  • 基础分块即可
  • 支持代码块识别
  • 快速检索响应

配置方案

针对技术文档,我们使用 RecursiveCharacterTextSplitter 进行基础分块,简单高效:

完整代码示例(集成大模型)

与向量数据库集成

Milvus 使用说明

Milvus 是一个开源的向量数据库,通过 LangChain 可以方便地将 xParse 解析的文档存入 Milvus 并进行向量检索:

Zilliz 使用说明

Zilliz 是 Milvus 的云端托管版本,使用 LangChain 集成方式类似:

检索和查询最佳实践

1. 使用 LangChain 进行检索

使用 LangChain 的向量存储可以自动处理查询向量化,无需手动调用 embed API:

2. 相似度阈值

使用 LangChain 的 similarity_search_with_score 可以获取相似度分数:

3. 混合检索

结合向量检索和关键词检索:

性能优化建议

  1. 批量处理:使用 xParse SDK 批量解析多个文档,配合 LangChain 批量分块和向量化
  2. 分块策略优化:根据文档类型选择合适的 LangChain 分割器,减少不必要的分块
  3. 向量模型选择:平衡精度和速度,生产环境可考虑使用 text-embedding-v3
  4. 索引优化:在 Milvus 中创建合适的索引,提升检索速度

下一步

  • 查看快速启动指南:了解 xParse SDK 的基本使用方法
  • 阅读API 文档:了解详细的接口参数和配置选项
  • 探索更多场景:根据您的业务需求,灵活组合 xParse SDK 和 LangChain 能力
如果您在构建 RAG 应用时遇到问题,可以参考这些示例代码,或联系技术支持获取帮助。