ARTICLE DETAIL

资讯详情

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

docling 文档解析如何用 3 行代码跑通:PDF、DOCX 转 Markdown 并直接喂给 RAG

docling 文档解析如何用 3 行代码跑通:PDF、DOCX 转 Markdown 并直接喂给 RAG docling 文档解析如何用 3 行代码跑通PDF、DOCX 转 Markdown 并直接喂给 RAG【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling给大模型喂一份 PDF输出却乱成一锅粥问题多半不在模型而在输入没处理好。docling 是一个本地优先的文档解析工具把 PDF、DOCX、HTML、扫描件、音频等 20 多种格式解析成统一的 DoclingDocument再用一行代码导出 Markdown 或 JSON直接用于 RAG 和生成式 AI 工作流。1. 3 分钟装好 docling 并完成第一次转换安装只需一条命令Python 3.10 及以上即可macOS、Linux、Windows 都支持。装完用 CLI 转换不用写一行代码pip install docling docling report.pdf # 同目录下生成 report.pdf.md想要更结构化的入口就用 Python API。官方推荐的写法在 quickstart 文档2. 解析结果落到哪认识统一中间表示 DoclingDocument不管输入是 PDF 还是 DOCXdocling 输出的都是同一个数据结构DoclingDocument。它用 pydantic 定义把文档拆成三类东西内容项texts段落、标题、公式、tables、pictures、key_value_items结构树body存正文的阅读顺序furniture存页眉页脚这类家具位置信息每个条目可带 bounding box 和来源页方便溯源和可视化。可以把它理解成一份文档的结构化病历正文、表格、图片各归其位顺序由body树决定而不是靠猜。下面这张图展示了一个 DOCX 转换后前几页在树里的嵌套关系字段细节见 DoclingDocument 概念文档。3. 转换器内部在做什么backend、pipeline 与模型的分工DocumentConverter对外只暴露一个convert()内部按三步走backend负责读懂原始格式每种格式一个实现代码都在 docling/backend/例如 PDF 有pdf_backend.pyDOCX 有msword_backend.pypipeline负责跑模型编排PDF 的标准管道会依次做版面分析、阅读顺序、表格结构识别等实现见 docling/pipeline/模型全部本地运行布局、表格结构TableFormer、OCR 各用一个专门模型。这套路由是可参数化的同一份 PDF你也可以换 backend 或换一套 pipeline 选项架构总览图在 architecture 文档4. 扫描件、代码、公式、图片开关怎么开默认管道只跑布局、阅读顺序和表格结构速度最快。遇到扫描页、论文里的公式、图片图表时再按需打开 enrichment 开关这些功能默认关闭因为每个都会增加模型推理时间from docling.document_converter import DocumentConverter, PdfFormatOption from docling.datamodel.base_models import InputFormat from docling.datamodel.pipeline_options import PdfPipelineOptions opts PdfPipelineOptions() opts.do_ocr True # 扫描页文字识别 opts.do_formula_enrichment True # 公式转 LaTeX opts.do_code_enrichment True # 代码块识别语言 conv DocumentConverter(format_options{InputFormat.PDF: PdfFormatOption(pipeline_optionsopts)}) print(conv.convert(report.pdf).document.export_to_markdown())常见开关速查完整说明在 enrichments 文档开关作用典型场景do_ocr识别扫描页/图片中的文字扫描发票、旧报纸do_code_enrichment识别代码块并标注语言技术白皮书do_formula_enrichment公式提取为 LaTeXHTML 导出时渲染学术论文do_picture_classification图片分类图表类型、流程图、logo 等行业报告do_picture_description用视觉模型给图片写描述可本地也可连远程 API图片问答、RAG另外CLI 也支持整页走 VLM 的路线docling --pipeline vlm --vlm-model granite_docling FILE用的是 258M 参数的 GraniteDocling 模型同样本地跑。5. 给 RAG 喂数据docling 的分块怎么做导出 Markdown 再手动切块是一种办法但更干净的方式是直接对DoclingDocument做原生分块每个 chunk 自带标题上下文。HybridChunker按文档结构切分并控制 token 数from docling.chunking import HybridChunker doc conv.convert(report.pdf).document chunker HybridChunker() for chunk in chunker.chunk(doc): print(chunker.contextualize(chunk)) # 带上下文的 RAG 片段分块器都继承自BaseChunker你可以替换成自定义实现代码入口在 docling/chunking/概念说明见 chunking 文档。对接 LangChain、LlamaIndex、Haystack 时用的就是这套接口现成示例在 docs/integrations/ 目录langchain.md、llamaindex.md等仓库 examples 里还有完整的 RAG notebook如docs/examples/rag_langchain.ipynb。6. 选型与常见坑清单按场景选路线只要 Markdown/JSON默认标准管道或 CLI 直接跑最快版面复杂、想省得调参VLM 管道GraniteDocling 258M本地推理批量服务化用 docling-serve 起 API 服务或经 MCP server 接给任意 Agent说明见 docs/usage/api_server/敏感数据、断网环境所有模型默认本地运行用docling-tools models download预取到~/.cache/docling/models再配DOCLING_ARTIFACTS_PATH指定离线模型目录方法在 advanced_options 文档。几个高频坑来源FAQPython 3.9 在 2.70.0 版本起不再支持请用 3.10旧版二进制 Office 格式.doc/.xls/.ppt97–2004需要本机装 LibreOffice音频/视频解析WAV、MP3、MP4 等要加asr依赖视频还要ffmpegDocker 或无图形界面的 Linux 报libGL.so.1缺失是opencv-python与opencv-python-headless冲突二选一macOS x86_64 老 Intel 机器上装 PyTorch 有版本坑按 FAQ 锁定numpy2.0.0即可。收尾从一份文档到一座文档库docling 的定位很克制把文档进、结构化数据出这一件事做扎实——格式路由交给 backend模型编排交给 pipeline下游要分块、要导出、要接框架都走DoclingDocument这一个出口。从单文件转换到批量服务再到接给 Agent仓库里 docling/service_client/ 和 CLI 工具docling-tools已经给出了现成路径可以按自己的规模逐步上量。【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表