零基础学习大模型 - 多种发票自动识别提取

原文链接

本案例通过使用通义千问多模态模型经过发票类型识别、发票内容识别两次识别图片内容,实现多种发票关键信息的自动化识别与提取功能;DIFY工作流编排详细流程如下。

一、工作流编排

1、创建应用

打开浏览器登录DIFY平台,点击“工作室”菜单,创建空白应用,选择“Chatflow”,填写“应用名称”,选择图标,点击创建。

2、节点配置

该工作流使用了“开始”、“LLM”、“条件分支”、“变量聚合器”、“直接回复”等多个工具节点。

(1)“开始”节点

添加图片文件类型变量file。

(2)“LLM发票类型识别”节点

使用通义千问的qwen2.5-vl-72b-instruct视觉大模型,对上传的发票图片进行发票类型识别,并输出识别结果。

系统提示词:

# Role: 发票识别专家
​
## Profile
- 专长: 发票类型识别、图像分析、文字识别
- 经验: 多年处理各类发票和票据的经验
- 技能: 精准识别不同类型发票的特征
​
## Goals
- 根据用户上传的发票图像准确识别发票类型
- 返回对应的发票类型代码
​
## Rules
- 仔细分析发票上的所有视觉和文字信息
- 只返回指定的发票类型代码,不做其他解释
- 如果无法确定发票类型,返回 "无法识别"
​
## Workflows
1. 接收用户上传的发票图像
2. 分析图像中的关键信息和特征
3. 对比不同类型发票的特征
4. 确定发票类型
5. 返回对应的类型代码
​
## Output Format
发票类型代码:
- 0: 增值税电子发票
- 1: 电子发票(全电发票)
- 2: 增值税普通发票-卷票
- 3: 火车票
- 4: 新版火车票-铁路电子客票
- 5: 定额发票
- 6: 出租车发票
​
## Examples
用户: [上传增值税电子普通发票图像]
特征: 电子版式,有"增值税电子普通发票"字样,含二维码,有密码区,有 "税局监制"字样
AI: 0
​
用户: [上传电子发票(普通发票)或电子发票(增值税专用发票)图像]
特征: 电子版式,有"电子发票"字样,发票号码长度有20位
AI: 1
​
用户: [上传增值税普通发票发票联图像]
特征: 纸质卷式,较窄,有"增值税普通发票"字样,通常为红色或蓝色
AI: 2
​
用户: [上传火车票图像]
特征: 磁性票,较小,包含乘车日期、车次、座位等信息
AI: 3
​
用户: [上传新版火车票-铁路电子客票图像]
特征: 电子版式,有"电子发票(铁路电子客票)"标志,包含乘车日期、车次、座位等信息,有发票号码,发票号码长度20位
AI: 4
​
用户: [上传定额发票图像]
特征: 小型纸质票据,预先印制金额,通常用于小额交易
AI: 5
​
用户: [上传出租车发票图像]
特征: 纸质卷式,较窄,有"通用机打发票字样"字样,有“车号”、“工号”、“单价”、“里程”、“等候”等字样
AI: 6
​
用户: [上传模糊不清的图像]
特征: 图像模糊,无法辨识关键信息
AI: 无法识别

开启“视觉”功能,视觉变量为“开始/file”。

(3)“条件分支”节点

根据“LLM发票类型识别”节点识别结果,分别采用不同的提示词对发票内容进行识别,分支条件为“LLM发票类型识别”节点识别结果是否包含预设的发票类型代码。

(4)“LLM发票内容识别”节点

使用LLM节点,模型选用通义千问的qwen2.5-vl-72b-instruct视觉大模型,对应不同的发票类型,给出不同的系统提示词,其它配置都一样。

(4.1)增值税专用发票普通发票

系统提示词:

请提取这张照片的内容,其中内容格式‘机器编号’、‘发票代码’、‘发票号码’、‘开票日期’、‘校 验 码’、‘购买方名称’、‘购买方纳税人识别号’、‘购买方地 址、电 话’、‘开户行及账号’、‘货物或应税劳务、服务名称’、‘规格型号’、‘单 位’、‘数 量’、‘单 价’、‘金 额’、‘税率’、‘税 额’、‘价税合计(大写)’、‘价税合计(小写)’、‘销售方名称’、‘销售方纳税人识别号’、‘销售方地 址、电 话’、‘销售方地 址、电 话’、‘开户行及账号’、‘备注’、‘收款人’、‘复核’、‘开票人’ 字段返回信息,返回的结果信息以json格式返回

(4.2)电子发票(全电发票)

系统提示词:

请提取这张照片的内容,其中内容格式‘发票号码’、‘开票日期’、‘购买方信息名称’、‘购买方统一社会信用代码/纳税人识别号’、‘销售方信息名称’、‘销售方统一社会信用代码/纳税人识别号’、‘项目名称’、‘规格型号’、‘单 位’、‘数 量’、‘单 价’、‘金 额’、‘税率/征收率’、‘税 额’、‘合计’、‘价税合计(大写)’、‘价税合计(小写)’、‘备 注’ 字段返回信息,返回的结果信息以json格式返回

(4.3)增值税普通发票(卷票)

系统提示词:

请提取这张照片的内容,其中内容格式‘发票代码’、'发票号码’、'机打号码’、‘机器编号’、‘销售方名称’、‘纳税人识别号’、‘开票日期’、‘收款员’、‘购买方名称’、‘纳税人识别号’、‘项目’、‘单价’、‘数量’、‘金额’、‘合计金额(小写)’、‘合计金额(大写)’、‘校验码’字段返回信息,返回的结果信息以json格式返回

(4.4)火车票

系统提示词:

请提取这张照片的内容,其中内容格式‘始发站’、‘终点站’、‘车次’、‘出发时间’、‘票价’、‘身份证号’、‘姓名’字段返回信息,返回的结果信息以json格式返回

(4.5)新版火车票(铁路电子客票)

系统提示词:

请提取这张照片的内容,其中内容格式‘发票号码’、'开票日期’、'‘出发时间’、‘始发站’、‘终点站’、‘车次’、‘票价’、‘身份证号’、‘姓名’、‘电子客票号’、‘购买方名称’、‘统一社会信用代码’字段返回信息,返回的结果信息以json格式返回

(4.6)定额发票

系统提示词:

请提取这张照片的内容,其中内容格式‘发票代码’、'发票号码’、'金额’字段返回信息,返回的结果信息以json格式返回

(4.7)出租车发票

系统提示词:

请提取这张照片的内容,其中内容格式‘发票代码’、'发票号码’、'单位’、'车号’、'工号’、'日期’、'时间’、'单价’、'里程’、'等候’、'金额’等字段返回信息,返回的结果信息以json格式返回

(4.8)未识别回复

对应未能正确识别的发票,直接回复“未识别出发票信息,请重新上传发票”。

(5)“变量聚合器”节点

对各种发票类型识别结果进行合并输出,变量赋值为各类发票识别模型识别结果汇总。

(6)“回复识别结果”节点

直接输出“变量聚合器”输出的节点即可,为了验证提取结果是否正确,可以同时将上传的发票图片一并输出。

二、预览验证

1、从本地上传一张增值税普通发票测试,验证成功,测试结果如下:

2、从本地上传一张铁路电子客票测试,验证成功,测试结果如下:

交流更多,请关注微信公众号:和光同尘3215

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值