作用
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
examples/parameters/build_text_corpus_parameter.yaml
parse_file_path 可以是单个文件,也可以是文件夹路径——当指定为文件夹时,系统会自动遍历其中所有可解析文件并批量读取。
运行 Pipeline:
PDF转图像
在多模态 RAG 场景中,一类方法是将文档页面直接转换为图像,并以完整图像形式进行检索与生成。 这种方式的优势在于能够保留文档的排版、格式与视觉结构,从而使检索和理解更贴近真实阅读场景。examples/build_image_corpus.yaml
examples/parameters/build_image_corpus_parameter.yaml
parse_file_path 参数既可指定为单个文件,也可为文件夹路径。当设置为文件夹时,系统会自动遍历并处理其中的所有文件。
运行 Pipeline:
MinerU解析
MinerU 是业界广受好评的 PDF 解析框架,支持高精度的文本与版面结构提取。 UltraRAG 将 MinerU 无缝集成为内置工具,可直接在 Pipeline 中调用,实现一站式的 PDF → 文本 + 图像 语料构建。examples/build_mineru_corpus.yaml
examples/parameters/build_mineru_corpus_parameter.yaml
parse_file_path 参数既可为单个文件,也可为文件夹路径。
运行 Pipeline(首次执行时需下载 MinerU 模型,速度较慢):
build_text_corpus 和 build_image_corpus 一致,可直接用于多模态检索与生成任务。
文档切块示例
UltraRAG 集成了 chonkie 文档切块库,并内置三种主流切块策略:Token Chunker,Sentence Chunker以及Recursive Chunker,可灵活应对不同类型的文本结构。
Token Chunker:按分词器、单词或字符进行分块,适用于一般文本。Sentence Chunker:按句子边界切分,保证语义完整性。Recursive Chunker:适用于结构良好的长文档(如书籍、论文),能自动按层级划分内容。
examples/corpus_chunk.yaml
examples/parameters/corpus_chunk_parameter.yaml # 是否将标题附加到每个 chunk 开头
你可以在同一 Pipeline 中同时调用解析工具与切块工具,以构建属于你自己的个性化知识库。