目录
一、前言
对传统业务系统或应用来说,实现一个新功能,从设计到最终开发完成,这个过程的耗时可能非常长。随着AI智能体在很多领域使用的越来越广泛,并逐渐产生商业价值之后。人们惊讶的发现,一个可以实现商用的业务系统或应用,只需短短几天,甚至几小时就可以做出来。这让人有理由相信,智能体已经强大到什么程度了,究竟智能体的潜力是不是没有上限呢?本篇以Dify为例,来搭建一个传统的应用系统中常用的功能,识别发票为例进行详细的说明。
二、Dify 概述
2.1 Dify是什么
Dify 是一个开源大模型应用开发平台,旨在帮助开发者快速构建、部署和管理基于大型语言模型(LLM)的 AI 应用。它提供了一套完整的工具链,支持从提示词工程(Prompt Engineering)到应用发布的全流程,适用于企业级 AI 解决方案和个人开发者项目。
官网入口:Dify: Production-Ready AI Agent Builder
中文站入口:Dify:企业级 AI Agent 开发平台
2.2 Dify核心特性
2.2.1 Dify特点
Dify 具备如下核心特点:
可视化编排工作流
通过低代码界面设计 AI 应用流程,无需深入编程即可构建复杂的 LLM 应用。
支持 对话型(Chat App) 和 文本生成型(Completion App) 应用。
多模型支持
兼容主流大模型 API,如 OpenAI GPT、Anthropic Claude、Cohere、Hugging Face 等。
支持私有化部署的 Llama 2、ChatGLM、通义千问 等开源模型。
灵活的提示词工程
提供 Prompt 模板、变量插值、上下文管理等功能,优化 AI 输出效果。
支持 RAG(检索增强生成),可结合外部知识库提升回答准确性。
数据管理与持续优化
记录用户与 AI 的交互日志,用于分析和迭代改进模型效果。
支持 A/B 测试,对比不同提示词或模型版本的表现。
企业级功能
支持 多租户、权限管理,适合团队协作开发。
可私有化部署,保障数据安全。
2.2.2 多模型支持
在dify控制台,内置了非常多大模型可供用户选择使用,比如GPT系列,DeepSeek模型、千问系列模型等,基于这些模型,应用开发者可以自由灵活的选择并使用。
2.3 传统发票识别技术与AI识别方案对比
随着企业数字化转型加速,发票识别技术作为财务自动化的关键环节,经历了从传统OCR到AI智能体的演进过程。本文将系统介绍传统发票识别技术方案的特点与局限,详细解析基于AI智能体的新一代发票识别应用架构,并从多个维度对两者进行深入对比分析,最后展望发票识别技术的未来发展趋势。
2.3.1 传统发票识别技术方案
传统发票识别技术主要基于光学字符识别(OCR)和规则引擎,已经发展了十余年时间,形成了相对成熟的技术体系和工作流程。传统发票识别系统的核心技术是OCR(光学字符识别)结合模板匹配。系统首先通过扫描仪或相机获取发票图像,然后进行以下处理流程:
图像预处理:包括灰度化、二值化、降噪、倾斜校正等操作,将发票图像转换为更适合识别的形式。例如,云脉技术的发票识别系统采用"智能校正"功能,能完成影像的倾斜校正、原稿尺寸裁剪、去底色和旋转等操作。
区域定位:通过预设的发票模板或框线特征检测,定位发票上各类关键信息区域,如发票代码、发票号码、金额等字段位置。早期系统如王涛研究中提到的"基于二值图像的框线特征提取"方法就是典型代表。
字符识别:对定位到的文字区域使用OCR引擎进行字符识别,将图像中的文字转换为可编辑的文本数据。传统OCR技术对印刷体字符的识别率较高,如增值税专用发票上的结构化信息识别率能达到98%以上。
结果校验:通过简单的规则校验识别结果的合理性,如校验码验证、金额大小写匹配等。部分高级系统会结合二维码信息进行交叉验证,如王涛提出的"基于颜色分割的发票识别与验证系统"。
2.3.2 传统发票识别技术方案局限
尽管传统方案已相当成熟,但在实际应用中仍面临诸多挑战:
版式适应能力差:
依赖预设模板,对发票版式变化敏感。当发票样式更新或遇到非标准发票时,识别率显著下降。正如王涛指出的:"现有的研究都是将采集的发票图像进行二值化处理,忽略掉图片本身的颜色信息"。
语义理解缺失:
仅能识别文字内容,无法理解字段语义关系,导致逻辑错误难以发现。例如可能正确识别出"金额"和"税率"数字,但无法判断两者计算关系是否正确。
验证能力有限:
大多数系统仅进行简单的格式校验,缺乏深度的发票真伪验证机制。王涛的研究也提到:"上述方法都是对票面信息进行提取,并不进行验证,这导致存在最终结果上的差错率"。
扩展成本高:
新增发票类型需要重新设计模板和规则,开发周期长。如"针对各类格式化表单票据进行模板编辑,自定义识别"需要专业技术人员操作。
非结构化数据处理困难:
对发票上手写内容、模糊图像等情况的处理能力有限,当"用户上传图片存在模糊曝光等问题"时容易识别失败。
2.3.3 基于Dify 搭建发票识别应用优势
Dify作为领先的AI应用开发平台,为零代码/低代码构建发票识别应用提供了强大支持。Dify通过可视化工作流编排和多模型集成能力,使开发者无需编写复杂代码即可构建专业级发票处理应用。
1)Dify构建的发票识别应用为企业解决了以下痛点:
效率瓶颈:传统人工录入方式处理一张发票平均需3-5分钟,而AI方案可缩短至秒级
错误率高:手工录入错误率约2-5%,AI识别准确率可达99%以上
版式适应差:传统OCR依赖固定模板,而AI方案能自适应多种发票版式变化
成本压力:企业财务部门50%以上时间耗费在票据处理上,AI自动化可释放这部分人力
2)基于Dify 实现一个发票识别应用搭建的关键技术流程如下:
多模态模型集成:
支持视觉-语言大模型(VLM)如Qwen-VL、DeepSeek-V2等,能同时处理图像和文本信息
可视化工作流编排:
通过拖拽节点方式构建复杂处理流程,如"文档提取→OCR识别→数据验证→结果输出"的全自动化流水线
条件分支与逻辑控制:
支持基于发票类型的智能路由,如自动区分增值税发票、火车票等不同类型并调用相应处理模块
多模型协同验证:
可采用多个VLM模型并行识别后比对结果,显著提升准确率
3)从实际落地案例看,Dify发票识别应用为企业带来多维度的价值提升:
效率提升
单张发票处理时间从人工3-5分钟缩短至2-10秒
华为云方案用户实现"财务审核效率提升90%以上"
支持批量处理,某电商企业日处理能力从200张提升至10,000+张
成本节约
减少70%以上人工审核岗位
某服装电商年节省开票成本23.6万元(人力+税损)
按需使用的云资源模式避免硬件过度投资
风险控制
自动识别异常发票(如频繁红冲、大额整数票)
税务合规率从约85%提升至近100%
避免如"某电商因红冲率超15%被罚款87万元"的案例
业务赋能
结构化票据数据赋能财务分析(如供应商集中度分析)
API集成能力支持与ERP、报销系统的深度对接
某制造企业实现"从识别到入账全流程自动化"
三、Dify 搭建发票识别助手操作过程
接下来将演示基于Dify搭建发票识别助手的完整操作过程
3.1 前置操作说明
3.1.1 安装必要的插件
Dify提为应用开发者提供了众多的大模型厂商可供集成使用,但是需要使用者以插件的方式安装并集成进去,在账户那里右键设置,进入模型供应商设置那里,可以看到有很多大模型可供集成,入口:https://cloud.dify.ai/plugins
你可以选择合适的模型供应商进行安装,比如我这里选择了DeepSeek ,通义千问大模型,以及国内的硅基流动大模型集成平台,主要是把对应的模型供应商的apikey配置进去即可。
3.2 提取图片发票的内容
3.2.1 创建新应用
创建一个空白应用
创建一个chatflow类型的应用
创建完成后,将自动跳转到下面的流程配置页面上
3.2.2 开始节点增加一个文件类型参数
开始节点需要接收用户的输入上传文件,因此需要提前添加一个文件类型的参数变量,如下
3.2.3 增加一个文档提取器节点
由于需要识别发票上面的内容信息,需要添加一个组件,该组件用于提取发票中的内容,因此在开始节点之后,增加一个文档提取器节点
输入变量选择开始节点中的文件
3.2.4 增加大模型节点
该大模型节点用于从上一步提取的内容信息中,进一步按照指定的要求提取信息中的字段数据
注意这里的大模型节点,需要选择可以进行图像识别即视觉功能的大模型,比如千问系列带有VL的可以考虑使用,如下,我这里选择了硅基流动中自带的千问大模型中带有VL的
接下来,配置大模型节点的系统提示词,这一步很关键,通过下面的提示词,将上一步抓取到的发票内容中的指定字段信息提取出来
请提取这张照片的内容,其中内容格式'机器编号'、'发票代码'、'发票号码'、'开票日期'、'校验码'、'购买方名称'、'购买方纳税人识别号'、'购买方地址、电话'、'开户行及账号'、'货物或应税劳务、服务名称'、'规格型号'、'单位'、'数量'、'单价'、'金额'、'税率'、'税额'、'价税合计(大写)'、'价税合计(小写)'、'销售方名称'、'销售方纳税人识别号'、'销售方地址、电话'、'开户行及账号'、'备注'、'收款人'、'复核'、'开票人'字段返回信息,返回的结果信息以json格式返回
需要在配置节点中,打开视觉功能的配置开关,如下
3.2.5 配置回复结束节点
将大模型节点连接回复节点,回复内容使用大模型节点的速出结果
3.2.6 效果测试
如下,本地有一张发票,用这张发票进行效果测试
对上面的工作流进行发布更新后,在预览窗口中上传该发票文件,可以看到能够正常解析到发票中的指定字段信息
3.3 提取PDF发票文件内容
基于上面的配置流程,如果我们上传一个PDF的文件让它解析,将会看到下面的现象,说明在这种情况下并不支持,简单来说就是文档提取器对于这种嵌入图片的PDF文件不一定能够精准提取,需要借助其他的插件工具,接下来就需要改造下流程。
3.3.1 安装PDF插件
在插件市场搜索PDF并安装下面的这个插件工具
3.3.2 增加PDF工具节点
移除开始节点后面的文档提取器节点,增加上面新安装的PDF工具节点
PDF 工具节点参数信息参考下面的配置
3.3.3 调整大模型节点
大模型节点的输入变量调整为上个PDF工具节点的输出内容
3.3.4 效果测试
重新发布流程,点击预览,然后上传PDF文件再次进行解析,也能得到预期的结果
四、写在文末
本文通过案例操作详细演示了如何基于Dify完成搭建一个发票文件的识别完成过程,希望对看到的同学有用哦,本篇到此结束,谢谢观看。