LandingAI ADE:PDF转MD工具

本文针对 LLM、RAG 和代理工作流程对 ADE 的文档解析 API 进行基准测试。

LandingAI ADE:PDF转MD工具
AI编程/Vibe Coding 遇到问题需要帮助的,联系微信 ezpoda,免费咨询。

从 PDF 中提取干净的文本是当今许多LLM工作流程的核心要求,从标准检索增强生成 (RAG) 到现代代理人工智能系统。

然而,传统的 PDF 解析器经常丢失结构、格式和视觉元素,这限制了提取内容的有用性。 垃圾进,垃圾出

Markdown 已成为LLM的标准目标格式。挑战在于将复杂的、真实的 PDF 转换为干净的 Markdown,而不丢失信息。

在几篇文章的过程中,我在同一个基准文档上尝试了十多个 PDF 到 Markdown 工具。现在,我正在测试 LandingAI 的新的代理化文档提取 (ADE) 工具。

AI 代理可以生成完美的 Markdown 吗?

1、ADE:代理化PDF转Markdown

LandingAI 的 ADE (Agentic Document Extraction)使用代理方法来解析文档。这本质上意味着LLM充当“大脑”,根据文档内容调用专门的工具进行推理和行动。

其基本思想是现实世界的文档是杂乱的、复杂的和多用途的。有些文档只是纯文本。其他包含图形、表格和图表。有些文件有手写内容。有些是光线不佳的低质量文档照片。

与一刀切的工作流程相比,代理化方法提高了灵活性,因为代理可以决定如何自行处理每个文档。

2、LandingAI ADE的内部机制

ADE 解析文档的确切过程并未公开披露。然而,根据文档页面和 LandingAI 的在线课程“文档 AI:从 OCR 到代理文档提取”,我们可以做出一些猜测 [1]。

与传统的 OCR 方法不同,ADE 将文档视为视觉对象。 ADE 特别关注包含重要信息的文档的布局和结构。例如,考虑人类如何读取两列布局与传统 OCR 如何读取它。

2.1 PaddleOCR 3:最先进的开源 PDF 到 Markdown

ADE 的功能可能与 PaddleOCR 3 非常相似,特别是 PP-StructureV3 文档解析管道。该多模型管道通过执行五步处理工作流程将 PDF 文档转换为 Markdown 和 JSON [2]。

Diagram of the PP‑StructureV3 document‑processing pipeline from PaddleOCR, showing stages including preprocessing, OCR with PP‑OCRv5, layout analysis, table and formula recognition, chart parsing, seal detection, and postprocessing to generate Markdown and JSON outputs.

PaddleOCR 3.0 的 PP-StructureV3 管道 [2]。工作流程主要包括预处理、OCR、布局分析、文档项识别和后处理。图片已获得 CC BY 4.0 许可。

以下是 PP-StructureV3 功能的快速总结 [2]:

  1. 预处理:修复图像旋转和扭曲。
  2. OCR:检测和识别所有文本内容。
  3. 布局分析:使用边界框对文档中的所有重要区域进行分类和本地化。
  4. 文档项目识别:将布局分析中的特定区域发送到专用模型以识别表格、公式、图表和印章。
  5. 后处理:根据正确的阅读顺序对所有元素进行排序。

Dobling 还执行类似的功能,包括 OCR、布局分析、表格识别和 PDF 文档的后处理 [3]。

我已经在我的基准文档上测试了 PaddleOCR 的 PP-StructureV3 和 Docling。 当时我没有得到很好的结果,所以我很好奇相比之下 ADE 的表现如何。

2.2 Landing AI ADE (DPT-2)

对于此任务,LandingAI 使用其 DPT-2 模型:

文档预训练转换器 (DPT) 是为 ADE 解析 API 的解析功能提供支持的模型。 DPT 识别文档布局和块,然后为这些块生成描述性解释(标题)。 [4]

听起来这是一个基于Transformer的大型模型,尽管它也可能是由多个较小模型组成的管道。

DPT-2 具有表格和图形标题、布局检测和块本体(对每个检测到的区域进行分类)的功能。

对于 ADE,我假设代理不会对每个文档使用相同的管道,而是根据需要调用处理步骤。可能还有一个反馈循环,代理可以纠正 Markdown 输出中的任何错误。

3、为转换测试创建基准PDF

为了评估 PDF 到 Markdown 转换过程的准确性,我使用了具有已知基本事实的基准文件。我在其中包含了所有基本的 Markdown 语法元素。

使用通用文档转换器 Pandoc,我将 Markdown 基本事实转换为 PDF 文档“bench_pdf_v2.pdf”。

结果是一个两页的基准 PDF 文件,我知道用于创建它的 Markdown。

