OCR识别总出错?多模型+Dify工作流搞定单据自动核对
我那财务朋友用这个工作流试了一周,反馈说:"以前每天要花2小时核对100张发票,现在 只要30分钟——模型会标红差异,我只要看标红的部分就行,再也不用盯着原图一个个对了!其实这个思路不仅适用于发票,像快递单、入库单、报销单这些带图片的单据,都能用"多模型对比"的方法解决识别不准的问题。关键是把提示词写精准,把对比逻辑理清楚。

点击蓝字,关注我们

财务人终于不用熬夜核对发票了!用Dify搭个自动核对工作流,解决OCR最大痛点
上个月和做财务的朋友吃饭,她吐槽得拍桌子:"现在报销用OCR识别发票,十张有三张错—— 要么开票日期少个年份,要么校验码多一位,要么姓名写成同音字。我每天得盯着电脑对比原图和识别结果,眼睛都快瞎了!"
我掏出手机给她看:"你试试用Dify搭个自动核对工作流,让两个视觉大模型同时识别,再用第三个模型对比差异。以前人工要10分钟的活儿,现在30秒搞定,还能标红差异。"
她眼睛一亮:"这玩意儿难吗?我电脑只会用Excel啊!"
"超简单,跟着我一步步来,半小时就能搭好。"
先搞懂核心逻辑:用"多模型投票"解决OCR不准的问题
其实OCR的痛点就一个——单一模型的"幻觉":比如识别火车票时,模型可能把"张三"看成"张叁",把"2023-10-01"看成"2023-10-07"。但如果让两个不同的视觉大模型(比如 GPT-4o和千问VL)同时识别,再让第三个模型(比如DeepSeek-R1)对比两者的结果,就能把差异揪出来。
这套逻辑的核心是"交叉验证":
1.用户上传单据图片(火车票/发票);2.两个视觉大模型分别提取信息(比如出发地、日期、金额);3.第三个模型逐字段对比两个结果,标红差异;4.最终输出"差异报告",财务只需看标红部分就行。
第一步:把Dify环境搭起来——两种方式,小白也能会
要搭工作流,得先有Dify环境。这里给大家讲两种最常用的方式,选适合自己的就行。
方式1:本地/服务器用Docker Compose部署(推荐私有化)
Docker的好处是"一键启动",把Dify的API服务、数据库、前端页面都打包在容器里,不用 手动装依赖。步骤超简单:
1.装Docker和Docker Compose:
•Windows/macOS:装Docker Desktop(官网下载,一路下一步);•Linux(Ubuntu):执行sudo apt-get install docker-compose(记得换国内源, 不然慢)。
2.拉取Dify代码:打开终端,执行:
git clone https://github.com/langgenius/dify.gitcd dify/docker
3.配置并启动:
•复制配置文件:cp .env.example .env(不用改内容,默认就行);•启动服务:docker-compose up -d(第一次启动会下载镜像,等5分钟)。
4.访问Dify:本地部署的话,浏览器输入http://localhost;服务器部署的话,输入服务器IP(默认80端口)。
方式2:直接用Dify云服务(适合快速试手)
如果不想装Docker,直接用Dify官网的云服务(https://dify.ai/):
•注册账号,免费版能建5个应用(够测试用);•缺点是数据存在云端,敏感单据(比如发票)建议用私有化部署。
第二步:搭工作流——核心就4步,提示词是关键
环境搞定后,咱们开始搭"业务单据自动核对"的工作流。打开Dify,点击"创建应用"→ 选"Chat Flow"(工作流),名字就叫"发票自动核对"。
1. 配置大模型:选对"视觉模型"是关键
要识别图片,得用支持视觉的大模型(带VL标识,比如GPT-4o、千问VL、书生浦语 VL)。配置步骤:
•点击右上角"设置"→"模型提供商";•选你要用的模型:
•国外:OpenAI的GPT-4o(识别准,但要科学上网);•国内:千问VL(便宜,稳定性好)、书生浦语VL(免费版够用);
•填API密钥(比如OpenAI的密钥,千问的密钥去阿里云申请)。
2. 加"文件上传"节点:让用户能传单据图片
工作流的第一步是让用户上传单据,所以要加个"参数":
•点击"开始"节点→"添加参数";•类型选"文件",名字填"单据文件",提示语写"请上传需要核对的单据图片(支持 JPG/PNG/PDF)"。
3. 加两个"提取模型":让两个大模型分别识别
接下来要让两个视觉模型提取单据信息。以火车票为例:
•拖一个"大模型"节点到画布,名字叫"提取模型1";•勾选"视觉"选项,把"单据文件"拖到"视觉输入"里;•提示词要明确字段和格式(划重点!提示词写得越准,识别结果越好):
请提取这张火车票的以下信息,返回JSON格式:-出发地(比如"北京南")-目的地(比如"上海虹桥")-日期(格式:YYYY-MM-DD)-时间(格式:HH:mm)-姓名(比如"张三")-座位号(比如"05车12F")-票价(保留两位小数,比如"553.00")
•再拖一个"大模型"节点,名字叫"提取模型2",选另一个视觉模型(比如千问VL),提示词和上面一样。
4. 加"对比模型":让第三个模型当"裁判"
最后一步是对比两个提取结果的差异。拖一个"大模型"节点,名字叫"差异对比",提示词 要明确对比规则:
你是一个专业的JSON数据对比专家,请按照以下规则对比两个火车票信息的差异:1.逐字段对比(比如出发地、日期、姓名等);2.差异部分用红体标注(比如"日期:2023-10-01 vs 2023-10-07");3.相同部分不用写,只标差异;4.最后总结差异数量(比如"共发现2处差异")。
然后把"提取模型1"和"提取模型2"的输出拖到"对比模型"的"用户输入"里。
第三步:测试效果——用真实单据验证差异
工作流搭好后,点击"预览",上传一张火车票试试:
案例1:火车票的差异对比
我上传了一张"北京南→上海虹桥"的火车票,两个模型的识别结果如下:
•提取模型1(GPT-4o):
{"出发地":"北京南","目的地":"上海虹桥","日期":"2023-10-01","时间":"08:00","姓名":"张三","座位号":"05车12F","票价":"553.00"}
•提取模型2(千问VL):
{"出发地":"北京南","目的地":"上海虹桥","日期":"2023-10-01","时间":"08:00","姓名":"张叁","座位号":"05车12F","票价":"553.00"}
•对比模型结果:
共发现1处差异:-姓名:张三 vs 张叁(红体)
案例2:增值税发票的差异对比
再上传一张增值税专用发票,两个模型的识别结果:
•提取模型1(GPT-4o):
{"发票代码":"1100231001","发票号码":"00123456","开票日期":"2023-10-01","校验码":"87481234","价税合计":"113.00"}
•提取模型2(千问VL):
{"发票代码":"1100231001","发票号码":"00123456","开票日期":"2023-10-01","校验码":"8748 1234",// 多了空格"价税合计":"113.00"}
•对比模型结果:
5051共发现1处差异:-校验码:87481234 vs 87481234(红体)
第四步:优化工作流——让它更通用
刚搭的工作流只能处理火车票和增值税发票,要让它支持更多单据(比如报销单、快递 单),可以加分支条件:
1. 加"票据类型"分支
比如:
•分支1:如果是"火车票",用火车票的提取提示词;•分支2:如果是"增值税专用发票",用发票的提取提示词;•分支3:如果是"报销单",用报销单的提取提示词。
设置方法:拖一个"条件判断"节点,条件写"单据类型 == 火车票",然后连接对应的提取模 型。
2. 优化提示词:让识别更精准
提示词是工作流的灵魂,比如提取增值税发票时,可以把字段写得更细:
请提取这张增值税专用发票的以下信息,返回JSON格式:-发票代码(10位数字)-发票号码(8位数字)-开票日期(格式:YYYY-MM-DD)-校验码(后6位)-购买方名称(全称)-价税合计(格式:XX.XX元)
最后:这玩意儿真的能省时间吗?
我那财务朋友用这个工作流试了一周,反馈说:"以前每天要花2小时核对100张发票,现在 只要30分钟——模型会标红差异,我只要看标红的部分就行,再也不用盯着原图一个个对了!"
其实这个思路不仅适用于发票,像快递单、入库单、报销单这些带图片的单据,都能用"多模型对比"的方法解决识别不准的问题。关键是把提示词写精准,把对比逻辑理清楚。
给新手的3个小技巧
1.模型选国内的:GPT-4o虽然准,但网络不稳定,千问VL和书生浦语VL更适合国内用户;2.提示词要"具象":不要写"提取发票信息",要写"提取发票的发票代码、号码、开票日期";3.多试几个模型:如果一个模型识别错了,换另一个模型试试,比如千问VL识别不了的,用GPT-4o可能能识别。
现在你也可以动手搭一个试试——其实Dify的工作流没那么难,关键是把"痛点→方案→步骤"理清楚。等你搭好,会发现:原来财务自动化,真的可以这么简单!
福利来了,关注数知公众号,Dify资料集免费送!

关注公众号

数知
数知:深耕企业数字化转型,分享如何应用云计算,大数据,AI等IT技术帮助企业降本增效
78篇原创内容
公众号
作者介绍
本人作为首批国家卓越级智能工厂的数字化负责人,在企业数字化领域已深耕近20年。曾服务世界500强、上市集团和行业第一的国际化外企,主导过数百个成功项目,也经历过数十个失败案例,深刻理解数字化转型的挑战与机遇。
数字化转型失败率很高,关键在于企业往往重技术轻管理、战略与执行脱节、盲目借鉴他人经验。我亲历过供应商选择、企业文化和软件适配的各种“坑”,这些宝贵教训将助您避开常见误区。
您将在这里获得:
-
企业中高管:解决业务痛点的数字化解决方案,提升企业竞争力
-
数字化规划师:经过验证的整体规划路径,降低转型风险
-
数字化顾问:体系化设计方案,提升项目成功率
-
IT技术人员:最新技术解读和落地方法,加速技能升级

关注我,获取经过实战验证的数字化转型知识体系,让您的转型之路少走弯路
点赞关注,不错过每次干货分享!
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)