目录

碉堡了!AI在内控审计中的逆天应用!

在上篇文章中,我在尝试搭建一个AI工作流,需要实现以下目标:

根据客户的制度文件,

  1. 生成控制活动描述。
  2. 判断是否存在设计缺陷。
  3. 生成访谈清单。
  4. 生成资料清单。
  5. 根据收到的资料,进行内控测试检查。

今天我搭建的 demo 初步实现了前两个。

以下是详细步骤。

打造制度文件知识库

整个项目的核心,其实就是根据一个循环的控制点,提取公司制度中的材料。

所有后面的操作,都是基于提取的材料来进行阅读、分析、判断等。

这里,我们还是寻找成熟的方案。

这里我使用的开源系统:ragflow 。

它能够友好将你上传的文件,通过 embedding 模型存入向量数据库中。

不需要你再手写一堆文件处理代码。

ragflow 在解析文件时,有多种文本切片的方式。

其中,我肉眼测试下来, paper 切片方式是最好的:

它会判断页面布局,不会把一个段落的文字拆分开。

同一章节的内容是尽量在一起的。

这对于制度文件有强上下文逻辑的比较适用。

当制度入库后,你完全可以将它当成一个知识库来进行对话,

它是基于语义理解的,比你肉眼看制度强得多。

而且它的回答中会引用制度原文,可以直接精确定位到原文件。

当然,这只是附带产物,我主要还是利用 API 调用它检查制度原文,并不需要对话。

API 的调用可以看接口文档。

提取控制点相对应制度原文

假设手中我们有一个循环的控制点文件:

我们通过表单将其上传到 n8n 工作流中:

( 注:引用的知识库ID 为前面 ragflow 上传了制度的知识库ID ,真正做成产品的时候,可以将 ragflow 无缝对接起来 )

工作流会循环上传的Excel 中每一行数据,

以“相应的内部控制”的文字去检索 ragflow 中对应语义最接近的材料,

( 这里调用 API 的时候,向量相似度权重和相似度阈值两个参数非常重要,需要不断测试找到最优的参数)

上图中为以“制定销售计划并经过审批:企业根据发展战略、产能、市场需求预测等制定年度和月度销售计划,按规定权限和程序审批后执行。”为问题,检索到最相关的制度文本。

组装文本,向AI提问

我们将上述检索出的材料组装成一个长文本。

给到 information extractor 节点(用于结构化数据提取),

提示词如下:

## 角色
你是一名经验丰富的内控审计专家
## 任务
针对{{ $('Loop Over Items').first().json["循环"] }},为了防范{{ $('Loop Over Items').first().json["主要风险点"] }},对“{{ $('Loop Over Items').first().json["相应的内部控制"] }}”关键控制点进行审计。
### 任务1
根据RAG检索出的被审计单位相关内控制度:
```{{ $json.text }}```
筛选出与该循环的关键控制点相关的内控制度,包含制度名称和对应原文,输出“相关制度”,不相关的制度需要排除。
### 任务2
根据任务1识别的相关制度,整理输出“控制活动描述”,即用一句话进行专业描述,表达要客观清晰、具备可测试性,并包含控制的目的、执行人、控制内容、频率、控制方式和留痕依据等要素,但不需要逐项分点列出,只输出一条完整规范的审计用语。
### 任务3
输出“控制频率”,即每年一次、每季一次、每月一次、每周一次、每日一次、每日多次。如果制度中未明确则写“待填写”。
### 任务4
输出“相关单据”,列出控制活动中的依据或记录,如盘点表,发货单,对账单等,单据名称用书名号包裹,如:《客户信息表》。
### 任务5
输出“设计缺陷”,判断是否存在内控制度设计缺陷。如果存在设计缺陷,则输出存在设计缺陷,并简要列示缺陷名称和原因。如果不存在,则输出不存在设计缺陷。

## 输出
将任务中需要输出的字段以json格式输出,包含:“相关制度”,“控制活动描述”,“控制频率”,“相关单据”,“设计缺陷”,均为文本格式,不要是数组。

上述提示词有一些变量,是从我们上传的 excel 文件中的内容,

如:循环、主要风险点、相应的内部控制。

我给了它 5 个任务,通过阅读检索出的制度原文,生成:

  1. 相关制度。

  2. 控制活动描述。

  3. 控制频率。

  4. 相关单据。

  5. 设计缺陷。

可以看到,这里直接就形成了我们需要的结构化数据。

生成控制矩阵文件

我们循环完所有的控制点后,工作流直接将结构化数据组装成 excel 文件,下载到本地。

其中我们拿一条判断为有设计缺陷的描述:

我们上传的控制点为:

价格浮动授权:授权销售部门在基准价基础上有限浮动,销售折扣与折让需审批并记录归档。

结合公司制度判定的缺陷为:

存在设计缺陷, 缺陷名称:价格浮动授权缺少明确规定, 原因:制度未明确销售部门在基准价基础上进行价格浮动的具体授权范围和审批流程, 可能导致销售定价的随意性。

我让熟悉情况的同事看了下,她觉得这个是写得准确度是可以的。

感受和思考

当然,这个方式是否可行,还需要同事大量去测试。

但目前,这条路至少是跑通了。

曾经,我做内控的时候,尤其是新项目,

对自己负责的循环,查阅相应制度文件,

编写控制活动描述,就要花费大量时间。

而有了这个 AI 工作流,一个循环跑下来可能也就两、三分钟,

就把每个控制点,对应的制度文件名称、制度原文,

控制中产生的单据、记录都写出来了,

并且帮你初步判断是否存在设计缺陷以及具体缺陷原因都写出来。

这极大节省了作业人员时间。

最关键的这个控制点不是死的,是用户自己上传的,

也就是不只可以运用在财审的内控审计,

对于IT审计的ITGC ,ITAC 其实也是可以用的!

那下一步,就是生成访谈提纲了,

并且可以针对有设计缺陷的,或者没有制度明确的,

着重写访问问卷,从而在访谈过程中做到有的放矢。