ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

docling 实战指南:把 30 多种文档格式转换成 AI 可用的数据

docling 实战指南:把 30 多种文档格式转换成 AI 可用的数据 docling 实战指南把 30 多种文档格式转换成 AI 可用的数据【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling你收到一份两百页的扫描件里面夹着表格和公式直接扔给大模型效果往往不理想。docling 正是解决这个问题的文档预处理工具箱它把 PDF、Word、Excel、HTML 等格式统一解析成同一套内部文档模型再导出为 Markdown、HTML 或无损 JSON顺带完成版面分析、表格重建与 OCR。项目速览docling 到底做什么docling 的定位是文档进、AI 可用数据出。它的核心是一个统一文档表示DoclingDocument不管源文件是什么格式解析结果都落到这个结构上包含标题层级、表格单元格关系、公式、图片位置等信息。有了这层统一表示下游无论是喂给大模型、做 RAG 检索还是生成网页展示都只需对接一套接口而不是为每种格式写一套解析逻辑。整套流程完全可以在本机运行敏感数据不必外传。能力清单输入侧与输出侧输入侧常见格式 办公文档PDF、DOCX/XLSX/PPTX以及旧版二进制 Office 格式、ODT/ODS/ODP 网页与标记HTML、Markdown、AsciiDoc、LaTeX、EPUB️ 图片与媒体PNG、JPEG、TIFF、WEBP音频和视频需 ASR 组件️ 垂直领域 XMLUSPTO 专利、JATS 期刊论文、XBRL 财务报告以及邮件EML/MSG输出侧Markdown最常用于喂给大模型HTML支持图片内嵌或引用JSONDoclingDocument 的无损序列化保留全部结构信息纯文本 / Doctags一种紧凑表示版面特征的标记格式/ WebVTT核心处理能力版面分析与阅读顺序推断、表格结构提取与重建、OCR内置 Tesseract、EasyOCR、RapidOCR 等多种引擎可切换、公式转 LaTeX、代码块增强、图片分类与描述生成还可选用视觉语言模型VLM即能看图说话的大模型走--pipeline vlm路线重新解析页面。上手三步安装、跑一个文件、命令行速查第一步 安装一行命令装好需要 Python 3.10 及以上pip install docling第二步 最小可运行示例下面这段代码把一份本地 PDF 转成 Markdown是整个库最典型的用法from docling.document_converter import DocumentConverter source ./example.pdf result DocumentConverter().convert(source) print(result.document.export_to_markdown()[:500]) # 预览前 500 字符result.document就是那个统一文档模型save_as_json()、save_as_html()等辅助方法可直接落盘。第三步 命令行速查如果你不想写 Pythondocling自带 CLI常用参数如下docling example.pdf # 默认解析输出 Markdown 到当前目录 docling --to html example.docx --output out/ # 指定导出格式与目录 docling --pipeline vlm --vlm-model granite_docling example.pdf # 用 VLM 解析 docling --help # 查看完整参数流水线拆解从输入文件到导出一次转换实际经历五个环节你只需要知道各阶段在哪里配置路由DocumentConverter根据文件扩展名挑选对应的后端解析器PDF 走docling/backend/下的解析后端。版面与内容检测版面模型在页面上切出文本块、表格、图片、公式等区域并推断阅读顺序。逐项解析表格结构模型还原行列与单元格归属扫描件或图像区域交给 OCR 引擎识别文字启用后公式与代码块还会做专门增强。页面组装把各区域结果按顺序拼成 DoclingDocument标题层级在此确定。导出调用export_to_*/save_as_*得到 Markdown、HTML、JSON 等产物。每个环节都有开关。以 PDF 为例PdfPipelineOptions里的do_ocr、do_table_structure、do_code_enrichment、do_formula_enrichment分别控制后四个阶段中的能力按需关闭可以明显缩短处理时间定义见 docling/datamodel/pipeline_options.py。场景实战两个常见需求场景一 批量转换整个目录问题仓库里几十个 PDF 要逐一处理手工循环既慢又难容错。做法用convert_all一次传入路径列表并设raises_on_errorFalse让个别失败不中断整批完整示范可参考 docs/examples/batch_convert.py。import logging from pathlib import Path from docling.datamodel.base_models import ConversionStatus from docling.document_converter import DocumentConverter logging.basicConfig(levellogging.INFO) paths [Path(inbox) / f for f in Path(inbox).glob(*.pdf)] results DocumentConverter().convert_all(paths, raises_on_errorFalse) for r in results: if r.status ConversionStatus.SUCCESS: out Path(out) / f{r.input.file.stem}.md out.parent.mkdir(exist_okTrue) out.write_text(r.document.export_to_markdown(), encodingutf-8)场景二 多语言扫描件与离线部署问题扫描件没有文字层默认输出缺字漏行生产环境又不允许联网下载模型。做法确认 OCR 开启并选对语言代码不同引擎的编码格式不同Tesseract 用三字母码如chi_sim、engEasyOCR 用zh、en这类 ISO 639-1 码离线时把权重预先放到机器上用artifacts_path指过去即可。from docling.datamodel.pipeline_options import PdfPipelineOptions options PdfPipelineOptions() options.do_ocr True options.ocr_options.lang [chi_sim, eng] # 中英文混排 options.artifacts_path /data/models/docling-artifacts # 本地权重 from docling.document_converter import DocumentConverter result DocumentConverter( format_options{pdf: {pipeline_options: options}} ).convert(scanned.pdf)这里注意换 OCR 引擎如 EasyOCR时lang的取值规则要跟着换否则识别结果会异常。排障手册高频问题速查现象安装时报 numpy 版本冲突版本求解失败。可能原因旧版 docling 对 Python 3.13 要求 numpy 2.x与其他依赖锁定的 1.x 冲突。解法升级到新版 docling已放宽为 numpy1.24.4,3.0.0受限时可pip install docling numpy2.0.0或在pyproject.toml中按 Python 版本用 markers 分别声明 numpy 区间。现象容器里运行报ImportError: libGL.so.1: cannot open shared object file。可能原因第三方依赖引入了需要 OpenGL 的opencv-python而精简镜像里没有图形库。解法改用opencv-python-headless替代或为系统安装图形库依赖包。现象转换结果里表格丢了或图片位置的文字整段缺失。可能原因对应阶段被手动关闭或扫描件未走 OCR表格复杂时也可能是表格结构模型的置信度不足。解法检查PdfPipelineOptions中do_table_structure、do_ocr是否为 True必要时打开settings.debug.visualize_tables True之类的调试开关看版面检测中间结果定位问题。更多问题可查 docs/faq/index.md。docling 把格式五花八门这一层复杂性挡在了统一文档模型之后你只需关心导出哪份产物、打开哪些处理开关。需要深入时官方文档在 docs/可直接运行的示例集在 docs/examples/。【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表