AI 驱动开发:20 分钟搞定智能发票申请单系统

1.前言

发票申请单是指企业在进行交易或服务提供时,向税务机关或指定机构申请开具发票的正式文件或流程。它通常用于记录交易信息、申请人信息、发票类型、金额等关键内容,以确保交易的合法性和合规性。

发票申请单的具体内容可能包括申请人信息、交易详情、发票类型、金额、用途描述、相关证明材料等。例如,企业内部财务流程中,发票申请单作为支出的起点,有助于确保支出的合理性与合法性,并为后续的会计记账和对账工作提供依据。

下面也有一张发票申请流程图

之前也给大家介绍过关于发票相关的工作流。前几天给大家做了一个基于dify的发票申请单的工作流。

dify案例分享-告别手工录入!Dify 工作流一键生成发票申请预览,对接开票系统超简单》前几天我基于这个也做了一版gradio页面功能。效果如下:

这张发票申请单是多条记录,第二张发票申请单信息如下:

那么这样的页面系统是如何制作的呢?呵呵其实我是基于AI 开发的。下面就给大家介绍一下项目开发过程。

2.AI开发过程

首先我们需要梳理一下业务的需求,这个需求大致是这样的。用户上传一个待开发票申请单,系统通过表格解析或者多模态大模型来识别这些申请单或者发票信息,解析申请单信息后给用户展示待开发票预览功能。 这里我们使用到rovodev 来开发的。 关于rovodev 之前给大家介绍过,感兴趣小伙伴可以看我之前的文章《mcp-server案例分享-零代码挑战!用 RovoDev 一键生成 Mermaid 驱动的 MCP-Server

提一次提问

复制代码
文件中11.xlsx-99.xlsx 是发票申请单的数据,数据中会包含多张发票申请单。fapiao.pdf是一张开具后的发票信息。
请把根据fapiao.pdf的票面信息提取发票申请单的原始数据。请找出发票申请单规律提取发票信息。使用LangGPT提示词(prompt)语法编写一个发票申请单提取提示词专家,提取的发票申请单是为了后开具发票使用的。

这里主要的目的是让AI 理解我们的需求让它了解这个原始EXCEL表格的数据结构,生成的目标发票表的数据格式是什么样子的。然后让他写提取发票信息的相关提示词。

过程截图

通过上面的交互AI 初步完成了我们的代码,代码名称叫做 "发票申请单提取示例.py" 。生成好提示词文档。

第二次提问

生成gradio 提示词

复制代码
我给你的图片11.png、12.png、13.png、14.png在一个视频里面截图的,请根据这个图片的信息把上面生成的提示词文档 发票申请单提取专家_LangGPT.md、发票申请单提取示例.py
代码功能基于gradio 页面方式来实现。gradio 页面左边提供excle 发票申请单上传功能,右边是显示发票填空预览的界面功能。实现上传申请单后,通过发票申请单提取专家_LangGPT.md、发票申请单提取示例.py
生成待开发票预览申请界面。注意考虑到发票申请单有多张发票,预览界面也要显示多张发票预览功能。

通过上面的步骤我们完成了代码初步生成。

第三次及后面代码修复

复制代码
生成的代码发票系统_完整版.py发票预览 发票1-专用发票 预览可以显示切换到 发票 2 - 专用发票 无效果,请修改代码

系统运行效果

后面大致的情况和上面类似,总之就是和AI 对话方式来实现代码生成和BUG的修复。代码的编写方式编程由原来的手写代码,调试代码、测试代码。变成我和AI对话教它修改。目前这种方式会节约大量的编码时间和初步代码调试时间,不过生成的代码验证测试这个时间少不了。另外AI 写代码也会犯错,有些简单的东西我们手写就可以解决。它不知道上下文会出现反复修复还是修改不成功,另外在使用过程中如果处理的不好,可能会把原来修复好的代码修改坏掉。

后面的几次沟通和修复我这里就不做详细展开了。

​ 修改4

复制代码
原始申请单信息比如77.xlsx 申请单第二张发票信息中缺少公司名称、付款单位税务登记号/组织机构代码号、地址及电话、付款单位开户行及账号 数据是缺失的,请根据申请单第一张发票信息中补全这块,请修改发票申请单提取示例.py 和对应生成发票申请单提取专家_LangGPT.md 这些内容是否需要修改。

