
这个n8n工作流演示了使用多模态LLM解析银行对账单PDF的方法,作为传统OCR的替代方案。这种方法可以从文档中更准确地提取数据,特别是在处理表格和复杂布局时。
多模态解析相比传统OCR的优势:
通过避免在传递给LLM之前将文档预处理为文本格式(如markdown),减少了复杂性和开销。
处理非标准PDF格式,这些格式通过传统OCR文本转换可能会产生混乱的输出。
比需要后处理清理和格式化的高级OCR模型便宜几个数量级。LLM可以格式化为您想要的任何模式或语言!
工作原理
您可以使用专门为此工作流创建的示例银行对账单:https://drive.google.com/file/d/1wS9U7MQDthj57CvEcqG_Llkr-ek6RqGA/view?usp=sharing
通过Google Drive导入PDF银行对账单。对于此演示,我创建了一个模拟银行对账单,其中包含5列的复杂表格布局。通常,OCR将无法正确对齐列,并将某些存款误认为是取款。
由于多模态LLM不直接接受PDF,我们必须将PDF转换为一系列图像。我们可以使用Stirling PDF等工具来实现这一点。Stirling PDF是可自托管的,这对于银行对账单等敏感数据非常方便。
Stirling PDF将返回我们的PDF作为一系列JPG(每页一个)在一个压缩文件中。我们可以使用n8n的解压缩节点提取图像,并使用排序节点确保它们有序。
接下来,我们将使用编辑图像节点调整每个页面的大小,以确保分辨率限制和处理速度之间的适当平衡。
每个调整大小的页面图像然后传递给基本LLM节点,该节点将使用我们选择的多模态LLM – Gemini 1.5 Pro。在LLM节点的选项中,我们将添加一个类型为二进制(数据)的“用户消息”,这是我们如何将图像数据作为输入添加的方式。
我们的提示将指示多模态LLM将每个页面转录为markdown。请注意,您不需要这样做 – 您可以直接要求提取数据点!此模板的目标是演示LLM准确读取页面的能力。
最后,使用所有页面的markdown版本,我们可以将其传递给另一个LLM节点以提取所需的数据,如存款行项目。
要求
Google Gemini API用于多模态LLM。
Google Drive访问用于文档存储。
Stirling PDF实例用于PDF到图像转换
自定义工作流
在撰写本文时,Gemini 1.5 Pro在文本文档解析方面是最准确的,成本相对较低。但是,如果您不使用Google Gemini,可以切换到其他多模态LLM,如OpenAI GPT或Antrophic Claude。
如果您不需要markdown,直接在LLM的提示中询问要提取的内容也是可以接受的,并且可以节省一些额外的步骤。
不打算很快解析任何银行对账单?此模板也适用于发票、库存列表、合同、法律文档等。

评论(0)