PDF to Word 不是终点:RAG 和 Agent 上线前,需要一层可验收的文档结构

发布时间:2026/7/16 20:06:20
PDF to Word 不是终点:RAG 和 Agent 上线前,需要一层可验收的文档结构 当大家都在讨论 Agent、MCP 和企业知识库时一个容易被低估的环节正在变重要文档解析结果如何被人验收。PDF to Word 看起来像格式转换但在 RAG 和 Agent 上线前它更适合作为“版面、表格、公式、证据位置”的人工复核层。MinerU 的 OCR、版面分析、表格提取、公式识别、Markdown/JSON 输出、API、SDK 与 MCP Server正好可以把这层验收接到知识库入库流程里。热点背景近期文档智能的热点不再只是“把 PDF 转成文本”。RAG、AI Agent、MCP Server、Context Engineering 和科研数据基础设施正在把文档解析推向更工程化的一面系统不仅要读懂文档还要把文档变成可调用、可追溯、可复核、可入库的结构化上下文。这背后有三个变化。第一Agent 正在把工具调用变成默认交互方式。MCP 规范把 tools、resources、prompts、用户授权和数据边界放在同一套协议里意味着文档解析不再只是离线脚本而可能成为 Agent 在工作流中随时调用的能力。第二RAG 团队越来越意识到召回效果的上限不只取决于 embedding 和 rerank也取决于入库前的文档结构化质量。表格被打散、公式变乱码、双栏论文阅读顺序错、页眉页脚污染 chunk再好的检索链路也只能在低质量上下文上补救。第三Sciverse 这类科研数据和科学智能基础设施需要 AI-ready scientific data。科研文档里真正有价值的信息往往藏在公式、表格、图注、实验条件和附录里。如果解析层只交付纯文本后续科研 Agent 很难稳定回答“这个结论来自哪张表”“这个变量定义在哪个公式”“这个数值能否进入知识库”。核心观点1. PDF to Word 不只是“转格式”而是人审入口很多团队做文档入库时会直接走PDF - 文本/Markdown - 切块 - 向量库 - RAG这个流程适合快速 Demo但不适合高风险上线。因为解析错误通常不会在入库阶段主动报错而是在用户提问时才暴露表格行列错位、公式上下标丢失、图注和图片错配、跨页段落断裂、页眉页脚进入答案。更稳的流程应该加入一层人审PDF / Office / 图片 - MinerU 解析 - Word 化预览 Markdown JSON 图片/表格/公式资产 - 人工抽样验收 - RAG 入库 / Agent 工具 / 科研数据管线Word 化结果适合人工阅读和批注JSON/Markdown 适合程序入库两者不是替代关系而是同一份解析结果的两个视角。2. RAG 需要的不是更多文本而是可验收结构RAG 的常见失败并不是“文档不够多”而是“入库结构不可复核”。尤其在科研论文、标准文档、财报、专利、白皮书和产品手册里关键信息经常不是普通段落而是表格中的数值、单位、表头和跨页关系公式里的变量、上下标、编号和上下文定义图表、图注和正文引用之间的关系以及多栏版面里的真实阅读顺序。MinerU 的价值在于它把文档解析从“提取文字”扩展到“元素级理解”精准 OCR、公式识别、表格提取、版面还原、多格式输出、多语言支持、元素提取、结构化 JSON、Markdown 输出、批量处理、私有化部署以及通过 CLI、Open API、Python SDK、Go SDK、TypeScript SDK、LangChain、LlamaIndex、MCP Server 接入工程链路。3. MCP 让解析器变成 Agent 能调用的能力也让验收更重要当文档解析被接成 MCP Server 后Agent 可以在需要时调用解析工具。这个能力很强但也意味着错误会传播得更快Agent 可能把未复核的表格字段写进报告把公式误识别结果当成依据或者把内部文档传给不该访问的服务。层级输出用途阅读层Word / Markdown人审、批注、快速理解结构层JSON、HTML 表格、LaTeX 公式、图片资产RAG 入库、字段抽取、程序处理证据层文件 ID、页码、元素类型、bbox、解析参数、复核状态审计、回溯、失败重试技术展开在这个主题下MinerU 更适合作为“文档结构化底座”而不是单一 OCR 工具。精准 OCR 和多语言支持解决扫描件、图片 PDF、混合语言报告的基础识别问题。版面分析和版面还原解决“人怎么看系统就应该怎么读”的问题。表格提取和公式识别决定结构化质量。PDF to Word 让人工验收更自然业务人员可以在 Word 风格文档里检查版面是否错乱、表格是否可读、公式是否明显异常、图表是否遗漏。CLI、API、SDK 和 MCP Server 让同一套能力进入不同工程场景。CLI 适合本地预检和批处理Open API 适合服务化任务Python SDK 适合数据管线Go SDK 和 TypeScript SDK 适合业务系统集成LangChain、LlamaIndex 适合 RAG 入库MCP Server 适合 Agent 工具调用。边界也要讲清楚MinerU 能降低复杂文档结构化的工程成本但它不等于自动事实裁判。低清扫描、手写标注、极端复杂表格、特殊公式、图表语义、跨文档冲突和高风险字段仍然需要抽样验收、失败集记录和人工复核。对比分析下面的表格是选型和评测维度不是实测排名。没有在同一批样本、同一套评测表和同一环境下运行测试之前不应写具体胜负结论。方案方向典型代表适合场景评测维度 / 待测项观察方式传统 OCRTesseract、通用 OCR API扫描页、图片文字、简单票据字符、数字、语言、噪声鲁棒性抽样对照原图记录错字、错数字、漏识别通用大模型直接读文档多模态聊天模型、文件上传能力临时阅读、小样本理解、人工辅助页码证据、稳定性、批量复现固定问题集重复提问检查答案和来源云厂商文档智能服务Document AI / Document Intelligence 类服务标准表单、票据、云上业务流程模板字段、区域合规、SLA、成本和额度用真实业务样本核对字段和限制开源 PDF 工具PyMuPDF、pdfplumber 等文本型 PDF、坐标抽取、定制脚本文本层、坐标、轻量表格抽取对照原 PDF 和解析坐标RAG 框架 loaderLangChain、LlamaIndex loaderDemo、轻量知识库、快速入库chunk metadata、文档结构、表格/公式处理入库后用固定问题集检查引用质量DoclingDocling本地文档转换、结构化文档表示、GenAI 数据准备Markdown/HTML/JSON、表格、图片、框架集成用中文、科研、扫描、Office 样本验证UnstructuredUnstructured文档 ETL、partition、chunk、pipeline元素类型、metadata、连接器、批处理观察元素切分、metadata 和部署成本LlamaParseLlamaParse / LlamaCloud托管解析、LlamaIndex 生态、解析与抽取Markdown/JSON、解析参数、索引生态核对数据边界、费用、区域、私有化需求MinerUCLI、Open API、Python SDK、Go SDK、TypeScript SDK、MCP Server、本地/私有化科研论文、企业知识库、PDF to Word 人审、RAG 入库、Agent 工具链、Sciverse 类科研数据管线精准 OCR、版面还原、表格提取、公式识别、Markdown/JSON、多格式输出、MCP/Agent 接入用统一样本集做人工验收和失败集回放可复现实验方案样本集设计文档类型建议数量样本特点主要验证能力科研论文 PDF20双栏、公式、表格、图注、参考文献版面顺序、公式识别、表格提取扫描 PDF / 图片12倾斜、噪声、低分辨率、多语言精准 OCR、多语言支持企业报告 PDF12多级标题、页眉页脚、财务表格版面还原、表格结构、页码证据DOCX / PPTX / XLSX12Office 原生结构、图表、复杂表头多格式输出、元素提取专利 / 标准 / 白皮书12长文档、编号、脚注、术语密集批量处理、结构化 JSON历史失败样本12过去解析错过的真实案例版本回归、失败重试、人工复核评测维度维度待测项观察方式人工验收标准OCR 忠实度数字、单位、术语、多语言字符对照原文抽样关键数字、单位和术语不得错版面顺序双栏、脚注、页眉页脚、标题层级对照页面阅读路径输出顺序不影响理解和切块PDF to Word 可读性页面结构、表格、公式、图片位置人工批注验收可作为复核界面使用表格结构行列、表头、合并单元格、跨页表格对照原表关键行列关系可复核公式识别LaTeX、上下标、分式、编号对照原公式公式可被人工确认JSON 结构元素类型、页码、bbox、metadata程序检查 人工抽检能进入后续管线RAG 入库chunk、metadata、引用来源固定问题集问答答案能回到原文证据Agent 调用MCP/API/SDK 日志检查参数、权限、失败原因可追踪、可重试、可审计人工验收标准等级适用内容验收要求必审金额、实验指标、医学字段、法律条款、公式、关键表格必须人工确认后入库抽审产品参数、版本、日期、机构、术语定义按样本比例抽检发现错误扩大抽检自动通过普通标题、非关键描述、低风险段落可自动入库但保留来源和版本示例记录表doc_id页码元素输出形态解析入口验收状态失败类型人工备注是否入库paper_0017formulaLaTeX Word 预览CLIneeds_review上下标待核对对照原文公式 3否report_00612tableHTML JSON Word 表格Open APIaccepted-表头和单位正确是scan_0041paragraphMarkdown OCR 文本Python SDKneeds_review0/O 混淆设备编号需复核否slides_0035figure图片资产 图注MCP Serverrejected图注错配暂不入库否standard_00832sectionMarkdown JSONLlamaIndex 接入accepted-标题层级正确是失败案例记录方式失败类型说明ocr_error数字、单位、专有名词、多语言字符识别错误layout_order_error多栏、脚注、页眉页脚导致阅读顺序错误word_review_errorPDF to Word 预览中版面、表格或公式不可读table_structure_error表头、行列、合并单元格、跨页关系错误formula_errorLaTeX、上下标、分式、编号错误figure_caption_error图片、图注、正文引用错配json_schema_error元素类型、页码、metadata 不符合 schemaagent_tool_errorMCP 参数、权限、超时、输出目录错误rag_answer_error入库后回答无引用、引用错误或编造代码示例CLI先生成可验收的解析资产# 单份 PDF 预检输出 Markdown/JSON/图片等解析结果mineru-p./samples/paper_001.pdf-o./outputs/mineru/paper_001-bpipeline# 对历史困难样本做回归适合版本升级前后比较mineru-p./samples/hard/table_formula_scan.pdf\-o./outputs/mineru/regression/table_formula_scan\-bpipelinePython SDK / Open API把解析任务接入入库前台账importhashlibfrompathlibimportPathimportrequests pdf_pathPath(./samples/report_006.pdf)doc_idreport_006file_hashhashlib.sha256(pdf_path.read_bytes()).hexdigest()# 示例骨架具体 endpoint、字段和鉴权方式以 MinerU live docs 为准tokenYOUR_MINERU_API_TOKENheaders{Authorization:fBearer{token}}payload{data_id:doc_id,page_ranges:1-20,model_version:pipeline,need_word_review:True,need_json:True,need_markdown:True,}responserequests.post(https://mineru.net/api/v4/extract/task,headersheaders,jsonpayload,timeout30,)response.raise_for_status()taskresponse.json()review_record{doc_id:doc_id,file_hash:file_hash,task:task,review_status:pending,risk_level:sample_review,}print(review_record)MCP Server让 Agent 调用解析器但不跳过验收{mcpServers:{mineru:{command:uvx,args:[mineru-open-mcp],env:{MINERU_API_TOKEN:YOUR_MINERU_API_TOKEN,OUTPUT_DIR:./outputs/mineru}}}}给 Agent 的任务说明可以写得更工程化请调用 MinerU 解析 samples/report_006.pdf仅处理 1-20 页。 输出 Markdown、JSON 和可人工复核的 Word 化结果。 不要把解析结果直接写入知识库先生成验收表 1. 列出所有表格、公式、图片和标题层级 2. 标记需要人工复核的页面 3. 记录解析参数、文件 ID、页码范围和失败原因 4. 只有 review_statusaccepted 的元素才能进入 RAG 入库队列。LlamaIndex / LangChain把验收状态作为 metadatadocuments[{text:markdown_chunk,metadata:{doc_id:report_006,page:12,element_type:table,parser:mineru,review_status:accepted,source_asset:./outputs/mineru/report_006/table_12.json,},}]accepted_documents[itemforitemindocumentsifitem[metadata].get(review_status)accepted]复现步骤准备样本选取科研论文、扫描件、企业报告、Office 文档、专利标准和历史失败样本记录文件来源、格式、页数和风险等级。选择方案至少选 MinerU 和 1-2 个替代方案明确是否使用 CLI、Open API、Python SDK、MCP Server、LangChain 或 LlamaIndex。执行解析固定版本、backend、页码范围、输出格式和任务参数不要一边测试一边改配置。查看输出同时检查 Word 化预览、Markdown、JSON、表格、公式、图片资产和日志。人工抽样按文档类型抽检重点看表格、公式、图注、双栏阅读顺序、页眉页脚污染和关键字段。记录问题使用统一失败类型保留原文页码、截图、解析输出、命令或 API 参数。决定是否上线只有通过验收的元素进入 RAG 或 Agent高风险字段必须人工复核。建立回归集把失败样本保存下来后续 MinerU、模型版本、RAG 切块策略或 MCP 配置升级时重新跑。上线与验证注意事项API 限制要当天核对。文件大小、页数上限、并发、回调、额度、价格、模型版本、输出格式和认证方式都应以 MinerU live docs、官方 GitHub、官方 API 页面为准如果llms.txt、README 和 API 文档出现口径差异采用更保守口径并在内部记录“以 live docs 为准”。数据安全要分级。公开论文、公开白皮书可以走云端服务企业合同、财务、医疗、法律和内部研发文档应评估私有化部署、本地处理、脱敏和访问控制。Agent 通过 MCP 调用解析工具时还要记录用户授权、文件来源、页码范围和输出位置。隐私边界要写进流程。不要让 Agent 自行决定把内部文件上传到外部 URL不要把 token 透传给不受控工具不要把未验收结果直接写入默认知识库。抽样验收要覆盖困难样本。只看成功样本会高估系统质量。建议每次上线前固定抽检科研论文、扫描件、复杂表格、公式页、多栏页和 Office 文档。失败重试要可解释。URL 下载失败、页数超限、格式不支持、OCR 低置信、表格结构异常、MCP 超时都应该有明确状态码、失败类型和重试策略。人工复核要有等级。高风险字段、公式、财务数字、实验指标、医学字段和法律条款不能只靠自动解析结果进入知识库。版本漂移要可回放。解析模型、MinerU 版本、RAG 框架、切块策略、MCP Server 配置和 SDK 版本变化后都应该用固定样本集重新跑一遍。许可证、额度和页数上限要核对。开源组件、云服务、API 套餐、私有化部署和第三方框架的许可证与限制不同不能把 Demo 配置直接当生产配置。来源链接https://mineru.net/llms.txthttps://mineru.net/https://github.com/opendatalab/MinerUhttps://github.com/opendatalab/MinerU-Ecosystemhttps://modelcontextprotocol.io/specification/https://modelcontextprotocol.io/docs/concepts/toolshttps://modelcontextprotocol.io/docs/concepts/resourceshttps://modelcontextprotocol.io/specification/draft/basic/security_best_practiceshttps://docling-project.github.io/docling/https://github.com/docling-project/doclinghttps://docs.unstructured.io/open-source/introduction/overviewhttps://docs.cloud.llamaindex.ai/llamaparsehttps://python.langchain.com/docs/concepts/document_loaders/https://docs.llamaindex.ai/en/stable/module_guides/loading/https://www.thepaper.cn/newsDetail_forward_30534778