我用solo生成了一个有火眼金睛的费用审核助手

1. 摘要

用 SOLO 从零搭建了一套智能费用审核系统,能自动识别报销单、发票、支付截图,通过 11 条规则 + 9 条 AI 审计全面检测异常。其中支付截图造假检测采用 OpenCV 确定性算法 + 大模型宏观检测的双层架构,能精准识别数字字形篡改、小数点伪造、千分位异常等肉眼难以察觉的造假痕迹。原本人工审核一张报销单需要 15 分钟,现在 3 分钟即可完成。


2. 背景

我是一名财务兼产品,平时需要审核大量的报销单据。传统审核流程中,需要逐一核对报销单、发票、支付记录等多种单据,人工比对金额、日期、收款方等关键字段,不仅耗时耗力,而且容易因人为疏忽导致风险遗漏。

更棘手的是,支付截图造假手段日益精妙——PS 修改金额、拼接不同平台的界面元素、伪造数字字形等,肉眼几乎无法识别。我希望能用 AI 打造一个"火眼金睛"的审核助手,既能提效,又能堵住人工审核的漏洞。


3. 实践过程

任务拆解

我把整个系统拆解为四个核心模块:

  • OCR 识别模块:自动识别报销单、发票、支付截图的字段

  • 规则审计模块:11 条纯代码校验规则

  • AI 审计模块:9 条智能审计规则

  • 人工复核模块:高风险全量复核、中风险抽检、低风险免检

审计规则设计

规则审计(11 条,纯代码校验)

编号 名称 严重程度 检测内容
R001 金额一致性 动态 发票总额 vs 报销金额 vs 支付总额,差额<5%通过,5-10%非否决,>10%否决
R002 日期合理性 非否决 支付日期 ≤ 开票日期 ≤ 支付日期+7天容差
R003 敏感类目 动态 发票货物名称命中敏感词库(高端烟酒、奢侈礼品等)
R004 收款方一致性 否决 发票销售方 = 支付收款单位
R005 支付时间异常 非否决 22:00-06:00 夜间支付、周末支付
R006 发票连号 否决 同一单据内发票号码连续递增
R007 金额异常 非否决 金额在 9000-10000 区间且为整数(疑似拆分)
R008 供应商风险 否决 经营异常 / 新成立≤3月且≥1000元 / 小规模且≥5000元
R009 拆分套票 非否决 同一销方≥3张小额发票,日期差≤3天
R010 节假日开票 非否决 开票日期在法定节假日列表中
R011 支付截图数据校验 否决 交易单号嵌入日期 vs 交易时间不一致;重复交易单号

AI 审计(9 条,大模型 + OpenCV)

编号 名称 严重程度 检测内容
A001 招待标准合理性 非否决 人均消费是否超标,优先参考知识库标准
A005-1 数字字形检测(9/6) 否决 OpenCV 凸性缺陷检测,深度比>33%判定伪造
A005-2 小数点形状检测 否决 OpenCV 圆形度检测,圆形度>0.80判定异常
A005-3 千分位格式检测 否决 支付宝≥1000必须有千分位,微信不得有千分位
A005-4a 嫁接检测 否决 大模型检测跨平台字段(如微信出现支付宝特征)
A005-4b UI排版/逻辑异常 非否决 大模型检测字体不一致、间距异常、色调异常
A003 内容一致性 非否决 发票内容与报销说明语义匹配分析
A004 经营范围匹配 否决 发票货物是否在供应商经营范围内
A006 知识库合规兜底 否决 基于企业制度文档的合规性检查

风险等级判定规则

  • :red_circle: 高风险:命中≥1项否决指标

  • :orange_circle: 中风险:无否决但命中≥1项非否决指标

  • :green_circle: 低风险:所有审计项通过

SOLO 能力使用

能力 用途
代码生成 前端 Vue3 + 后端 FastAPI 完整代码
多模态模型 OCR 识别、支付截图视觉检测
文档生成 PRD 文档、部署指南、流程图
调试能力 定位并修复多个 Bug

关键过程

① 支付截图造假检测的演进

这是整个项目最核心也最困难的模块,经历了多次方案迭代:

  • 方案一(失败):像素扫描 + 放大,让模型看金额区域。结果模型识别到了美团 logo 而不是金额,放弃。

  • 方案二(失败):百度 OCR 定位金额区域 → 放大 → 视觉模型判断。结果模型把真实截图误判为造假,不可靠。

  • 方案三(成功):OpenCV 确定性算法 + 大模型宏观检测的双层架构

    • 微观层:数字 9/6 字形检测(凸性缺陷深度 > 33% 判定伪造)、小数点形状检测(圆形度 > 0.80 判定异常)、千分位格式检测

    • 宏观层(大模型):嫁接检测(跨平台字段)、UI 排版异常

② 踩过的坑

问题 解决方案
百度 OCR 限流 添加 1.1s 间隔,等待冷却
OCR 识别到商品编号而非金额 正则过滤:只识别含小数点的金额格式
PNG RGBA 转 JPEG 报错 先转换颜色模式再保存
千分位轮廓过滤太严格 放宽宽高比和面积限制
A005-4a 提示词误报 明确列出检测项,禁止模型衍生

4. 成果展示

系统业务流程图 审计系统业务流程图 hosted at ImgBB — ImgBB

审计系统业务流程图

整个系统采用双引擎驱动(规则引擎 + 大模型 AI 审计),通过分级处置机制(高/中/低危漏洞差异化处理),实现了从上传→审计→复核→反馈优化的完整闭环。

核心页面

页面 功能
单据审计页 报销单录入、发票/支付记录表格、文件上传、OCR 识别、审计执行
审计历史页 历史记录查询、详情查看、报告导出
配置中心 敏感词库、规则参数、知识库管理
人工复核 数据看板、待复核列表、抽检管理

核心文档

  • PRD 文档(含流程图、页面原型、非功能需求)

  • 部署指南(一键启动脚本)

  • 审计主流程说明

:clapper_board: 视频演示

Bilibili - 智能费用审核系统演示


5. 效果与总结

提效数据

指标 人工 系统
单张报销单审核时间 15 分钟 3 分钟
支付截图造假识别率 依赖经验 OpenCV 确定性检测

SOLO 在流程中的作用

  • 生成了完整的前后端代码(Vue3 + FastAPI)

  • 调试并修复了多个 Bug(OCR 限流、格式转换、阈值校准)

  • 生成了专业的 PRD 文档、流程图、页面原型

  • 提供了部署方案和一键启动脚本

可复用的方法

  1. 双层检测架构:OpenCV 确定性算法 + 大模型宏观判断,既保证精度又覆盖广度

  2. 规则引擎可配置化:敏感词、规则参数、严重程度全部可视化配置,无需改代码

  3. A005 子规则拆分:将复杂检测拆解为独立子规则,便于独立优化和阈值调整

总结

这个项目让我深刻体会到:AI 不仅能提效,更能解决"人眼看不出来的问题"。支付截图造假检测从最初的"让模型看"到最终的"OpenCV + 大模型"双层架构,是不断试错、不断优化的结果。SOLO 在这个过程中既是开发助手,也是调试伙伴,让我一个财务+产品角色也能完成完整的系统开发。

赞,少有的给出了具体实现业务规则的应用了

1 个赞