What we learned building a multi-agent PDF table extractor
9 days ago
- #Document Processing
- #Table Extraction
- #Multi-Agent AI
- 示例抽取容易,但生产级别的抽取必须处理未见文档、以人为本的布局和高流量,并达到99%以上的准确率。
- 实际挑战包括同类型文档的多样化布局、超出LLM令牌限制的长表格,以及为人类阅读优化的设计。
- 单个自主LLM代理用于生产既昂贵又缓慢;因此,多代理流水线将任务分配给六个专门代理。
- 流水线使用预处理将文档转换为每页保留布局的文本和图像,从而实现逐页处理。
- 代理#0为特定表格类别生成并缓存提示,利用LLM知识实现零样本泛化。
- 代理#1充当廉价表格存在检测器,过滤无关页面以将成本降低高达80%。
- 代理#2抽取表格元数据,恢复复杂结构,如页眉、子表格和行额外数据。
- 代理#3抽取带完整溯源的内容,使用OCR文本作为真实来源,图像用于空间参考。
- 代理#4生成Python代码,将抽取的数据映射到用户的目标模式,实现确定性转换和合成列。
- 代理#5在沙箱环境中执行生成的代码,确保安全性,并产生确定性输出,无需额外LLM调用。
- 关键生产就绪功能包括缓存、溯源追踪,以及将确定性任务从LLM转移到代码中,以提高可靠性和成本效率。