None
通过将 Markdown 转换为 PDF,使用 pandoc 创建的基准 V2 PDF 文件。

我将使用这个基准文档来查看和比较 LandingAI 的 ADE 结果与其他 PDF 转 Markdown 工具的结果。

4、使用LandingAI ADE开发包

ADE 具有 REST API,以及 Python 和 TypeScript 库。我将使用 Python 库来解析我的基准 PDF 文件。

首先,我们必须使用“pip install landai-ade”安装Python包。

然后,我们只需几行Python代码即可执行ADE管道。我们需要创建一个“客户端”并传递 API 密钥。然后,我们调用客户端的“parse”函数,传递文档路径和最新的“dpt-2”模型作为参数:

from landingai_ade import LandingAIADE
from pathlib import Path

client = LandingAIADE(apikey= "INSERT-YOUR-API-KEY")
doc_path = Path("./bench_pdf_v2.pdf") # change to your file path

parse_response = client.parse(
    document=doc_path,
    model="dpt-2-latest"
)

执行此代码大约需要六秒钟,每页花费三个学分。

parse 函数返回一个包含以下字段的 ParseResponse 对象 [4]:

  • chunksChunk 对象列表,每个解析区域一个
  • markdown:文档的完整 Markdown 表示
  • metadata:处理信息(积分使用情况、持续时间、文件名、作业 ID、页数、版本)
  • splits:按页面或部分组织块的 Split 对象列表
  • grounding:将块 ID 映射到详细基础信息的字典

这意味着我们不仅收到最终的 Markdown 结果,还收到视觉基础信息。

具体来说,每个检测到的元素称为“块”。对于每个块,我们收到包含页面、块类型(例如文本、表格、图形、标题)、边界框坐标、置信度得分和 Markdown 的结构化数据。

5、可视化ADE的布局检测

根据这些信息,我们可以准确地看到 AI 在 PDF 中识别出的内容。

我使用了一些辅助函数 [1] 来可视化来自“parse_response”的数据。这给出了以下边界框可视化。

第一页:

The first page of the benchmark PDF document. Color-coded bounding boxes from the layout analysis show all regions of interest. Each region is a chunk that contains the Markdown output.
第一 PDF 页面的边界框可视化(布局检测)

第二页:

The second page of the benchmark PDF document. Color-coded bounding boxes from the layout analysis indentified all regions of interest. Each region is a chunk that contains the Markdown output.
第二个 PDF 页面的边界框可视化(布局检测)

每个边界框都是一个块。例如,以下是访问第一个块的方法:

print(parse_response.chunks[0])

>> Chunk(id='2df6c4ad-6735-42ac-92a1-5828edae451a', 
    grounding=ChunkGrounding(box=ParseGroundingBox(bottom=0.2504836618900299, left=0.2118898183107376, right=0.4682390093803406, top=0.15064971148967743), page=0), 
    markdown="<a id='2df6c4ad-6735-42ac-92a1-5828edae451a'></a>\n\n# Lorem Ipsum\n\nLorem ipsum dolor sit amet.\nConsetetur sadipscing elitr.\nSed diam nonumy eirmod tempor.", 
    type='text')

边界框信息非常有用。例如,当法学硕士引用 RAG 系统中文档的一部分时,您可以直观地向用户显示该数据的确切来源。此功能有助于开发人员调试并增加用户信任。

6、评估Markdown输出

让我们将完整的 Markdown 输出保存为文件并查看结果。

# save Markdown to disk
with open("output-ade.md", "w", encoding="utf-8") as myfile:
    myfile.write(parse_response.markdown)

这将为我们的 PDF 文档生成以下 Markdown 输出:

<a id='569078a5-d828-4fbc-bde2-b3d4c223b054'></a>

# Lorem Ipsum

Lorem ipsum dolor sit amet.
Consetetur sadipscing elitr.
Sed diam nonumy eirmod tempor.

<a id='5688ef04-69b5-4a98-b5d4-745fb6d056fb'></a>

Lorem Ipsum
Lorem ipsum.
*Lorem ipsum.*
**_Lorem ipsum._**
Lorem ipsum.

<a id='b3932830-cd5c-4648-904b-bfdce53c1231'></a>

# Lorem Ipsum

Lorem.

&nbsp;&nbsp;&nbsp;&nbsp;Lorem ipsum.

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lorem ipsum dolor.

&nbsp;&nbsp;&nbsp;&nbsp;Lorem ipsum.

1. Lorem
2. Lorem ipsum
3. Lorem ipsum dolor

* Lorem
* Lorem ipsum
* Lorem ipsum dolor

<a id='99cbbade-d994-4dc1-9ea2-2ecf9c37d5a0'></a>

Before something

