ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Docling 文档解析:快速转换 PDF/DOCX/HTML 为结构化文档(完整指南)

Docling 文档解析:快速转换 PDF/DOCX/HTML 为结构化文档(完整指南) Docling 文档解析快速转换 PDF/DOCX/HTML 为结构化文档完整指南【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/doclingDocling 是一个文档解析库把 PDF、DOCX、HTML、XLSX 等文件解析为统一的 DoclingDocument 表示再导出为 Markdown、HTML、无损 JSON为把文档喂给大模型 RAG 做预处理。它可完全本地运行适合敏感数据的私有化部署。三分钟上手docling 安装与第一次文档解析安装只需一行需 Python 3.103.9 支持已在 2.70.0 移除pip install docling docling report.pdf # 在当前目录生成 report.mdCLI 直接可用无需写代码。Python 侧最短用法from docling.document_converter import DocumentConverter doc DocumentConverter().convert(report.pdf).document print(doc.export_to_markdown()) # 带标题层级与表格的 Markdown注意首次解析 PDF 会联网下载布局、表格等 AI 模型权重约数百 MB。完整安装说明见 docs/getting_started/quickstart.md。内部原理docling 从 PDF 页面到 DoclingDocument 的过程一次转换的主干流程如下用输入 → 输出描述输入一页含双栏文字和表格的 PDFStandardPdfPipeline 先检测版面上的文本单元格把跨栏的文本按阅读顺序串起来再识别表格的行列结构输出则是一段带##标题、表格语法、且顺序正确的 Markdown。中间的 DoclingDocumentdocling/document_converter.py 返回的核心对象保留每项内容的坐标框、父子层级和页眉页脚区分因此 JSON 导出是无损的后续可随时重新分块或换格式导出。DoclingDocument 的层级长这样左侧 YAML 里#/texts/1是标题 Swimming in the lake#/texts/2是图片 Figure 1右侧是原文档中对应位置的渲染效果——树结构直接编码了阅读顺序。能力边界docling 支持的格式与它不做的事输入输出能力来自 docs/usage/supported_formats.md类别支持内容备注输入办公/富文本PDF、DOCX/XLSX/PPTX、ODT/ODS/ODP、EPUB、Apple Pages、HTML、Markdown、LaTeX、CSVDOC/XLS/PPT 旧二进制格式需 LibreOffice输入多媒体PNG/JPEG/TIFF/WEBP 图像WAV/MP3 音频MP4/AVI/MOV 视频音视频需asr可选依赖 ffmpeg输入专用 XML/其他JATS、USPTO 专利、XBRL、DocLang、EBCDIC 大型机数据、EML/MSG 邮件、WebVTT按 schema 分别解析输出Markdown、HTML、无损 JSON、DocTags、纯文本、WebVTT、chunks JSONLRAG 分块分块类型/分词器可配它不做什么宣传文常不提的部分PDF 无法提取文字样式加粗/下划线只有 docx、html 等声明式后端保留样式Word/PPT 内嵌的 WMF 图片在非 Windows 平台上被忽略元数据抽取标题/作者/参考文献与化学结构理解尚未实现官方列为 roadmap它不是独立 OCR 引擎而是调度 EasyOCR、Tesseract、RapidOCR 等引擎各引擎支持的语言不同。常用场景docling 批量转换、私有化部署与 RAG 分块场景一批量转换后做 RAG 分块。仓库自带批量示例 docs/examples/batch_convert.py核心是转换 分块两步from docling.document_converter import DocumentConverter from docling.chunking import HybridChunker doc DocumentConverter().convert(report.pdf).document chunks HybridChunker().chunk(doc) # 按层级token 上限切分适配 embedding 模型场景二私有化离线部署。Docling 本身不调用任何远程服务只要把模型权重预先放到内网路径即可from docling.datamodel.pipeline_options import PdfPipelineOptions from docling.document_converter import DocumentConverter, PdfFormatOption from docling.datamodel.base_models import InputFormat opts PdfPipelineOptions(artifacts_path/models/docling-models) # 指向本地权重 converter DocumentConverter( format_options{InputFormat.PDF: PdfFormatOption(pipeline_optionsopts)} )场景三接入 AI 框架。DoclingDocument 可直接喂给 LangChain、LlamaIndex、Haystack、Crew AI 等生态避免各框架重复造解析轮子。常见坑与选型docling 安装报错、性能注意与替代方案⚠️ 高频问题详见 docs/faq/index.md首次下载权重报 SSL 证书错误环境 CA 证书过期pip install --upgrade certifi或设置REQUESTS_CA_BUNDLEmacOS Intel 装不上新版 PyTorch 已弃用 x86_64 Mac需pip install docling[mac_intel]固定 torch 2.2.2 numpy2.0Docker/VM 报libGL.so.1找不到换装opencv-python-headlessHybridChunker 的 transformers 超长序列警告属虚报以实际 chunk 的 token 数为准性能PDF 管线以 CPU 推理为主CLI 用--page-batch-size调批次默认 4 页GPU 可通过 AcceleratorOptions 开启 flash-attention2VLM 管线如 GraniteDocling质量更高但明显更慢。什么时候不该用它只从带文本层的 PDF 抠纯文本pdfplumber/PyMuPDF 这类轻量库更快更省资源——docling 的价值在于版面、阅读顺序、表格结构和统一文档模型。一句话对比同类工具相对 PyMuPDF/pdfplumberdocling 多的是 AI 版式理解与结构化能力相对 unstructureddocling 的表格结构恢复更强且 DoclingDocument 模型与框架生态更完整。收尾Docling 把多格式解析收敛为一条管线格式后端负责读入标准管线负责版面与表格DoclingDocument 负责统一表达导出与分块按需取用。它没有魔法——离线需要预置权重旧格式需要 LibreOffice性能开销主要来自模型推理。对需要把存量文档稳定送入 RAG 的场景它是目前工程化程度较高的选择之一。下一步跑通pip install docling docling 你的PDF检查生成的 Markdown 标题与表格是否符合预期再试 docs/examples/hybrid_chunking.ipynb 里的分块流程。【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表