我用Coze打造了批量发票识别助手,一键识别上百张发票,识别成功率超过99.99%,这才是AI识别发票的正确打开方式!

☀大家好,我是芝麻☀

AI智能体,AI副业搞米,AI实战案例分享

👇点击关注,每篇文章能给你带来一定的收获👇

图片

你好,我是芝麻!

相信很多人多多少少都和发票打过交道,应该有不少人都体验过报销时整理票据的痛苦

图片

如果你是开公司的小伙伴,还没有专职财务,那每个月处理发票的滋味,就更是一言难尽了,如果只是几张发票倒还好,不用AI,自己核对一下也花不了多少时间。但真正考验的是,当几十上百张发票堆在面前,并且每一个数据都要求精准无误的时候,该怎么办?在AI没有出现之前,当然是人肉核对了

图片

尤其这对于小微企业和代理记账公司来说,这几乎是每月固定的体力活,AI的作用是为了替代90%重复性的机械性劳动,让AI智能体助力小微企业解放财务的双眼

我们来看看最后可以得到一个什么样的发票统计表格

图片

需求分析

这种工作流可以归属到文件处理类工作流,发票识别工作流的实现难度主要在于识别各种文件类型的发票,如何保证图片或者PDF识别的正确性就是本工作流的难点。

下面给出用户输入、工作流的实现步骤。

用户输入

  1. 发票文件数组,不限制类型,pdf、图片都支持

工作流步骤

  1. 定义用户输入

  2. 批量识别发票

  3. 发票格式处理

  4. 批量写入飞书

  5. 返回飞书地址

工作流缩略图

图片

工作流拆解

第零步,准备工作

工作流识别出来的发票信息需要写入飞书多维表格,在拆解工作流之前,需要准备一个飞书多维表格,注意在这里开启链接分享

图片

这样的配置就是对的了

图片

然后新增以下表头,记录发票的各种属性

图片

第一步,定义用户输入

开始节点设置两个输入参数

files是发票文件数组,支持上传多张发票,并且不限制格式,PDF、图片都可以上传

feishu_token就是刚刚创建的飞书多维表格的网址

图片

第二步,批量识别发票内容

下面是本工作流的核心插件,链接读取

图片

这是扣子官方出品的链接读取,它可以获取网页、pdf、doc、docx、xlsx、csv、text 的内容,调用成功率高达100%

真有这么牛?先来测试一下,这里有一张发票图片

图片

我们将这张照片上传看一下插件会给我们返回什么样的信息

预览中间是表格,所以需要往右边拖一下才可以看到完整数据

图片

图片

图片

可以看到该有的信息都识别出来了,因为发票是印刷体,所以识别正确率非常的高

这里使用插件自带的批处理批量处理发票

图片

输入url选择批处理元素,这里会报一个类型转换错误

在文件上传后coze工作流会自动将文件转为一个链接,也就是字符串类型的数据,是符合这边的类型要求的

图片

第三步,发票格式整理

上一步识别出来的信息不是很整齐,是乱的,所以这边需要使用一个大模型对每一个识别出来的信息进行一个整理,将信息对应起来

注意这里也是使用批处理,输入的循环数组是上一步批处理的输出

图片

循环元素选择自身节点的循环元素的pdf_content,即插件识别到的文本内容

图片

第四步,批量写入飞书多维表格

将信息整理完成后,就需要批量将其写入飞书多维表格了

批处理节点使用上一步的输出作为输入

图片

在写入飞书之前需要适配飞书多维表格插件的记录格式,进入飞书多维表格插件的详情页面,查看add_records写入记录插件的详细面板

图片

可以看到这里给出的示例数据格式,它这样的格式不清晰,整理如下

图片

这种格式有个专业术语叫JSON,感兴趣的可以去简单学习一下,很简单的。

简单介绍一下这个JSON,它定义了一个对象数组,每个对象有一个属性fields,该属性定义了这条记录的列名和对应的值。

那类比一下就可以知道,我们要写入我们的发票飞书多维表格,格式就应该是下图这样的,非常清晰了吧

图片

所以在调用写入飞书记录插件之前,我们需要将刚刚整理出来的数据适配飞书的格式,这里使用代码插件或者大模型节点都是可以的

图片

代码如下(代码类型选择JavaScript):

import json

async def main(args: Args) -> Output:
    # 获取输入参数
    input = json.loads(args.params.get('input',''))
    # 构建输出对象
    records = [{
        "fields":{
            "购买方名称":str(input.get('购买方名称','')),
            "购买方纳税人识别号":str(input.get('购买方纳税人识别号','')),
            "销售方名称":str(input.get('销售方名称','')),
            "销售方纳税人识别号":str(input.get('销售方纳税人识别号','')),
            "商品或服务名称":str(input.get('商品或服务名称','')),
            "金额":str(input.get('金额','')),
            "税额":str(input.get('税额','')),
            "价税合计":str(input.get('价税合计','')),
            "发票号码":str(input.get('发票号码','')),
            "发票类型":str(input.get('发票类型','')),
            "发票代码":str(input.get('发票代码','')),
            "开票日期":str(input.get('开票日期',''))
        }
    }]
    # 构建输出对象
    ret:Output = {
        "records":records
    }
    return ret

适配完飞书记录格式后,就可以写入飞书多维表格了

app_token就是开始节点的飞书地址

records就是刚刚适配的飞书记录格式

图片

第五步,返回飞书地址

最后将飞书地址返回即可

图片

总结

智能体未来的主要市场还是在企业端,现在处于刚开始的萌芽阶段,大家对智能体的概念还比较陌生,现阶段一定是先以自媒体的形式去传播,比如做短视频,做文案,做海报。

但是未来的主方向,一定是提升企业和个人的生产效率为主,一个智能体可以替代掉3-5个员工,所以智能体的发展方向在未来1-2年一定是企业培训和落地应用为主

而且市场规模在2030年应该突破1万亿美元的一个规模。所以接下来5年智能体发展的路径一定是消费级-企业级-工业级的路线进行更迭


本期的内容就到这里了,感谢你的耐心。

如果你有智能体定制,合作,学习智能体,学习智能体变现等需求,也可以找我。

图片

跟着文章的步骤实操,实现了这次的工作流,可以把结果放在评论区和大家分享!

做的过程中遇到了问题也可以评论区留言,我会为大家解答!

看完喜欢,请帮忙转发分享一下,你的点赞转发,就是我更新下去的动力!

Logo

更多推荐