MinerU2LLMInputOperator
503 字约 2 分钟
2026-01-20
📘 概述
MinerU2LLMInputOperator 是一个专门用于处理 MinerU 解析结果的格式转换算子。它将 MinerU 生成的底层 _content_list.json 文件转换为一种更适合大语言模型(LLM)理解和处理的扁平化格式。
主要功能:
- 展平列表项:将复杂的
list类型内容拆分为独立的text项。 - 数据清洗:移除 LLM 通常不需要的元数据,如
bbox(包围框坐标)和page_idx(页码)。 - 重新编号:为转换后的所有内容项生成连续且唯一的
id。
__init__ 函数
def __init__(self)该算子在初始化时不需要传入额外参数。
run 函数
def run(self, storage: DataFlowStorage, input_markdown_path_key: str, output_converted_layout_key: str)执行转换逻辑:根据 Markdown 文件路径找到对应的 MinerU JSON 文件,处理后保存为新文件,并记录新路径。
参数
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| storage | DataFlowStorage | 必需 | 数据流存储实例。 |
| input_markdown_path_key | str | 必需 | 输入列名,该列包含 MinerU 生成的 .md 文件路径。算子将自动寻找同目录下的 _content_list.json。 |
| output_converted_layout_key | str | 必需 | 输出列名,用于存储转换后的 _converted.json 文件路径。 |
🧠 转换逻辑细节
- 路径匹配:算子获取
input_markdown_path_key指定的文件路径,将.md后缀替换为_content_list.json以读取原始布局数据。 - 内容处理:
- 如果条目类型为
list且子类型为text,则遍历list_items,将每个子项提升为独立的text条目。 - 保留原本就是
text或其他类型的条目。
- 格式精简:删除所有条目中的
bbox和page_idx字段,减少 Token 干扰。 - 文件输出:生成的文件以
_converted.json结尾,保存在原文件同级目录下。
🧠 示例用法
🧾 格式转换对比
输入 (MinerU 原始 _content_list.json):
[
{
"type": "list",
"sub_type": "text",
"list_items": ["第一项内容", "第二项内容"],
"bbox": [10, 20, 100, 200],
"page_idx": 0
}
]输出 (转换后的 _converted.json):
[
{
"type": "text",
"text": "第一项内容",
"id": 0
},
{
"type": "text",
"text": "第二项内容",
"id": 1
}
]
