docling 完全指南:3 行代码完成多格式文档解析与 Markdown 转换

docling 完全指南:3 行代码完成多格式文档解析与 Markdown 转换 docling 完全指南3 行代码完成多格式文档解析与 Markdown 转换【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling如果你正准备搭一套 RAG 系统而语料里混着扫描版论文、Word 合同和 Excel 台账第一件事大概就是把它们统一变成带结构的 Markdown。docling 做的就是这件事它是一个支持多格式文档解析与文档转换的开源工具把 PDF、DOCX、HTML 等输入统一读入同一个 DoclingDocument 数据模型再按需导出为 Markdown、HTML 或无损 JSON。以下内容基于仓库内 README、docs 目录与源码整理类名与参数均可在对应路径中找到。3 行代码跑通第一次 docling 入门转换安装很简单pip install docling需要 Python 3.10 及以上。最小可运行示例如下from docling.document_converter import DocumentConverter converter DocumentConverter() result converter.convert(thesis_scan.pdf) print(result.document.export_to_markdown())输出的是一段带标题层级、列表与表格结构的 Markdown 字符串官方 README 里给出的样例输出以## Docling Technical Report[...]开头。不想写 Python 的话终端里执行docling 文件名也能直接在当前目录生成 .md 文件。格式支持速览从 PDF 解析到音视频完整清单见 docs/usage/supported_formats.md这里按输入格式归纳输入格式常用输出典型场景PDF含扫描件Markdown、JSON、HTML学术论文解析、扫描件 OCRDOCX / PPTX / XLSXMarkdown、JSON办公报告摘要与入库HTML、Markdown、AsciiDoc、LaTeXMarkdown、DocLang网页抓取内容、排版文档转换PNG / JPEG / TIFF / WEBPMarkdown、JSON图片扫描件数字化WAV / MP3、MP4 等音视频文本、WebVTT会议录音、视频字幕转写USPTO / JATS / XBRL 等 XMLMarkdown、JSON专利、期刊、财报解析输出侧除 Markdown 与 HTML 外还有无损 JSON、Doctags 以及面向 RAG 的 ChunksJSONL也就是说分块这一步可以交给 docling 自己做。工作原理一套统一文档模型几条可插拔管道设计思路是“后端 管道”两层每个格式有自己的后端位于 docling/backend/负责把原始文件读出来而管道负责跑模型阶段。PDF 走 StandardPdfPipeline依次完成布局分析、OCR、表格结构等步骤且支持线程化流水线并行Word、HTML 这类本身就有结构信息的格式走 SimplePipeline直读即可。两条线的终点都是同一个 DoclingDocument它用树状结构记录页面、段落、表格与图片导出方法就挂在上面。文本条目还带有置信度机制见 docs/concepts/confidence_scores.md。docling 表格识别与 OCR 的关键开关一览表PDF 相关格式的行为由PdfPipelineOptions控制定义在 docling/datamodel/pipeline_options.py几个最值得知道的开关参数作用何时开启do_ocr对页面执行 OCR默认 True扫描件必须开纯数字 PDF 可关掉以省时do_table_structure检测表格并重建行列结构默认 True财报、论文表格类文档保持开启do_formula_enrichment公式识别并转 LaTeX默认 False解析含公式的学术论文时开启do_code_enrichment面向代码块的感知处理默认 False文档含大量代码或终端输出时开启images_scale生成图片的缩放倍数默认 1.0需要放大图表给下游视觉模型时调高只针对 PDF 调整配置from docling.datamodel.base_models import InputFormat from docling.datamodel.pipeline_options import PdfPipelineOptions from docling.document_converter import DocumentConverter, PdfFormatOption pdf_opts PdfPipelineOptions(do_ocrTrue, do_formula_enrichmentTrue) converter DocumentConverter( format_options{InputFormat.PDF: PdfFormatOption(pipeline_optionspdf_opts)} )OCR 引擎与表格模型细节还可以继续调ocr_options、table_structure_options两个子对象。docling RAG 集成接 LangChain 与 LlamaIndexLangChain 侧有官方扩展 DoclingLoader加载文档几行搞定from langchain_docling import DoclingLoader loader DoclingLoader(file_paththesis_scan.pdf) pages loader.load()LlamaIndex 侧拆成 Reader 与 Node Parser 两个组件前者读文件后者利用文档结构切出适合 embedding 的节点from llama_index.readers.docling import DoclingReader documents DoclingReader().load_data(file_pathreport.docx)集成文档见 docs/integrations/langchain.md。除此之外docling 自带 docling/chunking/ 分块模块可以直接对 DoclingDocument 生成层级式分块配合 JSONL 输出即可跳过下游框架的分块逻辑。仓库 examples 目录下的 rag_langchain.ipynb、rag_llamaindex.ipynb 给了完整可复现的 RAG 链路。生产环境建议本地化、敏感数据与批量重试全程本地运行模型权重下载到本地推理在自有 CPU/GPU 上完成适合处理敏感材料离线环境可把预置权重目录配到artifacts_path避免运行时联网。批量容错用convert_all(paths, raises_on_errorFalse)单个文件失败不会中断整批失败结果里带ConversionResult.status与错误明细方便记录后重试。资源护栏convert与convert_all都支持max_num_pages、max_file_size防止个别超大文件拖垮进程官方建议在批处理系统里再叠加文档级超时保护。横向扩展docling-serve 可以把转换能力部署成 HTTP 服务见 docs/usage/api_server/配套的客户端 SDK 在 docling/service_client/。模型增强是可选的图片描述、图表理解等 enrichment 能力按需开启详见 docs/usage/enrichments.md。常见问题扫描版 PDF 转出来为什么没有文字或很乱扫描件没有文本层需要保证do_ocrTrue且 OCR 引擎Tesseract、EasyOCR 等已正确安装管道会对缺文本层的页面自动走 OCR 补全。导出的 Markdown 里表格结构不对怎么排查表格是由结构模型重建的合并单元格多的复杂表格容易出错。可以换更准的表格模型table_structure_options或开启generate_page_imagesTrue后调用TableItem.get_image()导出表格原图人工核对。遇到 docling 不支持的格式会怎样不会静默通过默认raises_on_errorTrue时直接抛 ConversionError关掉后结果状态为 SKIPPED 或 FAILURE并在 errors 里写明原因。用allowed_formats白名单还能提前拦掉无关格式。写在最后docling 擅长的是把异构格式归一到一套结构化模型再稳定地导出 Markdown 或 JSON其中 PDF 的表格与公式理解在同类工具里完成度较高它不擅长的是内容层面的问答与摘要这部分仍需交给下游大模型。项目后续还会继续补充元数据抽取、化学结构理解等能力文档解析链路本身仍在快速迭代。【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考