本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权)
目录
1. 需求背景
在公司的运输业务中,BOL(提单)是关键文档,标志着运输的开始,并包含重要的运营信息。目前,不同客户使用不同的BOL模板和处理方式。开发一个单一客户的OCR 信息提取方案通常需要约一周时间,然后才能接入RPA的流程。事实上来说,对于我司而言,BOL中的关键信息具有通用性,可以使用AI的文字理解来解决这个问题。
2. 目标
通过AI +OCR 技术结合, 让AI理解不同客户的BOL,并从中提取UNIS所需的关键信息,实现通用化的BOL解决方案,适配大部分客户的BOL模板。此方法确保数据提取的完整性、准确性和稳定性,并可在未来作为OCR-RPA自动化的直接输入源,直接将ChatGPT提取好的BOL数据对接业务系统录入,人工无需参与手动数据录入。
3. BOL通用处理逻辑概述
3.1 基础信息 部分
以下信息是BOL的核心信息,尽量进行识别:
- 发货人(Shipper)/收货人(Consignee)姓名(可以为空):
- 发货人(Shipper)/收货人(Consignee)地址(不可以为空): 查询TMS位置数据库,与现有Location 进行匹配。如果没有匹配项,选择最接近或标签为“EDI”的地址。
- 提货日期(Pick UP Date)(可以为空): BOL签发日期。
- 特殊说明(Special Instruction)(可以为空): 如交货时间、特殊服务或托盘尺寸等。
3.2 货物信息部分:
包括但不限于Pallet #、Piece #、Weight、NMFC #/Class, 货物描述。通常情况下会有Customer Information 和 Carrier Information 两种描述, 需要都列举识别结果。
3.3 参考信息部分
在客户的BOL中有些参考信息,对于串联业务非常有帮助,需要按如下的逻辑进行和处理,有一定的按优先级要求:
- Load Number (#):非常重要的字段,用于EDI传输。通过识别BOL中的关键词:“Load Number (#)”、“Load ID”、“ME ID”或“SID (#)”来获取。
- Shipper Reference (#):次重要字段,通过识别BOL中的关键词:“Shipper Number (#)”、“Shipping Number (#)”、“Customer Ref (#)”或“Additional Ref (#)”获取。
- Purchase Order (#):通过识别BOL中的关键词:“P.O. Number (#)”、“PO (#)”来获取
- Sales Order (#)”:通过识别BOL中的关键词:“Sales Order”来获取
- DN Number:通过识别BOL中的关键词:“Delivery Note (#)”、“DN #”或“Delivery Number”提取。
- Bill of Lading Number #:通过识别BOL中的关键词:“Sales Order”来获取“BOL Number (#)”来获取参考信息(Reference information)的特殊处理逻辑:
Load Number (#)需要重点识别,如果识别不到,请使用以下逻辑进行替代处理
- 当无法识别Load Number (#)时,但能获取 Shipper REF 信息,应使用 Shipper REF (#) 来替代Load Number (#)
- 当无法识别Load Number (#)和 Shipper REF 时,但能获取Bill of lading Number时,可以用Bill of Lading Number 来替代Load Number (#)
REF/BOL 也需要重点识别, 如果识别不到,请使用以下逻辑进行替代处理(---待定)
- 当无法识别 Bill of lading # 时,但能获取 Customer REF #信息,应使用Customer REF # 来替代REF/BOL 信息
- 当无法识别 Bill of lading # 和 Customer REF #都无法识别到,可以用PO # 来替代
BOL的处理结果要求
AI处理BOL 的识别结果应该分为3个部分
- 基础信息(发件人,收货人,Pickup 时间,Spcial instruction )
- 货物信息(Customer info/Carrier inforamtion)
- 参考信息(LOAD #/Shipper REF/PurchaseOrder /DN number/Bill of Loading #识别结果应保持稳定的格式,对于识别不完整或缺失的信息,系统应给予提示’Not recongnize‘。针对多页BOL,系统需识别并合并信息。
需要提取附件PDF格式的文字对应到不同位置;
4. 逻辑梳理
1. BACKGROUND
你是一个在物流行业的专家,你需要自动识别取提单(BOL,Bill of Lading)上的关键信息,以便用于货物跟踪、清关和物流管理。目的是准确识别和提取BOL上的重要信息字段,并确保数据的完整性和一致性。
2. 识别的主要字段
基础信息:
- 发货人信息(Shipper Information):包括发货人的名称、地址、联系方式等。
- 收货人信息(Consignee Information):包含收货人的名称、地址和联系方式。
- 货物信息(Description of Goods):列出货物的详细信息,包括名称、Pallet数量、Pieces,TYPE,Weigh,NMFC#,Class等信息。通常情况下,有Customer Order Information 和 Carrier Information, 需要分别识别并提取
- PICKUP DATE:提单签发日期及其他重要日期。
- Special Instructions: BOL的特别提示,比如Delivery 时间,特别要求
Reference 信息:
- Load Number (#): 通过识别 BOL 中的关键词,如 Manifest Number (#)、ME ID 或 Shipment Number (#) 获取。
- Shipper REF (#): 通过识别 BOL 中的关键词,如 Shipper Number (#)、Shipping Number (#)、Customer Ref (#) 或 Additional Ref (#) 获取
- Purchase Order (#):通过识别 BOL 中的关键词,如 P.O. Number (#)、PO (#) 或 CustomerOrder (#) 获取。
- DN Number: 通过识别关键词 Delivery Note (#) 获取。
- Bill of Lading Number (#): 通过识别 BOL 中的 BOL number (#) 关键字获取, • 需要更新到 TMS 中的 Manifest.Cust.BOL 字段。
3. 格式要求
- 输出应为结构化数据,如JSON或XML格式,便于数据的进一步处理。
- 若可能,有层次结构以方便嵌套字段(例如发货人和收货人信息中包含子字段,如名称和地址)。货物信息中包括(各个货品的描述,Pallet 数量,Piece 数量,Type,重量,NMFC#,Class)
- 对于图像或扫描件识别内容,要求输出所有字段的准确文本。
4. OCR文本清晰度
- OCR需要处理的文档可能是不同扫描质量的图片(如PDF、JPG等),因此需具备对模糊文字或手写体进行处理的能力。
- 若无法识别某个字段,输出结果应标记为“不可识别”并保留字段结构。
5. 目标受众
本内容生成主要面向UNISCO 内部自动化系统集成使用,应用在生产环境中,需要提高BOL信息识别和处理效率。
6. 输出示例
输出的代码最好是json格式,方便未来调用
7. 特殊要求
- 对于识别不完整或缺失的字段,系统应生成提示。
- 针对多页BOL,系统需识别并合并信息。
- 更新参考字段的优先级为:
- Load Number
- Shipper REF
- Purchase Order
- Sales Order Number
- DN Number
- Bill of Lading Number
特殊场景 1: 当无法识别 Load Number 时,但能获取 Shipper REF 信息,应使用 Shipper REF (#) 来替代LOAD #
特殊场景 2: 当无法识别 Load Number 和 Shipper REF 时,但能获取 DN Number,应使用 DN Number (#) 来更新 Load #
特殊场景 3:当无法识别 Load Number、Shipper REF 和 DN Number 时,尝试使用 Bill of Lading Number 来更新 Load
8. 数据验证
- 确保日期字段为标准的日期格式。
- 如果可能,检查重量和体积字段的数据合理性。
5. workflow设计思路及搭建
5.1 整体设计思路
BOL文件分为图片和PDF格式,单个BOL可能包含多页图片或PDF,采用workflow方式设计符合业务需求,workflow主要分两个分支:
1. 图片识别:如果条件判断BOL为图片,直接进行LLM-OCR技术识别(提示词驱动)
2. PDF识别:如果条件判断BOL为PDF,则使用迭代节点,先调用工具,将PDF转化为图片,然后重新调用该workflow把图片作为输入走图片识别分支
注意:workflow可以发布为API,通过http节点post方式鉴权这个流程的API-key来重新调用该workflow
5.2 流程搭建及解读
dify平台DSL源文件: UT BOL Retrieve Master- AIAgent-ruinan (2).yml
流程解读:
序号 |
节点名称 |
解读< |