基于AI+企微的智能报销系统

一、总体架构

基于 AI+企业微信的智能报销系统,主要结合当前主流的智能体,对接企业微信的报销流程,改进企业内部报销流程,提升报销效率。主要包含三部分内容,详细下图所示:

  1. 基于企业微信的自定义报销流程:可在企业微信企业管理后台完成报销流程定义以及报销模板发布,其中包含报销时需要提交的表单内容以及发票相关信息等;
  2. 基于 MaxKB 的发票智能识别 Agent:通过 AI 完成发票内容识别以及提交时发票文件处理。
  3. 报销入口应用:入口应用主要将发票批量传递给 Agent,Agent 则将识别归类好的发票传递给应用,用户在应用页面上进行确认修改,无误后直接提交,提交时应用调用企业微信的报销流程接口,完成报销发起/提交。

二、业务场景

AI 智能报销系统主要解决以下两种报销类型:

  1. 日常报销:员工日常的餐饮、团建、交通以及其他发票的报销,对应员工的日常报销申请流程;
  2. 差旅报销:员工非Base城市的差旅费用报销,企业内部包含出差申请、差旅补贴申请以及差旅费用报销申请等三个流程可一键提交报销,默认同时提交三个审批,差旅补贴申请是否提交可自选。

三、系统结构与功能介绍

3.1 报销流程构建

基于企业微信编辑日常报销、出差申请、差旅补贴、差旅报销申请单以及审批流程(此处可以结合企业内部的需求适当更改),确认申请单表单内容以及审批流程节点,如下图所示:

流程模版一:日常报销

流程模版二:出差申请报销

流程模版三:出差补贴申请

流程模版四:差旅报销申请

3.2 发票上传

通过企业微信工作台进入AI发票报销应用,首先选择报销类型,其中包含日常报销和客成差旅报销两类,业务场景如图所示,日常报销对应单一申请单,客成差旅报销对应三个申请单。

上传发票文件时需填写报销理由及事项说明。

3.3 AI 智能识别

AI 智能识别基于MaxKB企业级开源智能体平台构建,其中 Agent 核心工作流如下所示:

Agent 主要流程如下所示:

  1. Agent 基本信息设置:
    1. 开启文件上传:支持上传发票文件文档和图片;
    2. 接口传参数:
      1. corpid:企业ID;
      2. corpsecret:应用secret;
      3. media_ids:图片ID数组;
    3. 设置会话变量:;
      1. media_ids:图片ID数组;
  2. **获取企业微信应用token信息:**首先判断是否上传了规定文件(图片、PDF等),未通过指定回复:"请上传PNG、JPG、JPEG、PDF等格式的发票文件"。有正确上传文件则获取"access_token":访问企业微信API接口,使用公司ID、自建应用Secret获取access_token
  3. **JSON文件数组合并及格式化:**将上传内容输出为一个标准JSON数组。上传到智能体的发票文件实际上被上传到了 MaxKB 的 OSS 中,使用时以 JSON 数据以数组格式传递,此处将 PDF 和图片的 JSON 数组合并为一个数组。同时使用数据格式化处理工具,去掉数组中的无关内容,且将部分参数加上双引号使其符合规范;
  4. **循环逐个提取单张发票的JSON数据:**通过"循环节点",逐个提取单张发票的JSON数据。
  5. **发票上传企业微信并获取文件media_id:**从JSON数据中取出MaxKB的OSS链接,加上access_token,临时下载文件后通过企业微信接口上传到企业微信临时素材,得到发票文件的media_id;
  6. **上传失败异常处理:**由于上传到企业微信有概率出现问题导致传递失败未能获得media_id,此处添加了是否为空判定,若为空则再次上传一遍,确保发票文件有对应的media_id;
  7. **拼接更新media_ids会话变量:**得到media_id后,与当前的全局变量media_ids合并为一个数组,数组元素中间用逗号隔开,并通过"变量赋值"工具,将合并后的数组赋值给全局变量media_ids;
  8. **实现方式路径判断:**将上传的文件,分为三种情况处理:只有图片、只有PDF文件、图片和PDF文件均有,根据判断选择不同的文件处理过程。
  9. **图片发票处理过程:**视觉模型提取图片文字内容后按照要求的格式输出,语言模型将其转化为合适的MarkDown格式。
  10. **PDF发票处理过程:**内容提取工具提取PDF文字内容后,语言模型将其按照要求的格式输出,之后语言模型将其转化为合适的MarkDown格式。
  11. **输出内容:**输出全部固定格式的发票信息和发票文件对应的media_ids,用于后续提交审批时使用。

3.4 日常报销确认并提交

上传的发票文件经 Agent 处理后,发票信息回传给报销应用并展示给用户,用户需确认报销信息填写是否完整,同时可以核对各个识别后的发票信息是否有误,确认无误后可以提交审批。如果出现错误,系统会提示错误,需要人工删除重新提交,其中错误包含以下几种场景:

  1. 发票抬头中的企业名称以及税号与本企业不一致;
  2. 个人抬头的发票个人不属于本企业;
  3. 发票报销时已经超过报销1年的期限;
  4. 不符合企业报销规则的发票,如普通员工智能报销二等座发票、飞机仅能做经济舱、酒店必须在华住旗下的经济型酒店。

发票有误,禁止提交审批

以上信息确认无误后提交,则应用调用企业微信报销流程API接口创建报销流程。

3.5 差旅报销确认并提交

上传的发票文件经 Agent 处理后,发票信息回传给报销应用并展示给用户,用户需确认报销信息填写是否完整(如客成差旅报销中的出差日期等),同时可以核对各个识别后的发票信息是否有误,确认无误后可以提交审批。如果出现错误,系统会提示错误,需要人工删除重新提交,其中错误包含以下几种场景:

  1. 发票抬头中的企业名称以及税号与本企业不一致;
  2. 个人抬头的发票个人不属于本企业;
  3. 发票报销时已经超过报销1年的期限;
  4. 不符合企业报销规则的发票,如普通员工智能报销二等座发票、飞机仅能做经济舱、酒店必须在华住旗下的经济型酒店。

发票有误,禁止提交审批

提交审批后,默认自动提交出差申请、出差补贴申请、差旅报销申请(其中出差补贴申请可自选是否提交):

3.6删除发票、继续上传发票

发票有误或不符合规范不能提交审批,用户可以删除这些发票,并将可提交上传的发票提交审批:

用户可点击发票信息下的"继续上传发票"按钮,在填写信息页面继续上传发票,后续提交审批:

3.7 报销流程审批

用户提交审批后,即可在企业微信中看到提交的申请单详情并后续跟踪审批状态完成最终报销。

四、总结

基于MaxKB和企业微信的AI报销应用解决了当前每次诸多发票整理过程的繁琐,同时通过合并出差申请单、出差补贴申请单以及差旅报销单改进优化了多个申请单提交的流程,大大提升了报销的效率,但是还存在一些需要改进的方面,简单罗列如下:

1、重复上传的发票需要进一步增加判断逻辑,确认无效发票;

2、根据批量提交的发票AI自动进行事项总结以及出差理由填写后续可以考虑进一步优化完善,解决用户多张发票分类上传;

3、出差日期等信息可以通过报销理由中尝试拆解填写;

4、如果企业内部需要使用,可以与企业内部项目管理平台、财务管理平台做对接,确保报销与销售合同关联。

其它不足之处欢迎大家评论区留言。

相关推荐
吐个泡泡v3 小时前
Stable Diffusion WebUI云部署
ai·stable diffusion·sd webui·linux部署
AlanHou4 小时前
Dify、n8n 还是 Coze?万字长文解析三大主流 AI Agent 平台
人工智能·agent
Ki13814 小时前
树莓派5:充当streamable-http类型的MCP服务器
ai·树莓派·fastmcp
Java小生不才4 小时前
LLM大模型工具-Ollama简介与安装
ai
逛街的猫啊4 小时前
【AI 专栏】JSON-RPC
ai·rpc·json
小龙5 小时前
大模型训练全流程学习笔记
笔记·学习·ai·大模型
龙腾亚太5 小时前
如何有效整合文本、图像等不同模态信息,提升模型跨模态理解与生成能力
langchain·多模态·dify·具身智能·智能体·vla
manjianghong865 小时前
结合AI编码和VBA宏批量调整word2007文档中的多个图片
ai·ai应用·ai编码·ai助力word编辑
阿部多瑞 ABU5 小时前
第五章:林心
人工智能·ai·ai写作