zhch158: @workspace 根据demo/demo.py, 生成流水线执行markdown mermaid流程图,图中需要注明调用的模型以及传递的数据 Workspace: 正在收集工作区信息根据 demo.py 文件,我为您生成了 MinerU 的流水线执行流程图: ```mermaid flowchart TD A[开始] --> B[读取PDF文件] B --> C{选择后端类型} C -->|Pipeline后端| D[PDF页面范围处理
convert_pdf_bytes_to_bytes_by_pypdfium2] C -->|VLM后端| N[PDF页面范围处理
convert_pdf_bytes_to_bytes_by_pypdfium2] D --> E[PDF文档分析
pipeline_doc_analyze] E --> F[获取推理结果、图像列表、PDF文档、语言列表、OCR开关列表] F --> G[遍历每个PDF文档] G --> H[创建输出目录
prepare_env] H --> I[创建文件写入器
FileBasedDataWriter] I --> J[转换为中间JSON
pipeline_result_to_middle_json] J --> K{输出选项} K -->|f_draw_layout_bbox=True| L[绘制布局边界框
draw_layout_bbox] K -->|f_draw_span_bbox=True| M[绘制文本跨度边界框
draw_span_bbox] K -->|f_dump_orig_pdf=True| O[保存原始PDF文件] K -->|f_dump_md=True| P[生成Markdown内容
pipeline_union_make] K -->|f_dump_content_list=True| Q[生成内容列表JSON
MakeMode.CONTENT_LIST] K -->|f_dump_middle_json=True| R[保存中间JSON文件] K -->|f_dump_model_output=True| S[保存模型输出JSON文件] N --> T[VLM文档分析
vlm_doc_analyze] T --> U[获取中间JSON和推理结果] U --> V[创建输出目录和文件写入器] V --> W{VLM输出选项} W -->|f_draw_layout_bbox=True| X[绘制布局边界框] W -->|f_dump_orig_pdf=True| Y[保存原始PDF文件] W -->|f_dump_md=True| Z[生成Markdown内容
vlm_union_make] W -->|f_dump_content_list=True| AA[生成内容列表JSON] W -->|f_dump_middle_json=True| BB[保存中间JSON文件] W -->|f_dump_model_output=True| CC[保存模型输出TXT文件] L --> DD[输出完成] M --> DD O --> DD P --> DD Q --> DD R --> DD S --> DD X --> DD Y --> DD Z --> DD AA --> DD BB --> DD CC --> DD style A fill:#e8f5e8 style B fill:#e8f5e8 style E fill:#bbdefb style T fill:#bbdefb style J fill:#fff3e0 style P fill:#f3e5f5 style Z fill:#f3e5f5 style DD fill:#c8e6c9 classDef process fill:#e3f2fd,stroke:#333,stroke-width:2px classDef model fill:#fff3e0,stroke:#ff9800,stroke-width:2px classDef output fill:#f3e5f5,stroke:#9c27b0,stroke-width:2px classDef decision fill:#fff8e1,stroke:#ffc107,stroke-width:2px class D,H,I,V decision class E,T,J model class L,M,O,P,Q,R,S,X,Y,Z,AA,BB,CC output ``` 这个流程图展示了 MinerU 的主要执行流程: ## 主要组件说明: 1. **输入处理**: - 读取PDF文件并根据页面范围进行处理 - 支持 Pipeline 和 VLM 两种后端模式 2. **Pipeline 后端流程**: - 调用 `pipeline_doc_analyze` 进行文档分析 - 使用 `pipeline_result_to_middle_json` 转换结果 - 通过 `pipeline_union_make` 生成最终内容 3. **VLM 后端流程**: - 调用 `vlm_doc_analyze` 进行分析 - 使用 `vlm_union_make` 生成内容 4. **输出文件类型**: - Markdown文件 (`.md`) - 中间JSON文件 (`_middle.json`) - 模型输出文件 (`_model.json` 或 `_model_output.txt`) - 内容列表文件 (`_content_list.json`) - 可视化PDF文件 (`_layout.pdf`, `_span.pdf`) - 原始PDF文件 (`_origin.pdf`) 流程图中的颜色编码: - 🔵 蓝色:数据处理流程 - 🟠 橙色:模型推理相关 - 🟣 紫色:输出生成 - 🟡 黄色:决策分支