专栏名称: 逆行的狗
不会编程的军人不是好的审计员
目录
相关文章推荐
51好读  ›  专栏  ›  逆行的狗

AI 提取合同关键信息

逆行的狗  · 公众号  ·  · 2024-12-27 22:44

主要观点总结

文章介绍了一种实现合同关键信息提取的简单且高效的方法,主要面向财审同事使用的Mac电脑环境。文章提到了两种从PDF中提取关键信息的方式,并重点介绍了方式2:先将PDF通过OCR转换为文本文件,再使用AI大模型从文本中提取关键信息。文章还提供了使用Ollama模型和chatgpt写代码的例子,并说明了如何批量处理合同信息和输出结果为Excel文件。

关键观点总结

关键观点1: 文章介绍了一种合同关键信息提取的简洁高效方法。

该方法主要面向使用Mac电脑的财审同事。解决了之前使用实习生处理量大且不划算的问题。

关键观点2: 文章提到了两种从PDF提取关键信息的方式。

方式1是使用视觉模型识别,适用于单据类如发票、车票等;方式2是先OCR识别为文本文件,再使用大模型识别关键信息,适用于几乎全是文本类的文书如合同,速度更快。

关键观点3: 文章提供了使用Ollama模型和chatgpt写代码的具体示例。

示例中展示了如何定义一个模型来存储合同信息,以及如何准备合同文本并使用Ollama模型进行处理,最后解析返回的JSON数据。

关键观点4: 文章说明了批量处理合同信息的方法。

只需要写个循环读取指定文件夹的所有txt文件,批量调用函数,最后将信息输出为Excel即可。使用的AI模型占用显存较小,可以适用于大多数环境。


正文

之前写过好几篇合同关键信息提取的方法,今天给大家介绍一个实现最简单,效率也不错的方法。

财审同事需要对被审计单位销售合同、采购合同、工程承包合同、工程分包合同的关键信息进行提取。

一般来说,他们会把这项工作交给效率工具-“实习生”来完成。

但是架不住量大,实习生用起来也不划算。

之前我们介绍过使用 paddlepaddle 和 knowledge-table 来实现。

其中 paddlepaddle 对于有 N 卡的效率高。

但我现在使用的 Mac 电脑,我发现使用 ollama 来实现是效率和部署最方便的。

前不久, ollama 提供了结构化输出的示例,要实现这个需求就更简单了。

对于扫描件的 PDF ,有两个方式可以实现:

  1. 直接使用 ollama 支持的视觉模型识别,并输出为结构化数据。
  2. 先将 PDF OCR 识别为 txt 文本文件,再使用 ollama 大模型识别出关键信息输出为结构化数据。

对于方式1来说,比较适用单据类,如发票、车票、报关单、凭证等。优势是效果好,缺点是速度慢。

对于方式2来说,比较适用几乎全是文本类的文书,如合同等。优势是速度快。

因此,本篇我们介绍方式2.

从 PDF OCR 识别为文本文件,有很多软件可以实现。不过,在 Mac 电脑上我直到今天才找到最好用的。

这里暂且不赘述。

假设我们已经将 PDF 转成了 txt 文件,我们只需要从文本中利用 AI 大模型提取出关键信息。

我们根据 ollama 官网给的示例,找 chatgpt 给我们写代码:

它直接给我可用代码:

from ollama import chatfrom pydantic import BaseModelfrom typing import Optional
# 定义一个模型来存储合同信息class Contract(BaseModel): contract_number: str # 销售合同或销售订单编号 sign_date: str # 合同签订日期 contract_term: str # 合同期限 contract_type: str # 合同类型 contract_subject: str # 合同标的 payment_method: str # 付款方式 settlement_basis: str # 结算依据 quantity_tons: float # 数量(吨)






请到「今天看啥」查看全文