[Question]: [MinerU] Output directory

该报错通常发生在 RAGFlow 使用 MinerU 解析 PDF 时,输出文件路径不一致导致 MinerU 找不到生成的 _content_list.json 。优先排查 RAGFlow 版本是否低于 2025‑12‑01(未包含 PR #11623 的修复)。核心报错: [MinerU] Mis

快速结论:该报错通常发生在 RAGFlow 使用 MinerU 解析 PDF 时,输出文件路径不一致导致 MinerU 找不到生成的 _content_list.json。优先排查 RAGFlow 版本是否低于 2025‑12‑01(未包含 PR #11623 的修复)。核心报错:[MinerU] Missing output file: /tmp/mineru_pdf_*/xxx/auto/xxx_content_list.json

适用环境:Issue 中使用的部署方式为 Docker 容器内的 RAGFlow + MinerU 集成;未明确操作系统、Python、CUDA 等版本,仅确认问题在 MinerU 解析 PDF 时触发。

最快修复方案:更新 RAGFlow 到包含 PR #11623(2025‑12‑01 合并)的版本,该补丁让 MinerUParser 在输出目录下同时搜索 autovlm 及方法目录,避免因子目录不匹配导致的缺失错误。

注意事项:该修复并未专门解决非 ASCII 文件名(如中文名)的路径问题,但 MinerU 文件操作已使用 UTF‑8 编码。若更新后仍报错,请检查 Docker 容器 locale 和文件系统是否支持 UTF‑8;亦可通过设置环境变量 MINERU_DELETE_OUTPUT=0 保留临时目录,手动检查 MinerU 实际生成的目录结构。

问题场景

用户在 RAGFlow 的 Docker 容器内,通过 MinerU 解析一份中文 PDF 文件(文件名含中文“磋商文件”)时触发。日志显示 MinerU 正常接收 PDF 并指定输出目录,但最终报 “Missing output file”,表明 MinerU 生成的 _content_list.json 未出现在 parser 预期路径中。

报错原文

13:56:25 Page(1~40): [MinerU] Received binary PDF -> /tmp/mineru_bin_pdf_5r6ipx67/磋商文件.pdf
13:56:25 Page(1~40): [MinerU] Output directory: /tmp/mineru_pdf_e4fil2oe
13:56:39 Page(1~40): [ERROR]Internal server error while chunking: [MinerU] Missing output file: /tmp/mineru_pdf_e4fil2oe/磋商文件/auto/磋商文件_content_list.json
13:56:39 [ERROR][Exception]: [MinerU] Missing output file: /tmp/mineru_pdf_e4fil2oe/磋商文件/auto/磋商文件_content_list.json

原因分析

这是 RAGFlow 与 MinerU 集成的已知问题。MinerU 实际输出文件可能位于 autovlm 或方法目录(如 ocr)下,但旧版 parser 的 _read_output 方法只固定搜索 auto 子目录。当 MinerU 后端选择其他目录时,parser 就会找不到输出文件。该问题已通过 PR #11623 修复,修复后 parser 会尝试搜索多个候选目录。

环境排查

  • 确认 RAGFlow 版本是否早于 2025‑12‑01(PR #11623 合并日期)。
  • 确认 Docker 镜像是否为最新:docker images infiniflow/ragflow
  • 检查容器内语言环境是否支持 UTF‑8:执行 locale 命令。
  • 若使用非英文系统,检查文件系统挂载方式是否支持 Unicode 文件名。

解决步骤

  1. 更新 RAGFlow 版本:拉取最新镜像并重启容器,确保包含 PR #11623 的补丁。该补丁修改了 mineru_parser.py 中的 _read_output 方法,使其遍历 autovlm 及 mineru 返回的 method 目录。
  2. 临时调试:若无法立即升级,可在启动 RAGFlow 时设置环境变量 MINERU_DELETE_OUTPUT=0,这样处理完成后保留临时输出目录。进入容器查看 /tmp/mineru_pdf_* 下的实际目录结构,确认输出文件实际所在位置。
  3. 手动 patch(临时方案):如仍使用旧版本,可参考 PR #11623 修改 deepdoc/parser/mineru_parser.py_read_output 的实现,加入对 autovlmmethod 子目录的 fallback 查找逻辑。此步骤需要代码能力,且重启后可能被容器覆盖。

验证方法

重新提交之前失败的 PDF 解析任务,观察日志不再出现 [MinerU] Missing output file 错误,且能正常生成 chunk。可同时测试 ASCII 和非 ASCII 文件名的 PDF,确保均可顺利解析。

参考来源

infiniflow/ragflow #11691 – [Question]: [MinerU] Output directory

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 15788

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注