1. 项目背景与核心挑战
去年接手了一个制造业客户的财务流程自动化项目,需要将涉及8个系统的月末对账流程从人工4小时压缩到30分钟内完成。传统RPA开发面临三个致命问题:业务规则变动频繁导致脚本维护成本高、异常处理逻辑复杂、跨系统数据匹配准确率不足90%。这正是AI技术可以大显身手的场景。
企业级RPA与消费级自动化工具的最大区别在于:需要处理非结构化数据(如PDF发票)、应对系统界面变更、维持7×24小时稳定运行。我们设计的混合架构中,AI主要负责三类任务:图像识别提取票据信息(准确率提升至98%)、自然语言理解解析邮件指令、强化学习优化流程路径。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术方案设计
2.1 架构分层设计
采用"AI决策层+RPA执行层"的双引擎架构:
- 决策层:Python+PyTorch构建的NLP模型处理邮件工单,CNN+LSTM网络识别票据
- 执行层:影刀RPA负责具体操作执行,通过自定义插件与AI模块交互
- 中间件:自研的规则引擎实时监控系统元素变更,自动适配界面变化
关键设计要点:所有AI模型都部署为Docker微服务,通过gRPC与RPA机器人通信,避免直接耦合
2.2 异常处理机制
企业环境最大的挑战是系统响应不稳定。我们设计了三级容错:
- 元素级:智能等待+多定位策略(XPath/CSS/图像特征)
- 流程级:动态检查点+自动回滚(事务日志记录)
- 业务级:置信度阈值+人工交接(低于85%置信度自动转人工)
实测数据显示,该方案使流程中断率从传统方案的15%降至2.3%。
3. 详细实现过程
3.1 票据识别模块开发
使用Labelme标注了2000+张增值税发票构建数据集,训练时发现三个关键点:
- 发票代码区域需要特殊预处理(灰度化+锐化)
- 金额识别要用CRNN+Attention混合模型
- 数据增强必须包含打印模糊、折叠痕迹等真实场景
python复制# 发票识别核心代码示例
class InvoiceModel(nn.Module):
def __init__(self):
super().__init__()
self.cnn = ResNet34(pretrained=True)
self.lstm = nn.LSTM(input_size=512, hidden_size=256)
self.attention = AttentionLayer(256)
def forward(self, x):
features = self.cnn(x) # [b,512,8,32]
features = features.flatten(2) # [b,512,256]
seq_features, _ = self.lstm(features.permute(2,0,1))
attn_weights = self.attention(seq_features)
return torch.sum(seq_features * attn_weights, dim=0)
3.2 流程自动化编排
在影刀RPA中实现的关键技巧:
- 使用"智能录制"生成基础脚本后,必须手动优化元素定位
- 所有点击操作前添加try-catch和元素存在检查
- 重要步骤添加截图日志,方便后期排查
javascript复制// 银行对账自动化脚本片段
async function bankReconciliation() {
try {
await app.login('ERP', creds);
const statements = await aiService.extractPDF(bankFile);
for (const stmt of statements) {
await erp.searchInvoice(stmt.invoiceNo);
const diff = await erp.compareAmount(stmt.amount);
if (diff > 0.01) {
await exceptionHandler.handleDiscrepancy(stmt);
}
}
} catch (err) {
await slack.sendAlert(`对账失败: ${err.message}`);
throw err;
}
}
4. 部署与优化
4.1 性能调优经验
初期测试发现两个瓶颈:
- 票据识别平均耗时8秒:通过TensorRT优化和批量处理降到1.2秒
- RPA脚本执行不稳定:添加元素操作之间的随机延迟(0.5-2秒)
监控指标建议设置:
- 内存占用阈值:不超过容器限制的70%
- 流程超时:按步骤复杂度设置阶梯超时
- 重试机制:网络错误立即重试,业务错误先人工审核
4.2 企业级部署方案
最终部署架构包含:
- Kubernetes集群运行AI微服务(3节点负载均衡)
- 独立的RPA执行服务器(与生产环境网络隔离)
- Redis缓存近期处理数据(减少数据库查询)
- Prometheus+Granfa监控体系
上线后关键数据:
- 流程执行成功率:97.8%
- 平均处理时间:23分钟(原人工4小时)
- 人力成本节省:3.5FTE/年
5. 踩坑实录
-
元素定位陷阱:某次ERP升级后所有XPath失效。解决方案是改用相对XPath并结合图像特征匹配。
-
验证码识别误区:最初尝试用CNN破解验证码,后来发现更可靠的方案是对接企业SSO系统。
-
性能测试教训:未模拟高峰并发导致上线首日任务堆积。现在坚持用Locust做压力测试。
-
日志管理痛点:分散的日志难以排查问题。现采用ELK统一收集所有组件日志。
这个项目给我的最大启示是:AI不是替代RPA,而是让RPA能处理更复杂的业务场景。当客户财务总监说"机器人比人做得又快又好"时,就知道这条路走对了。
