前言
前几天我分享了如何用 Coze
平台搭建一个发票凭单整理的智能体,能自动从发票图片中提取销售方、商品明细、金额等关键信息。
结果被财务朋友一句话点醒:“现在都是PDF电子发票啦,图片识别已经不实用了!”
咱主打一个听劝,立马安排一个可以识别多张 PDF 格式电子发票的智能体。
场景描述
场景和上一次几乎一样,只是从上传发票图片变为上传电子发票的 PDF,并且支持多张 PDF。
原有智能体回顾
上次的智能体一个截图就能看明白,没有工作流,仅仅通过“人设与回复逻辑”调用“插件”实现的。
唯一一个难点就是“飞书多维表格”的插入,这个大家有需要可以回顾一下上一次的分享文章。
《每月月底报销犯愁?Coze智能体帮你自动整理报销凭单,轻松节省2小时! - 掘金》
我们这次就不再新建智能体了,直接在上次智能体的基础上进行改动。
改动内容
对应原有智能体的工作,这次改动主要也是两部分:人设与回复逻辑、插件。
PDF读取插件
智能体最开始就是识别,我们通过一个 PDF 读取的插件实现。
我帮大家尝试了下,有些插件对发票的编码、格式不太支持,最终确定的可用插件是“文档读取”插件。
速度和准确率都还不错。
人设与回复逻辑改动
提示词改动主要包括两个地方:兼容 PDF 插件调用、识别结果格式化。
支持调用 PDF 读取插件
在原有“识别发票信息”的地方修改,使其自动根据上传格式选择不同插件。“针对用户上传的发票,根据不同格式选择<图片理解>或者<doc_reader>插件”。
识别结果强制格式化
飞书多维表格写入时容易出现格式转换错误,这是因为我们识别后,没有严格限制提取信息的格式导致。
这次正好一起严格限制下。
格式规则:发票号码:文本类型开票日期:统一更改为“2025年5月23日”的格式。销售方名称:文本类型商品或服务明细:文本类型金额:文本类型
这个是多次试用后发现的一个问题,并不会稳定出现,算是大模型“幻觉”的一个小体现吧。
完整版“人设与回复逻辑”:
# 角色你是一个专业的发票报销助手,能够准确、快速地根据上传的发票自动识别并整理报销凭单,以清晰明了的方式呈现报销信息。## 技能### 技能 1: 识别发票信息1. 针对用户上传的发票,根据不同格式选择<图片理解>或者<doc_reader>插件,一张张识别,精准提取发票中的关键信息,包括发票号码、开票日期、销售方名称、商品或服务明细、金额,其余信息无需提取。2. 对提取的信息进行准确性校验,确保信息完整、准确。### 技能2:写入飞书多维表格将识别并校验后的发票信息,按照格式规则转换后,构造为符合飞书多维表格接口的数据结构,并通过<飞书多维表格/add_records>插入到飞书多维表格中。格式规则:发票号码:文本类型开票日期:统一更改为“2025年5月23日”的格式。销售方名称:文本类型商品或服务明细:文本类型金额:文本类型## 限制:- 只处理与发票报销相关的内容,拒绝回答与发票报销无关的话题。- 所输出的报销凭单和相关信息必须按照规范的格式进行组织,不能偏离框架要求。- 确保信息准确,发票识别和信息提取需依据专业技术和标准流程。- 仅提供与发票报销相关的建议和解答,基于普遍适用的报销政策和实际情况。
至此,本次改动已经完成,是不是很简单?让我们一起看看效果怎么样吧。
效果验证
这次换了两张发票,为了更好的验证效果,特意选择的一张是之前的电子版发票样式,一张是新版电子发票样式的。
上次因为图片识别插件的缘故只能一张一张上传发票图片,这次,因为插件原因也顺道解决了。
一次性上传多张发票 PDF(我这里选择了2张),并发送“识别发票信息并写入飞书多维表格”指令。
智能体执行结果
飞书多维表格写入结果
哦耶,完美搞定!
结语
本次分享主要在前次发票整理智能体的基础上通过增加插件、优化提示词的方式实现了电子发票 PDF 识别与提取的功能,不仅提升了识别效率,还让数据录入更加便捷。
并且改动非常简单,如果你也有类似需求,不妨动手试试哈~