LandingAI ADE:PDF转MD工具
从 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]。
PaddleOCR 3.0 的 PP-StructureV3 管道 [2]。工作流程主要包括预处理、OCR、布局分析、文档项识别和后处理。图片已获得 CC BY 4.0 许可。
以下是 PP-StructureV3 功能的快速总结 [2]:
- 预处理:修复图像旋转和扭曲。
- OCR:检测和识别所有文本内容。
- 布局分析:使用边界框对文档中的所有重要区域进行分类和本地化。
- 文档项目识别:将布局分析中的特定区域发送到专用模型以识别表格、公式、图表和印章。
- 后处理:根据正确的阅读顺序对所有元素进行排序。
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。
我将使用这个基准文档来查看和比较 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]:
chunks:Chunk对象列表,每个解析区域一个markdown:文档的完整 Markdown 表示metadata:处理信息(积分使用情况、持续时间、文件名、作业 ID、页数、版本)splits:按页面或部分组织块的Split对象列表grounding:将块 ID 映射到详细基础信息的字典
这意味着我们不仅收到最终的 Markdown 结果,还收到视觉基础信息。
具体来说,每个检测到的元素称为“块”。对于每个块,我们收到包含页面、块类型(例如文本、表格、图形、标题)、边界框坐标、置信度得分和 Markdown 的结构化数据。
5、可视化ADE的布局检测
根据这些信息,我们可以准确地看到 AI 在 PDF 中识别出的内容。
我使用了一些辅助函数 [1] 来可视化来自“parse_response”的数据。这给出了以下边界框可视化。
第一页:
第二页:
每个边界框都是一个块。例如,以下是访问第一个块的方法:
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.
Lorem ipsum.
Lorem ipsum dolor.
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 文件。
除了解析为 Markdown 或 JSON 之外,您还可以拆分文档、提取键值字段以及与文档聊天。
8、ADE vs. 其他PDF‑to‑Markdown 工具
下表总结了我最近对几种 PDF 到 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
汇智网翻译整理,转载请标明出处