RAG 技术全栈指南 第二章学习笔记

RAG 技术全栈指南 第二章学习笔记

1. 数据加载

功能:解析多源数据为文本内容,如 PDF、Word、Markdown 等。

2. 主流加载器

来自 DataWhale

工具名称 特点
PyMuPDF4LLM PDF → Markdown 转换,OCR + 表格识别
TextLoader 基础文本文件加载
DirectoryLoader 批量目录文件处理
Unstructured 多格式文档解析
FireCrawlLoader 网页内容抓取
LlamaParse 深度 PDF 结构解析
Docling 模块化企业级解析
Marker PDF → Markdown,GPU 加速
MinerU 多模态集成解析

:Unstructured 可处理多种文档格式,API 官网为 https://github.com/Unstructured-IO/unstructured?tab=readme-ov-file

3. 分块方案

3.1 功能

RAG 的关键步骤。目的是将文本切分成更小、更易于处理的单元,即“块”。

3.2 考量因素

  • 模型上下文限制:需考虑 Embedding 模型和大语言模型 (LLM) 的上下文长度限制。
  • 检索的性能需求:避免在过长上下文中检索,影响效率与精度。

3.3 常用方案

各方案的共同点:通常通过设置 overlap(重叠)来保持上下文连续性。

  1. 固定大小分块 (CharacterTextSplitter)

    • 核心逻辑:先按预定义的分隔符(如换行符、句号)进行分割,再根据设定的块大小对剩余文本进行最终切分。
  2. 递归字符分块 (RecursiveCharacterTextSplitter)

    • 核心逻辑:按照一组有效分隔符的优先级顺序(如段落、句子、词语)递归地进行分割,直到每个块的大小满足要求。
  3. 语义分块 (SemanticChunker)

    • 核心逻辑:通过计算文本片段的嵌入向量(Embedding)并比较其相似度,识别语义上的自然断点进行分块。
  4. 章节分块

    • 核心逻辑:基于 Unstructured 等高级解析工具,识别文档固有的章节结构、页码等信息,并将其作为元数据存储,然后基于这些结构进行分块。
posted @ 2025-12-19 18:08  卞玮  阅读(0)  评论(0)    收藏  举报