​ 修改5

复制代码
   生成的代码发票系统_完整版.py发票预览 发票1-专用发票 预览可以显示切换到 发票 2 - 专用发票 无效果,请修改代码

​ 修改 6

javascript 复制代码
  发票系统_完整版.py 代码中 导出数据生成JSON 缺少第二发票申请单里面公司名称、付款单位税务登记号/组织机构代码号、地址及电话、付款单位开户行及账号,请根据之前修改发票申请单提取示例.py 和对应生成发票申请单提取专家_LangGPT.md 同步修改。另外在生成的发票预览发票2-专用发票 同样存在类似问题,请一并修改

​ 修改7

arduino 复制代码
  发票系统_完整版.py代码中导出数据生成的json数据里面invoices.商品明细 节点里面 "商品名称" 和发票申请单提取专家_LangGPT.md 要求的不符合。建议修改成"应税劳务名称"。请根据上面的要求修改发票系统_完整版.py 代码

通过上面的几轮反复修改和验证测试,我大概花费了20分钟不到的时间就完成了代码实现和相关文档的输出。

3.完整的代码

​ 通过上面的截图我可以看到 fapiaosqd.py、requirements.txt 、提示词文档、docker相关、README.md 都已经按照要求生成完成。一个项目就这么生成出来了。

​ 生成的效果如下:

​ 项目代码github.com/wwwzhouhui/...

docker镜像我已经上传,感兴趣的小伙伴可以下载使用docker快速部署体验一下。你也可以下载源码手工部署。

上面的代码实现还是比较简单的,大家也可以和我上期使用dify来实现做个对比,看看哪个更好用,哪个更简单?呵呵

4.总结

今天主要带大家详细了解并实践了借助 AI 工具(RovoDev、Gradio 等)开发智能发票申请单处理系统的全过程。该系统作为一款专注于发票申请单处理的工具,凭借 AI 驱动的自动化解析、多发票预览展示以及便捷的部署方式,为企业发票申请流程带来了高效且便捷的解决方案。

项目通过与 AI 对话的方式完成代码生成与修复,极大简化了开发流程,支持 Excel 发票申请单上传、多模态信息提取、多张发票预览切换以及 JSON 数据导出等核心功能,同时提供 Docker 镜像和源码两种部署方式,满足不同用户的使用需求。无论是从原始数据解析到发票预览生成,还是从功能调试到最终部署,整个过程都高效直观,有效节省了传统手写代码的时间成本。

这种 AI 辅助开发的方案为企业财务人员处理发票申请、简化开票流程提供了理想选择,尤其适合需要高效处理批量发票申请单的场景。它的实现展示了 AI 在办公自动化领域的实用价值,有望成为企业财务流程中的得力助手。感兴趣的小伙伴可以通过提供的源码或 Docker 镜像尝试部署使用,体验 AI 驱动的智能发票处理带来的便捷高效。今天的分享就到这里结束了,我们下一篇文章见。

相关推荐
杨荧2 小时前
基于大数据的美食视频播放数据可视化系统 Python+Django+Vue.js
大数据·前端·javascript·vue.js·spring boot·后端·python
Re2753 小时前
我用4碗面讲清HTTP的四大请求方法:GET/POST/PUT/DELETE
后端
有梦想的攻城狮3 小时前
spring中的ApplicationRunner接口详解
java·后端·spring·runner·application
程序视点3 小时前
设计模式之原型模式!附Java代码示例!
java·后端·设计模式
G探险者4 小时前
Java 中 null 值在 JSON 输出时丢失的坑:一次 Object 参数 + Fastjson 多态的血泪教训
后端
振鹏Dong4 小时前
微服务架构及常见微服务技术栈
java·后端
程序员爱钓鱼5 小时前
Go语言实战案例:简易JSON数据返回
后端·go·trae
程序员爱钓鱼5 小时前
Go语言实战案例:用net/http构建一个RESTful API
后端·go·trae
bobz9655 小时前
firewalld 添加 nat 转发
后端