审计报告检查功能发布

上个月我写了两篇文章,一篇讲想法,一篇讲踩坑。
今天这篇讲结果:审计报告检查器,做好了。
丢一个 PDF 进去,点一下"开始检查",它会自动解析报表、建附注索引、跑勾稽规则,最后告诉你哪些数字对不上。
不用配置,不用写公式,不用一页一页翻。
它能查什么

七类检查,覆盖审计报告里最容易出错的地方。
报表间勾稽——资产总计是不是等于负债加所有者权益,利润表的净利润和资产负债表的未分配利润对不对得上。纯数字比对,代码直接算,零误差。
报表与附注勾稽——合并报表上的应收账款 3.2 亿,附注里应收账款的账面价值合计也是 3.2 亿吗?报表端代码取值,附注端 AI 定位。
附注科目内勾稽——固定资产的原价减累计折旧减减值准备,等不等于账面价值?同一个科目的附注页面里,两端都靠 AI 找数字。
附注跨科目勾稽——信用减值损失里的应收账款坏账损失,和应收账款附注里的本期计提金额对不对得上?跨科目交叉核对。
[!提示] 以上 4 种数据勾稽用户可以自定义规则(软件内置 147 条规则)。 以下 3 种校验不需要配置规则,AI 自主分析检查。
表内校验——AI 分析每个表格的结构,自动识别合计行和明细行的竖加关系、行内的横加关系(比如"账面余额 - 坏账准备 = 账面价值"),然后代码精确验算。(不用用户配置规则)
格式检查——页眉是不是每页都一样,页码有没有跳号,公司名称前后是否一致。
文本检查——错别字,病句检测。
点击检查结果,PDF 自动跳转到对应位置并高亮。查完导出 Excel,摘要和明细两个 Sheet。
怎么做到的

上篇文章我说过,推倒重来之后的核心思路是:AI 做理解,代码做计算。
具体来说分五步:
第一步,解析 PDF。 文字页用 PyMuPDF 直接提取,扫描页渲染成图片让 AI 视觉识别。跨页表格自动合并,页眉自动检测剔除。
第二步,结构化报表。 AI 分析前 30 页,一次性定位 8 张财务报表的位置,然后逐表解析行项目——项目名称、附注编号、期末期初金额。权益变动表最复杂,文字 PDF 直接从表格数据精确解析,扫描 PDF 用 AI 视觉加二次验证。
第三步,建附注索引。 从报表的附注引用编号出发,收集所有科目名称,然后遍历附注页面匹配标题,建立"科目→页码范围"的映射。不精确拆分附注内容,只记录每个科目大概在哪几页。
第四步,跑规则。 报表间的勾稽纯代码算。涉及附注的,通过索引找到对应页面,把那几页内容发给 AI,让 AI 定位具体数字,定位完之后比较的事交回给代码。
第五步,表内校验。 AI 分析每个表格的结构,识别合计行和明细行的关系,识别横向计算关系,然后代码精确验算。
整个过程,AI 只干一件事:在一段文本里找到某个数字。比较、加减、判断,全部交给代码。
上篇文章踩的坑就是让 AI 同时找数字又做比较,出了错分不清是哪一步的问题。拆开之后,定位错了就是定位错了,计算错了就是计算错了,排查清清楚楚。
操作步骤
软件安装
打开网盘,下载两个软件:
- SW_Audit_Tool_Setup_v1.7.4_Full.exe
- tesseract-ocr-w64-setup-5.5.0.20241111.exe 第一个是 sw 审计工具箱本体,
第二个是默认安装在 C 盘,它会被调用将横向的 pdf 图片旋转正确再发送 AI,否则会 AI 识别不准确。
参数设置
打开 SW 审计工具箱,点击“参数设置” 标签页,
填写你信任的 AI 平台的 API 接口(支持通用 Openai 接口格式)
填写好后,点击保存设置。
打开 PDF
点击“功能列表”标签页,双击“报告核查”功能:


点击"打开文件",选择你要检查的审计报告,再点击“开始检查”,等待 2-5 分钟即可出现结果,
点击对应源页码和目标页码可以跳转 pdf 对应页面进行人工复核。
规则支持自定义

内置的勾稽规则覆盖了资产负债表、利润表、现金流量表、权益变动表之间的交叉关系,以及常见科目的附注披露。
但不同行业、不同公司总有特殊情况,所以规则支持自定义。你可以在"规则编辑"标签页里加自己的规则,语法很简单:
source_scope: 合并资产负债表
source_item: 流动资产合计 + 非流动资产合计
operator: =
target_scope: 合并资产负债表
target_item: 资产总计
项目名称支持公式(用 + 和 - 连接),支持时期后缀(-本年数、-上年数),权益变动表支持 行【行名】 列【列名】 定位单元格。
不同公司的项目名称可能不一样,“所有者权益"和"股东权益”、“股本"和"实收资本”,工具会自动做同义词匹配,匹配不上的还有 AI 语义匹配兜底。

检查结果怎么看
三种状态:
| 符号 | 含义 | 说明 |
|---|---|---|
| ✓ | 通过 | 两端数值一致 |
| ⚠ | 警告 | AI 没找到对应数值,可能是公司没有这项业务 |
| ✗ | 不通过 | 数值不一致,需要人工核查 |
警告不代表有问题。比如一家公司没有存货减值,对应的规则就会报"定位失败",这是正常的。
不通过才是需要关注的——要么报告里真的有数字错误,要么是 AI 定位偏了(比如取错了本年和上年的列)。
实际测试下来,报表间勾稽的准确率接近 100%,因为纯代码计算。涉及附注的规则,准确率取决于 AI 定位的质量,大部分情况下没问题,复杂表格偶尔会偏。
还有什么不足
说几个已知的局限:
扫描件的表格识别依赖 AI 视觉模型,复杂表格可能出现列错位。权益变动表的多行表头、合并单元格,是重灾区。
AI 定位附注数值有时候会取错列,尤其是本年和上年挨得很近的时候。
表内校验还有一些误报,表格中有复杂的逻辑关系的时候目前会有误报。
规则覆盖不可能穷尽所有情况。不同行业、不同公司的特殊披露,需要自己加规则。
这些问题我都在持续改进。但即便有这些不足,自动跑一遍,总比人工一条一条翻要靠谱得多。
( 备注:我仅测试了两三家事务所的报告格式,不保证所有事务所的格式都能使用 )
最后
这个检查器不是要替代人工检查。因为它目前并不能完全精准,也不能完全检查完所有东西。
它是报告在打印前的最后一步工序,排查出最低级的错误。
工具已经集成在 SW 审计工具箱中,更新到最新版本即可使用。
下载链接: