一、概述
AI 发票智能识别 Agent 是一个基于 MaxKB 平台的智能体,专门用于处理多类型发票文件的智能识别、分类整理和格式转换。该智能体能够处理 PNG、JPG、JPEG、PDF 等多种格式的发票文件,通过企业微信接口集成和接入模型,实现文件上传和发票信息提取,最终输出标准格式化的发票信息和发票源文件的存储media_id。
标准化的发票信息和media_id,可以在提交发票报销审批时使用,目前已有基于该智能体的系统,对接企业微信的报销流程,改进企业内部报销流程,提升报销效率。详细介绍见参考资料。
二、功能
- 多格式支持: 支持 PNG、JPG、JPEG、PDF 等多种发票文件格式
- 批量处理: 能够同时处理多个发票文件
- 企业微信集成: 通过企业微信临时素材管理实现文件上传并获取media_id
- 智能识别: 利用AI模型提取发票关键信息
- 格式标准化: 输出统一的 MarkDown 格式发票信息
- 规则校验: 内置发票信息核对和验证机制
三、工作流程
1. 初始化阶段
-
根据对话时的默认值(企业微信企业ID和企业微信自建应用密钥)通过工具获得 access_token
-
将智能体的输入内容(JSON格式存储文件在MaxKB的OSS路径的图片和PDF)合并为一个JSON数组
-
给数组中部分内容增加双引号使其符合JSON格式

2. 文件处理循环
在循环体中,每次循环执行以下操作:
-
从JSON数组中取得一个元素
-
通过工具从JSON保存的路径中下载上传的文件
-
将文件上传到企业微信临时素材获取到文件对应media_id
-
如果上传结果为空,自动重复一次该步骤
-
通过工具将多个media_id合并为一个结果并赋值给全局变量media_ids

3. 分类处理阶段
根据文件类型进行智能分类处理:
情况一:只有图片
-
通过AI模型从图片文件中提取发票信息
-
将信息转为规定的标准格式
-
对发票信息进行核对验证
-
将判断结果整理到发票信息的描述中
-
通过模型将发票信息转化为MarkDown格式输出

情况二:只有PDF
-
通过AI模型从PDF文件中提取发票信息
-
将信息转为规定的标准格式
-
对发票信息进行核对验证
-
将判断结果整理到发票信息的描述中
-
通过模型将发票信息转化为MarkDown格式输出

情况三:同时有图片和PDF
-
分别处理图片和PDF文件
-
分别提取图片和PDF文件中的发票信息
-
分别进行信息核对和验证
-
将判断结果整理到发票信息的描述
-
合并输出为MarkDown格式

四、工具说明
1. 获取access_token.tool
-
功能: 获取企业微信自建应用的访问令牌
-
输入参数:
-
corpid: 企业微信企业ID -
corpsecret: 企业微信自建应用密钥
-
-
输出: access_token

2. 整理输入内容为一个标准JSON数组.tool
-
功能: 将输入的文档和图片的JSON数组合并为标准JSON数组
-
输入参数:
-
input_document: 文档输入JSON数组 -
input_image: 图片输入JSON数组
-
-
输出: 合并后的JSON数组

3. 全局变量_image输出参数加双引号.tool
-
功能: 将输入字符串中的单引号转换为双引号,生成合法的JSON格式
-
输入参数 :
input_string- 前面合并为一个JSON数组的结果 -
输出: 标准JSON格式数据

4. 上传file到企业微信_获取media_id.tool
-
功能: 下载文件并上传到企业微信临时素材,获取media_id
-
输入参数:
-
access_token: 企业微信访问令牌 -
file_json: 文件信息JSON
-
-
输出: 文件的media_id

5. 将多个字符串用逗号拼接成数组.tool
-
功能: 将多个media_id合并为数组格式
-
输入参数: 多个media_id字符串
-
输出: 合并后的数组

五、使用说明
1.输入要求
-
文件格式: PNG、JPG、JPEG、PDF
-
输入方式: 通过文件上传功能提交发票文件
-
附加信息: 可输入报销理由等补充信息
2.输出格式
智能体输出标准的MarkDown格式,包含:
-
发票基本信息(发票代码、发票号码、开票日期等)
-
金额信息(含税金额、不含税金额、税额等)
-
开票方和收票方信息
-
发票类型和状态判断
-
核对验证结果
3.交互示例
用户:(开始对话)

智能体: 您好,我是 AI 发票智能识别 Agent。 您可以上传多种类型的多个发票图片或文件(PNG、JPG、JPEG、PDF), 并输入报销理由,我会输出识别、分类整理后的发票信息。

用户:上传发票文件并输入报销理由

智能体:(回复结果如下)

六、技术架构
1.核心组件
-
MaxKB平台: 提供智能体运行环境
-
企业微信API: 实现文件上传和管理
-
AI模型: 用于发票信息提取和识别
-
自定义工具: 处理数据转换和格式标准化
2.数据处理流程
- 文件接收 → 2. 企业微信上传 → 3. AI识别 → 4. 信息校验 → 5. 格式转换 → 6. 格式输出
七、智能体部署
1.环境依赖
-
MaxKB平台环境(v2.0)
-
企业微信企业账号和自建应用
-
网络连接(用于API调用)
2.部署过程
-
登录MaxKB平台
-
进入"工具"页面,点击"创建",选择"导入创建",选择github仓库下载的tool工具文件,点击"导入",确认导入后点击工具的按钮启用工具
-
进入"应用"页面,点击"创建",选择"导入创建",选择github仓库下载的mk智能体文件,点击"导入",点击智能体进入智能体设置页面
-
配置智能体
3.配置参数
需要在智能体配置中设置:
-
企业微信企业ID (corpid)
-
企业微信自建应用密钥 (corpsecret)
-
文件内容识别、格式转换所使用的模型在智能体导入后需要重新选择配置
-
(可选)内容识别组件的提示词中的输出样例具体内容,可以按照实际的发票信息填充,以此提高模型提取准确性
-
配置完成后,点击"保存"按钮,点击"发布"按钮
八、注意事项
-
文件大小: 确保上传的文件大小在企业微信限制范围内
-
网络稳定性: 文件上传过程需要稳定的网络连接
-
格式兼容性: 确保上传的文件格式在支持范围内
-
错误处理: 系统具备重试机制,但建议通过智能体对话日志监控处理状态