当所有大模型都开始“吃“PDF,谁才能真正读懂它?
——OpenAI、Gemini、Claude、Mistral 的文档解析能力横评以及为什么专业工具还没被取代一、一场突然涌现的文档解析大战2025 年开始主流大模型厂商几乎同时发力文档解析OpenAIResponses API 和 Chat Completions API 直接支持 PDF 文件输入模型自动提取文本图像Google Gemini原生视觉处理 PDF支持最多 3600 页可输出结构化 JSONAnthropic Claude支持直接上传 PDF处理图文混合文档Mistral发布独立的 mistral-ocr-latest 模型专攻 OCR支持 PDF/PPTX/DOCX声称准确率 95%听起来很美好——随便找个大模型 API扔进去一个 PDF就能提取内容了。但这件事真的没那么简单。二、先搞懂一件事PDF 本身是个坑很多人不知道PDF 的本质是一张设计图纸不是文档。它存储的是每个字符的 坐标、字体、大小而不是这段是标题、这块是表格、这里是公式。所以视觉上整齐的表格 → 底层可能是一堆坐标对齐的碎字符多栏文字 → 提取出来可能是乱序的扫描版 PDF → 根本没有文本层只是一张图数学公式 → 以特殊字体存储极易变成乱码这就是为什么即便再强的 AI在文档解析上也会翻车。三、主流大模型的解析能力横评OpenAI Responses API怎么用from openai import OpenAI import base64 client OpenAI() # 方式一上传文件获取 file_id with open(report.pdf, rb) as f: file client.files.create(filef, purposeuser_data) response client.responses.create( modelgpt-4o, input[{ role: user, content: [ {type: input_file, file_id: file.id}, {type: input_text, text: 请提取文档中所有表格数据输出为 JSON} ] }] ) print(response.output_text)实际表现✅ 集成简单适合快速做文档问答⚠️ 表格提取不稳定单元格内容会串行❌ 存在静默截断——文档内容超过约 30-60KB 后模型不报错但实际上没读完社区已多次反馈❌ 仅支持 PDF不支持 DOCX/PPTX/XLSXGoogle Gemini怎么用import google.generativeai as genai genai.configure(api_keyYOUR_API_KEY) # 上传 PDF uploaded_file genai.upload_file(financial_report.pdf, mime_typeapplication/pdf) model genai.GenerativeModel(gemini-1.5-pro) response model.generate_content([ uploaded_file, 提取文档中的所有财务指标输出为结构化 JSON ]) print(response.text)实际表现✅ 支持最多 3600 页是目前上限最高的✅ 可以直接输出结构化 JSON配合 response_mime_type⚠️ 处理中文复杂排版时容易丢失层级结构⚠️ 公式识别依赖视觉能力LaTeX 输出质量不稳定❌ 每次调用都重新解析没有缓存成本随文档大小线性增长Anthropic Claudeimport anthropic import base64 client anthropic.Anthropic() with open(contract.pdf, rb) as f: pdf_data base64.standard_b64encode(f.read()).decode(utf-8) response client.messages.create( modelclaude-opus-4-5, max_tokens4096, messages[{ role: user, content: [ { type: document, source: { type: base64, media_type: application/pdf, data: pdf_data } }, {type: text, text: 提取合同中的关键条款列出甲乙双方义务} ] }] ) print(response.content[0].text)实际表现✅ 理解长文档的语义能力强适合合同/报告摘要✅ 处理非结构化文档时效果相对稳定⚠️ 精确的表格提取要求字段一一对应容易出错❌ 同样存在大文档截断问题❌ 无法直接输出 Markdown 结构化文档Mistral OCR最接近专业解析的大模型方案这个值得单独说。Mistral 没有把文档解析塞进通用对话 API而是独立开了一个 OCR 端点import os from mistralai import Mistral client Mistral(api_keyos.environ[MISTRAL_API_KEY]) # 直接传 URL ocr_response client.ocr.process( modelmistral-ocr-latest, document{ type: document_url, document_url: https://arxiv.org/pdf/2201.04234 }, include_image_base64True ) # 输出结构化 Markdown for page in ocr_response.pages: print(f--- 第 {page.index 1} 页 ---) print(page.markdown)实际表现✅ 输出是干净的 Markdown不是模型的理解是真实的文档结构✅ 支持 PDF、PPTX、DOCX格式最全✅ 表格、公式处理相对稳定官方声称准确率 95%⚠️ 对中文复杂排版的支持还在完善中❌ 付费 API成本不低四、大模型解析的本质局限把上面四个对比完你会发现一个规律越是通用的大模型文档解析越像理解文档而不是解析文档。这不是坏事——但它意味着输出是模型的解释不是文档的原始结构同一个文档两次调用可能得到不同的输出文档中的错误乱码、扫描噪声可能被模型脑补填补看起来对但实际上是幻觉对于 RAG、知识库构建、批量文档入库这类场景你需要的是确定性不是智能猜测。五、MinerU做解析这件事不做理解MinerU 是上海 AI 实验室 OpenDataLab 团队开源的文档解析工具GitHub 20K star设计哲学和上面所有大模型都不同——它不回答问题它只把文档变成干净的结构化数据。from magic_pdf.data.data_reader_writer import FileBasedDataWriter, FileBasedDataReader from magic_pdf.data.dataset import PymuDocDataset from magic_pdf.model.doc_analyze_by_custom_model import doc_analyze from magic_pdf.config.enums import SupportedPdfParseMethod 读取 PDF reader FileBasedDataReader() pdf_bytes reader.read(research_paper.pdf) 解析 ds PymuDocDataset(pdf_bytes) infer_result ds.apply(doc_analyze, ocrFalse) 输出 Markdown md_writer FileBasedDataWriter(output/) pipe_result infer_result.pipe_txt_mode(md_writer) pipe_result.dump_md(md_writer, output.md, images/) **命令行最简单** bash 单文件 mineru -p research_paper.pdf -o ./output 批量处理整个文件夹 mineru -p ./papers/ -o ./output_all 强制 OCR 模式扫描版文档 mineru -p scanned_doc.pdf -o ./output -m ocr **输出效果** output/ ├── research_paper.md # 干净的 Markdown 正文 ├── research_paper_content_list.json # 结构化 JSON标题/段落/表格/图片 └── images/ # 提取的图片 ├── figure_1.png └── table_1.html # 复杂表格以 HTML 形式保存接入 RAGLangChain 一行搞定python from langchain_mineru import MinerULoader loader MinerULoader(company_report.pdf) documents loader.load() documents 已经是干净的 Document 对象直接喂给向量库 from langchain_community.vectorstores import Chroma vectorstore Chroma.from_documents(documents, embedding)MinerU 解析的核心优势六、最佳实践组合用不要二选一其实最好的文档 AI 管道不是非此即彼的选择而是原始 PDF ↓ MinerU 解析结构化确定性 ↓ 干净的 Markdown / JSON ↓ GPT-4o / Gemini / Claude语义理解回答问题 ↓ 用户得到高质量答案用专业工具做解析用大模型做理解。两者分工各司其职。这才是 2026 年以后做文档 AI 的正确姿势。 MinerU 开源地址github.com/opendatalab/MinerU Apache 2.0 协议免费商用支持本地部署GitHub 60K star