<a id='ca05a4c7-d841-4e77-9dae-13a30bd6c74f'></a>

After something
Test: click.
Another test: mail@example.com
Let's try this:
```python
def add_integer(a: int, b: int) -> int:
    return a + b
```
And also this:
```bash
curl -o thatpage.html http://www.example.com/
```

<a id='80c6444c-1d7e-4f12-b8ee-4bb0906e6945'></a>

1

<!-- PAGE BREAK -->

<a id='5b48cd83-cc88-42fb-9b89-b3a8af2e6371'></a>

Let's try this:
<table id="1-1">
<tr><td id="1-2">Hello</td><td id="1-3">To</td><td id="1-4">Medium</td></tr>
<tr><td id="1-5">Q</td><td id="1-6">W</td><td id="1-7">E</td></tr>
<tr><td id="1-8">A</td><td id="1-9">S</td><td id="1-a">D</td></tr>
<tr><td id="1-b">Y</td><td id="1-c">X</td><td id="1-d">C</td></tr>
</table>

<a id='e49da3e1-713d-4244-8c08-f84cf83ac6d5'></a>

And also this:

<table id="1-e">
<tr><td id="1-f"></td><td id="1-g">Hello</td><td id="1-h">World</td></tr>
<tr><td id="1-i">Q</td><td id="1-j">W</td><td id="1-k">E</td></tr>
<tr><td id="1-l">A</td><td id="1-m">S</td><td id="1-n">D</td></tr>
</table>

<a id='10492edd-7252-421c-9f53-53e3fda1680f'></a>

And a final test:
<::A long-exposure photograph shows star trails across a deep blue night sky. Below the sky, a dark mountain range is visible, partially obscured by a thick layer of white clouds that fill the valleys and stretch across the landscape, with a faint glow visible on the horizon.: image::>

<a id='f9c838fd-dbb9-47fa-8abe-99954cbc092f'></a>

2

总的来说,结果看起来相当不错。

值得注意的是,每个块都以一个不可见的 HTML 锚点开始。表格是使用 HTML 代码而不是纯 Markdown 实现的。

文档中的图像已替换为描述它的替代文本。自定义语法“<:: alt text : image::>”既不是标准 Markdown 也不是 HTML 代码。

7、处理更复杂的PDF示例

ADE 在处理复杂文档方面也非常有效。基于网络的演示包括四个示例 PDF,其中包含真实的表格、图形、图表、手写内容、复选框等。

例如,下面是 ADE 可以处理的提供的 AccidentStatement.pdf 文件。

On the left, the AccidentStatement.pdf contains color-coded boundingboxes where the layout analysis detected all regions that contain text, figures, charts, etc. On the right, the Markdown output from LandingAI’s ADE parser is shown. The document has a layout with three columns which makes this a very hard example for PDF to Markdown parsing.
LandingAI 的 [Playground] 中提供的“AccidentStatement”PDF 示例的屏幕截图

除了解析为 Markdown 或 JSON 之外,您还可以拆分文档、提取键值字段以及与文档聊天。

8、ADE vs. 其他PDF‑to‑Markdown 工具

下表总结了我最近对几种 PDF 到 Markdown 转换器工具的测试结果 [5]。

A table comparing multiple PDF-to-Markdown tools with each other based on how they performed on the benchmark document. The nine tools are: PyMudPDF4LLM, Docling, marker, MinerU, paddleOCR, pdf2md_llm, Gemini 2.5, ChatGPT 5, LandingAI ADE.
PDF-to-Markdown 转换器在基准文档上的评估结果。绿色:非常好,黄色:可接受,红色:失败。表基于[5]

与我测试的其他工具相比,LandingAI 的 ADE 是从 PDF 文件生成干净的 Markdown 以用于后续下游任务的最佳选择之一。

最大的缺点是使用该服务的成本,因为大多数其他工具都可以在本地免费使用。我每页用了三个积分。目前,您可以在即用即付定价模式中以 1 美元购买 100 个积分。

9、结束语

LandingAI的Agentic Document Extraction是一款将Agentic AI与PDF到Markdown转换工具相结合的新产品。然而,我不确定代理行为对于这项任务有多么必要。用专有的解决方案很难判断。

与我尝试过的所有其他工具相比,我认为 ADE 相当不错。我还喜欢额外的元数据,包括每个块的边界框区域。稍后可以使用此信息来准确可视化这些块的来源。

一个缺点是该工具不能在本地运行。与 Dobling 等本地开源选项相比,ADE 要求您将私人文档上传到服务提供商。您还必须使用积分支付每次使用的费用。


原文链接: PDF to Markdown: LandingAI's ADE Agentic AI

汇智网翻译整理,转载请标明出处