跳转到主要内容

作用

Corpus Server 是 UltraRAG 中用于处理原始语料文档的核心组件。它支持从多种数据源中解析、提取并标准化文本或图像内容,并提供多种切块策略,将原始文档转换为可直接用于后续检索与生成的格式。 Corpus Server 的主要功能包括:
  • 文档解析:支持多种文件类型(如 .pdf、.txt、.md、.docx等)的内容提取。
  • 语料构建:将解析后的内容保存为标准化的 .jsonl 结构,每行对应一个独立文档。
  • 图像转换:支持将 PDF 页面转换为图像语料,保留版面与视觉结构信息。
  • 文本切块:提供 Token、Sentence、Recursive等多种切分策略。
示例数据: 文本模态:
data/corpus_example.jsonl
图像模态:

文档解析示例

文本解析

Corpus Server 支持多种文本解析格式,包括 .pdf、.txt、.md、.docx、.xps、.oxps、.epub、.mobi、.fb2 等。
examples/build_text_corpus.yaml
编译 Pipeline:
根据实际情况修改相应字段:
examples/parameters/build_text_corpus_parameter.yaml
其中parse_file_path 可以是单个文件,也可以是文件夹路径——当指定为文件夹时,系统会自动遍历其中所有可解析文件并批量读取。 运行 Pipeline:
执行成功后,系统会自动解析文本并输出标准化语料文件,示例如下:

PDF转图像

在多模态 RAG 场景中,一类方法是将文档页面直接转换为图像,并以完整图像形式进行检索与生成。 这种方式的优势在于能够保留文档的排版、格式与视觉结构,从而使检索和理解更贴近真实阅读场景。
examples/build_image_corpus.yaml
编译 Pipeline:
根据实际情况修改相应字段:
examples/parameters/build_image_corpus_parameter.yaml
同样地,parse_file_path 参数既可指定为单个文件,也可为文件夹路径。当设置为文件夹时,系统会自动遍历并处理其中的所有文件。 运行 Pipeline:
执行成功后,系统将保存生成的图像语料文件,每条记录包含图像标识符与相对路径,生成的 .jsonl 文件可直接作为多模态检索或生成任务的输入。输出示例如下:

MinerU解析

MinerU 是业界广受好评的 PDF 解析框架,支持高精度的文本与版面结构提取。 UltraRAG 将 MinerU 无缝集成为内置工具,可直接在 Pipeline 中调用,实现一站式的 PDF → 文本 + 图像 语料构建。
examples/build_mineru_corpus.yaml
编译 Pipeline:
根据实际情况修改相应字段:
examples/parameters/build_mineru_corpus_parameter.yaml
同样地,parse_file_path 参数既可为单个文件,也可为文件夹路径。 运行 Pipeline(首次执行时需下载 MinerU 模型,速度较慢):
执行成功后,系统将自动输出对应的 文本语料 与 图像语料 文件,其格式与 build_text_corpusbuild_image_corpus 一致,可直接用于多模态检索与生成任务。

文档切块示例

UltraRAG 集成了 chonkie 文档切块库,并内置三种主流切块策略:Token ChunkerSentence Chunker以及Recursive Chunker,可灵活应对不同类型的文本结构。
  • Token Chunker:按分词器、单词或字符进行分块,适用于一般文本。
  • Sentence Chunker:按句子边界切分,保证语义完整性。
  • Recursive Chunker:适用于结构良好的长文档(如书籍、论文),能自动按层级划分内容。
examples/corpus_chunk.yaml
编译 Pipeline:
根据实际情况修改相应字段:
examples/parameters/corpus_chunk_parameter.yaml # 是否将标题附加到每个 chunk 开头
运行 Pipeline:
执行完成后,系统将输出标准化的切块语料文件,可直接用于后续检索与生成模块。 输出示例如下:
你可以在同一 Pipeline 中同时调用解析工具与切块工具,以构建属于你自己的个性化知识库。