知识库回答出现错行、数字错配时,问题可能已经发生在文档进入检索系统之前。一份 PDF 即使在屏幕上看起来清楚,转出的文字也可能把双栏内容交错排列,或把表格中的数值放到错误标题下。
Docling 的官方示例使用 DocumentConverter 将文件转换为文档对象,再导出 Markdown。[1] 本文把这一流程改写为一个本地文件示例,资料核对日期为 2026 年 10 月 19 日。
先准备一份可以人工核对的样本
本文建议先选几页有代表性、已获处理授权的 PDF,包含标题、普通段落和一张小表格。记录你预期看到的内容:
样本元素 | 人工核对点 |
|---|---|
标题 | 层级是否合理,是否混入页眉 |
双栏正文 | 是否按正确顺序连接 |
表格 | 列名、行名和数值能否对应 |
数字 | 小数点、负号、单位是否保留 |
脚注 | 是否被错误插入正文句子 |
先让转换质量可观察,再扩大到批量处理。不要一开始就把整批资料送进索引,之后才发现结构性错误。
在独立 Python 环境安装
根据官方安装文档,Docling 可通过 Python 包安装。[2] 在已经建立的独立虚拟环境中运行:
1python -m pip install docling
记录实际 Python 和 Docling 版本,并按项目已有方式保存依赖。这里不要求修改系统 Python;如果项目已经使用 uv 或其他环境管理工具,应沿用现有约定。
Docling 官方文档说明,默认情况下所需模型可能在首次使用时自动下载;也提供预取模型用于离线环境的方式。[3] 因此,“处理本地文件”与“第一次运行完全不访问网络”是两件需要分别验证的事。
转换一份本地 PDF
把授权样本放到 inputs/sample.pdf,在演示目录保存 convert_pdf.py:
1from pathlib import Path2from docling.document_converter import DocumentConverter34source = Path("inputs/sample.pdf")5output = Path("outputs/sample.md")67if not source.is_file():8 raise FileNotFoundError(source)910if output.exists():11 raise FileExistsError(output)1213converter = DocumentConverter()14document = converter.convert(str(source)).document15markdown = document.export_to_markdown()1617output.parent.mkdir(parents=True, exist_ok=True)18output.write_text(markdown, encoding="utf-8")19print(f"输出:{output},字符数:{len(markdown)}")
然后执行:
1python convert_pdf.py
示例主动拒绝覆盖已有输出,方便保留上一轮结果。这里的预期是生成一个 UTF-8 Markdown 文件;它并不保证每个段落和表格都正确,仍需下一步对照检查。示例未在读者环境执行。
对照原页,而不是只读转换结果
建议把原 PDF 与 Markdown 并排查看,逐项检查样本表。特别留意那些读起来通顺、实际却改变含义的错误,例如:
- 把“未通过”中的“未”漏掉;
- 把某列数值移动到另一列;
- 把页脚插进正文句子;
- 把两栏的半句话连成一段。
本文建议用简短记录保存“文件、页码、问题、处理方式和复查状态”。读者可以手工修正衍生文件,也可以调整转换配置,但都应保留与原始来源的关系。
如果需要保留更丰富的结构信息,可继续查看官方的文档模型、序列化和分块接口。[1] 本文示例只导出 Markdown,没有实现页码映射或引用追踪。
区分模型下载与远程处理
Docling 官方高级选项说明,使用远程处理服务需要显式选择相应配置;模型权重下载则属于另一类网络行为。[3]
如果任务要求离线,应先按官方流程预取模型,再在目标网络条件下验证。不要为了消除错误而直接启用远程服务,也不要在没有检查插件、OCR 和模型配置的情况下承诺所有资料都不会外传。
进入知识库前,再做一道验收
本文建议只有通过样本核对的转换配置才进入后续分块流程,并至少保留原文件标识、文档版本和衍生文件位置。分块之后,再检查一条事实是否仍带有足够上下文,例如表格数值旁边是否保留了项目名和单位。
给 Agent 的任务可以写成:
使用指定的授权 PDF 样本,在独立目录完成 Docling 转换。保留原文件,输出到新路径,对照标题、阅读顺序、表格与数字列出质量检查结果。未核对的页码明确标记,不自动导入生产知识库。
参考来源
本文为原创整理;转换脚本、核对表和处理建议为作者设计。不保证 OCR 或表格转换达到特定准确率。