尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Docling 完整教程:从 PDF 到 Markdown,三步把 20+ 种文档格式变成 AI 能读懂的样子

Docling 完整教程:从 PDF 到 Markdown,三步把 20+ 种文档格式变成 AI 能读懂的样子 Docling 完整教程从 PDF 到 Markdown三步把 20 种文档格式变成 AI 能读懂的样子【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling如果你要把企业里的 PDF、Word、PPT、HTML 甚至录音喂给大模型做 RAG第一步往往卡在文档读取上PDF 的表格被拆成碎片、Word 的层级结构丢了、扫描件纯靠运气。Docling 就是为这一层设计的开源文档解析引擎——它把 20 多种格式的文档统一解析成同一个结构化模型DoclingDocument再按需导出成 Markdown、JSON、HTML 等 AI 友好格式而且整条链路默认全部在本地运行数据不出机器。先看效果。下面这段 6 行代码能把任意 PDF 变成一个带完整结构的 Markdown 文档from docling.document_converter import DocumentConverter source report.pdf # 本地路径或 URL 都可以 converter DocumentConverter() doc converter.convert(source).document print(doc.export_to_markdown())输出不是简单的一坨纯文本而是保留了标题层级、表格以 Markdown 表格形式还原、公式和列表的结构化内容。这就是 Docling 文档解析的核心卖点格式进结构出。它是什么文档与生成式 AI 之间的入口层Docling 的定位可以一句话概括为生成式 AI 准备文档项目官方描述即 Get your documents ready for gen AI。它不是 PDF 转文字的工具而是一个完整的文档理解引擎输入侧覆盖办公文档DOCX/XLSX/PPTX、ODF、老式 DOC/XLS/PPT、学术与标记格式LaTeX、HTML、Markdown、AsciiDoc、EPUB、数据文件CSV、图像PNG/JPEG/TIFF/WEBP走 OCR、音频与视频WAV/MP3/MP4 等走 ASR 转录以及专利USPTO、期刊JATS、财报XBRL等专用 XML schema输出侧支持 Markdown、HTML、无损 JSON、纯文本、DocTags、WebVTT以及直接面向 RAG 的 JSONL 分块中间层是统一文档模型DoclingDocument标题、段落、表格、公式、图片、页面几何信息都挂在同一棵结构树上分块、序列化、导出全部基于它完成。完整的支持矩阵见 docs/usage/supported_formats.md文档模型的设计思路见 docs/concepts/docling_document.md。能力维度Docling 的做法传统转文字工具的差距表格专用 TableFormer 模型还原行列结构导出为结构化表格多读成一堆错位文本列信息丢失阅读顺序版面分析后按人类阅读顺序重排双栏文档不乱跳按物理坐标硬读左右栏交错公式/代码独立识别阶段公式转 LaTeX通常直接丢弃扫描件多引擎 OCR 可选EasyOCR、RapidOCR、Tesseract 等要么不支持要么精度一般本地化模型全部本地推理支持离线与内网环境多数方案依赖云服务三步上手安装、CLI、Python安装只需一行支持 macOS、Linux、Windows 的 x86_64 与 arm64pip install docling如果更习惯源码方式也可以克隆仓库需 Python 3.102.70 起不再支持 3.9git clone https://gitcode.com/GitHub_Trending/do/docling部分功能以 extras 形式提供按需安装比如pip install docling[vlm]装 VLM 管道依赖pip install docling[asr]装语音转录依赖完整列表在 docs/getting_started/installation.md。第一步用 CLI 转换一份 PDF。装完直接得到docling命令一条命令输出结构化 Markdown 到当前目录docling your_document.pdf想换视觉语言模型路线比如 GraniteDocling加两个参数即可docling --pipeline vlm --vlm-model granite_docling your_document.pdf第二步在 Python 里做同样的事。前面 6 行代码已经演示过默认管道如果你想同时拿到无损 JSON适合存档和二次加工result converter.convert(meeting_deck.pptx) md result.document.export_to_markdown() json_str result.document.export_to_json() # 无损序列化可再加载回 DoclingDocument第三步换个格式试试。同一个DocumentConverter不需要任何改动就能处理 DOCX、HTML、CSV、EPUB——格式识别和后端选择是自动的这也是它一个入口通吃多格式省心的地方。PDF 深度解析它比文字提取多做的那几件事对 PDF 这类版面复杂的输入Docling 走的是完整的版面理解流程而不只是读文字层版面检测识别页面上的文本块、表格区域、图片区域、公式区域阅读顺序判定把多栏、跨栏内容重排成符合人类阅读顺序的序列表格结构恢复TableFormer 模型推断行列与合并单元格输出带表头的结构化表格公式与代码识别公式转成 LaTeX代码块保留等宽结构图像分类与描述判断插图类型图表、照片、Logo可再接 VLM 生成描述。下面的示意图展示了解析后文档结构在层级上的组织方式——每个元素都知道自己属于哪一级标题之下想调整这些行为的开关都集中在PdfPipelineOptions上例如强制开启 OCR 或关闭公式识别来换速度from docling.datamodel.base_models import InputFormat from docling.datamodel.pipeline_options import PdfPipelineOptions from docling.document_converter import DocumentConverter, PdfFormatOption opts PdfPipelineOptions() opts.do_ocr True # 扫描件走 OCR opts.do_code_enrichment True # 开启代码块识别 converter DocumentConverter( format_options{InputFormat.PDF: PdfFormatOption(pipeline_optionsopts)} )解析结果中每个元素还可以附带置信度分数方便你在下游做质量过滤相关概念文档在 docs/concepts/confidence_scores.md。原理一瞥一份文档在 Docling 内部怎么流转不用深究源码也能建立心智模型整体链路是四段式对应代码组织上格式相关解析都在 docling/backend/每个格式一个后端类处理阶段版面、表格结构、OCR、阅读顺序、图表理解等都在 docling/models/stages/编排逻辑在 docling/pipeline/。官方架构全景图如下进阶技巧换 OCR 引擎、RAG 分块、离线部署技巧 1按场景挑 OCR 引擎。Docling 内置多引擎可切换扫描件质量差或语种特殊时值得换from docling.datamodel.pipeline_options import EasyOcrOptions opts PdfPipelineOptions() opts.do_ocr True opts.ocr_options EasyOcrOptions(lang[ch_sim, en]) # 中英混合扫描件引擎对照表Tesseract、RapidOCR、OcrMac、Nemotron 等见 docs/getting_started/installation.md 的 OCR engines 一节。技巧 2跳过自己写分块直接用原生 Chunker。接 RAG 时最常见的坑是分块把表格和标题切断。HybridChunker基于文档结构切分并做 token 感知的大小校正跨块的表格还会自动重复表头from docling.chunking import HybridChunker chunker HybridChunker() for chunk in chunker.chunk(doc): text chunker.contextualize(chunk) # 带上下文如所属标题的序列化文本 # 送进 embedding 模型即可三种分块器Hybrid / Hierarchical / LineBased的差异和适用场景见 docs/concepts/chunking.md 和配套示例 docs/examples/hybrid_chunking.ipynb。技巧 3内网与离线环境部署。模型默认首次使用时自动下载在 air-gapped 环境里先在有网机器上预取再指到本地路径docling-tools models download # 拉取全部默认模型到 ~/.cache/docling/modelsexport DOCLING_ARTIFACTS_PATH/local/path/to/models docling --artifacts-path/local/path/to/models your_document.pdf需要调用云端 OCR 或托管 LLM 时Docling 要求显式 opt-in 才会出网——本地优先、远程可选这对敏感数据场景是关键设计。细节见 docs/usage/advanced_options.md。生态集成接上你的 AI 框架Docling 的下游集成是即插即用级别官方维护了与主流框架的适配集成方式适用场景LangChain 的DoclingLoader在 LangChain 应用里直接加载已解析文档LlamaIndex 的DoclingReaderDoclingNodeParser构建 RAG 索引时保留结构信息Haystack、CrewAI、Kotaemon、txtai 等各类 Agent / RAG 框架的文档入口MCP Server让任意支持 MCP 的 Agent 直接调用文档解析API Serverdocling-serve把 Docling 作为 HTTP 服务跑供多客户端并发调用以 LangChain 为例加载后拿到的Document对象里已经带有 Docling 导出的结构化 Markdown可以直接接 embedding。集成清单与示例见 docs/integrations/index.md可运行的 RAG 示例LlamaIndex、Weaviate、Qdrant 等都放在 docs/examples/ 目录。边界与选型什么场景适合什么场景别硬上比较适合的场景把存量文档库批量变成 RAG 语料且对表格、标题层级质量有要求扫描件、老旧文档的数字化OCR 多引擎 版面重排数据合规要求严格、必须本地推理的企业环境输入格式很杂PDF 混 Word 混 HTML 混音频不想为每种格式单独写解析逻辑。需要权衡的场景只要纯文本、不要结构轻量方案直接抽文字层更省资源Docling 的模型管道是重装备大批量、超低延迟在线服务建议部署 API Server 并评估 GPU 吞吐单进程逐文件转换不是最优解首次运行要下载模型对首跑时间敏感的环境记得提前执行模型预取它输出的是结构化文档不做摘要、问答、抽取式总结这类理解任务——那是接在它下游的 LLM 的活。下一步从一份文档开始最快的验证方式是找一份难啃的文档——带双栏、带表格、最好还是扫描件的 PDF——跑一遍上面的 6 行代码重点看两处表格是否还原成了真正的表格阅读顺序是否通顺。这两点通过基本可以放心把它放进生产管线。项目路线图目前明确排了元数据提取标题、作者、参考文献、语言和复杂化学结构理解两项它由 IBM Research Zurich 发起现托管于 LF AI Data 基金会MIT 许可代码组织与贡献指南可参考 CONTRIBUTING.md。文档、示例和参考手册都在 docs/ 下建议从 docs/getting_started/quickstart.md 顺着读起。【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表