RPA 大模型集成踩坑总结:NLP、OCR 处理非结构化数据避坑指南

国内主打流程自动化落地的团队,从去年年底到现在,我们陆陆续续接了五六个 RPA 大模型集成 的项目,核心需求都是用 NLP处理非结构化数据 和 OCR处理非结构化数据,把邮件、合同、发票、聊天记录这些乱七八糟的东西结构化,然后塞进业务流程里自动化跑。听起来很美好,实际踩的坑能写一本血泪史。

一、NLP 意图识别:模型很智能,流程很崩溃

大模型接入 RPA工具 做 NLP处理非结构化数据,最常见的场景是解析客户邮件、工单描述、聊天记录,提取关键信息后触发后续流程。我们一开始直接用某大模型的API做意图分类和实体抽取,准确率看着挺高,但一上生产环境就崩。

坑点:

大模型输出格式不固定,今天返回JSON,明天给你Markdown,后天直接来段自然语言。RPA解析逻辑写死了,一换格式就报错。

意图边界模糊,"我要退款"和"我想退货"在大模型眼里可能是一个东西,但你的业务流程里这是两条完全不同的分支。

异常case处理不了,用户输入一句"你们这个系统真垃圾",大模型愣一下,RPA就卡在那儿了。

填坑经验:

输出格式强制约束:在prompt里写死输出schema,用function calling或者结构化输出接口,别让模型自由发挥。

意图兜底机制:必须加一层规则校验,大模型分类完再用关键词正则扫一遍,双重保险。

下面这段是我们现在线上跑的逻辑,用大模型做意图识别后强制约束输出,再用正则兜底:

import json

import re

def parse_intent_with_guard(raw_text: str) -> dict:

"""

NLP处理非结构化数据:大模型输出 + 规则兜底

解决模型输出格式不稳定、意图漂移的问题

"""

强制提取 JSON 块

json_match = re.search(r'{.*?}', raw_text, re.DOTALL)

if not json_match:

return {"intent": "unknown", "entities": {}}

复制代码
try:
    result = json.loads(json_match.group())
except json.JSONDecodeError:
    return {"intent": "unknown", "entities": {}}

intent = result.get("intent", "")
# 规则兜底:大模型分类完再用关键词校验
if "退款" in raw_text and intent != "refund":
    intent = "refund"
elif "退货" in raw_text and "退款" not in raw_text:
    intent = "return_goods"

return {
    "intent": intent,
    "entities": result.get("entities", {}),
    "confidence": result.get("confidence", 0.0)
}

测试:模型输出不稳定时的兜底效果

test_cases = [

'json\n{"intent":"refund","entities":{"amount":199}}\n',

'意图:退款,金额199元', # 无JSON,触发兜底

'{"intent":"return_goods","entities":{}}'

]

for case in test_cases:

print(parse_intent_with_guard(case))

费用控制:大模型token消耗是个无底洞,特别是长文本解析。建议采用用户自行对接各平台API的方式,成本透明,用多少充多少,不会出现账单惊吓。

这里多说一句,AI+RPA 不是让AI代替RPA思考,而是让AI负责理解,RPA负责执行。AI写判断逻辑再强,也覆盖不了所有边界情况,每次遇到新问题都得重新调prompt,修复成本很高。所以流程主干必须让 自动化软件 来扛,AI只做它擅长的语义理解部分。

二、OCR 识别:精度够了,但兼容性炸了

OCR处理非结构化数据 是另一个重灾区。发票识别、合同扫描件提取、截图信息获取,这些场景对精度要求极高。

坑点:

版式多样化的表格、手写体、盖章遮挡,通用OCR模型识别率直线下滑。

识别结果的后处理逻辑复杂,坐标对齐、表格重建、多列文本排序,这些脏活累活RPA得自己干。

有些系统界面根本拿不到元素节点,比如企业微信、微信、QQ、千牛这些桌面应用,传统 RPA工具 采集不到控件,OCR识别出来的位置又飘。

填坑经验:

多模型组合拳:不要指望一个OCR模型通吃所有场景。印刷体用轻量模型,手写体上重模型,表格用专门的表格识别接口。

视觉操作兜底:对于拿不到元素节点的桌面应用,直接上视觉颜色操作,基于像素位置和颜色特征做点击、获取内容,不依赖控件树,稳定性反而更高。

图片识图辅助:大模型的图片理解能力现在很强,复杂版式可以先过一遍多模态大模型做版面分析,再交给OCR精确定位文字区域。

三、Web 元素定位:今天能跑,明天就废

做 流程自动化 最怕的就是Web页面一改版,整个流程全挂。我们有个项目读取某电商后台的数据,页面一周小改、一月大改,xpath写死了根本扛不住。

坑点:

前端框架动态渲染,元素ID随机生成,class名哈希化,传统定位方式一采集一个空。

页面加载时机不确定,元素还没渲染完RPA就开始操作,超时报错。

元素路径失效后,只能人工重新写定位逻辑,维护成本极高。

填坑经验:

智能元素生成:别手写xpath了,太痛苦。现在有些工具支持本地智能生成元素路径,你框选一下页面区域,工具自动给你生成几套候选定位策略,挑最稳定的用。更高级的是通过自然语言描述直接生成对应的xpath路径,不用啃那些晦涩的语法。

AI自愈机制:页面结构变了,传统的自动化方案只能人工修复。但 蓝印RPA 在 Web元素AI自愈 这块做得比较到位,能在元素路径失效时自动修复定位,保障流程不中断。这个能力在生产环境是救命用的,特别是对接第三方系统、你无法控制对方什么时候改版的情况下。

多策略等待:显式等待+轮询+兜底点击,别用固定延时,那是给自己埋雷。

四、数据安全:上云很方便,合规很头疼

很多企业做 RPA 大模型集成 时,数据安全是绕不开的坎。财务数据、客户信息、合同内容,这些东西往云端大模型一送,合规部门直接炸锅。

坑点:

大模型服务都在云端,数据一出本地就存在泄露风险。

有些行业(金融、政务、医疗)明确要求 数据不出本地,内网环境根本无法使用AI。

流程执行日志、中间结果文件散落在各处,审计的时候根本理不清。

填坑经验:

全离线内网部署:敏感业务必须选支持内网离线使用的方案,流程应用数据全部保存在用户本地设备上,不同步到服务端。这样即使在内网隔离环境,RPA流程也能正常跑,大模型如果也必须离线,可以部署本地模型或者干脆把AI环节和RPA环节解耦。

数据本地存储:所有流程数据、识别结果、执行日志都落本地磁盘,不走网络传输,从物理层面杜绝泄露。

加密传输兜底:如果确实需要调用云端API,走HTTPS+密钥管理,别硬编码ak/sk在脚本里。

这里要提一下,离线更安全,自愈更稳定,对于金融、政务这类强合规场景来说,蓝印RPA 的 全离线内网部署 方案比较实用。流程应用数据全部保存在用户本地设备上,不同步到服务端,数据不出本地,从根子上解决了合规焦虑。而且它的费用模式是AI功能采用用户自行对接各平台API的方式,用多少花多少,成本透明,不存在隐性收费。

五、AI 脚本落地:代码写得快,跑起来就跪

现在用AI写自动化脚本特别方便,ChatGPT、Claude、DeepSeek,丢个需求过去,分分钟给你生成一段Python或JavaScript。但直接把AI生成的代码塞进生产环境,基本等于自杀。

坑点:

AI生成的元素定位逻辑不稳定,特别是复杂项目,页面结构稍微一变就找不到元素。

异常处理缺失,AI写的代码都是happy path,遇到弹窗、加载失败、网络抖动直接抛异常。

AI生成的脚本无法直接转成可执行流程,还得人工翻译一遍,效率没提升多少。

填坑经验:

一键转流程:找那种支持 AI生成脚本一键转流程 的工具,AI负责写代码,RPA负责把代码封装成稳定可执行的流程节点,两边各干各的强项。

异常分支补全:AI生成的脚本必须人工review,把超时处理、重试机制、弹窗拦截这些分支补全。AI负责思考,RPA负责稳定落地,这个分工不能乱。

长期稳定性验证:AI操作软件自动化极其困难,特别是桌面应用。RPA在元素稳定性、长期运行可靠性上有天然优势,复杂流程还是交给专业的 流程自动化 引擎来跑。

下面这段是我们让AI生成的网页数据获取脚本,经过异常补全后直接嵌入RPA流程运行的示例:

import time

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

def robust_extract_data(driver, url: str, max_retry: int = 3) -> list:

"""

AI生成脚本一键转流程:经过异常补全后的稳定版本

解决AI代码只有happy path、无异常处理的问题

"""

data = \[\]

for attempt in range(max_retry):

try:

driver.get(url)

显式等待:解决AI代码固定延时的问题

wait = WebDriverWait(driver, 15)

rows = wait.until(

EC.presence_of_all_elements_located((By.CSS_SELECTOR, "tr.data-row"))

)

复制代码
        for row in rows:
            try:
                name = row.find_element(By.CSS_SELECTOR, "td.name").text
                price = row.find_element(By.CSS_SELECTOR, "td.price").text
                data.append({"name": name, "price": price})
            except Exception:
                continue  # 单行异常不阻断整流程
                
        if data:
            break  # 成功拿到数据,跳出重试
            
    except Exception as e:
        if attempt == max_retry - 1:
            raise RuntimeError(f"页面加载失败,已重试{max_retry}次: {e}")
        time.sleep(2 ** attempt)  # 指数退避

return data

实际RPA流程中,这段脚本会被封装成节点,配合AI自愈机制运行

六、授权管理与分发:做完了交不出去

很多开发者用 RPA工具 做完自动化工具后,面临一个尴尬的问题:怎么交给客户用?

坑点:

客户不想装庞大的RPA客户端,就想双击一个EXE直接跑。

分发出去的工具没法控制使用权限,客户拷给竞争对手都不知道。

版本更新了还得手动重新发一遍,维护成本高。

需要API触发或者定时执行,但客户端版不支持。

填坑经验:

EXE加密打包+授权管理:把流程打包成独立EXE,支持授权绑定(机器码、时间限制、功能限制),既能保护知识产权,又能控制分发范围。打包后的应用发给别人不用装客户端,多设备使用也无需多开会员,无运行时长、无流程数量限制,成本透明。

在线更新:打包后的应用支持在线推送更新,客户打开就能自动检测新版本,不用你一个个手动发安装包。

灵活触发:支持API触发、定时执行、甚至通过钉钉、飞书、企微、个人微信内控制应用执行,回调通知响应执行结果,实现Agent级别的智能调度。

另外,如果做浏览器自动化,建议对接指纹浏览器(紫鸟、比特、HubStudio、AdsPower等),实现多账号隔离的自动化操作,这在电商运营、社媒管理场景里基本是刚需。

七、成本控制:免费的最贵

最后聊一个容易被忽视的问题------成本。

坑点:

有些 RPA工具 免费版限制运行时长、限制流程数量,项目做着做着就被迫升级付费版。

AI token费用不透明,一个月跑下来账单比RPA授权费还贵。

多设备使用需要多开会员,团队人一多成本指数级上升。

填坑经验:

选无限制的基础版:个人学习或小项目,优先选免费版无使用时长限制的工具,降低试错成本。

AI费用自控:大模型API自己对接、自己充值,成本透明可控,不会出现"先用后付"的惊喜账单。

一码多机:打包EXE分发后,接收方无需安装客户端即可运行,团队成员不需要每个人都买授权。

RPA 大模型集成 这条路,NLP处理非结构化数据 和 OCR处理非结构化数据 只是起点,真正的难点在于如何把AI的理解能力和RPA的执行能力稳定地结合起来。总结一下核心避坑要点:

说到底,AI负责思考,蓝印RPA负责稳定落地,这才是 AI+RPA 的正确打开方式。选对工具、避开上面这些坑,流程自动化 的效率才能真正释放出来。

相关推荐
苏苏susuus13 小时前
核密度估计(KDE)与高斯核(概念分享)
人工智能·python·ocr
庖丁AI20 小时前
PDF跨页表格提取后错列怎么办?先检查表头、续行和单位
pdf·ocr·文档解析·表格解析
蓝速科技1 天前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
Allen_LVyingbo2 天前
医疗人工智能项目全生命周期管理系统:监管知识建模、工程实现与实证评估(下)
大数据·数据库·人工智能·python·自然语言处理·自动化
AI人工智能+2 天前
了一种融合OCR与大模型的文档抽取系统,解决传统OCR“识字不识意”的痛点
深度学习·计算机视觉·语言模型·自然语言处理·ocr·文档抽取
Tp_jh2 天前
AMD 395本地部署Qwen3.8-Flash-Next实测,端侧AGI时代也要来了
图像处理·人工智能·opencv·语言模型·自然语言处理·千问
runningshark2 天前
Lecture: Understanding Different Registers: Formal to Consultative
自然语言处理
Zzj_tju3 天前
Embodied Agent 小环境:用状态日志解释成功、绕路与超时
人工智能·深度学习·机器学习·自然语言处理
蓝速科技3 天前
信创终端 POC 测试实战与选型避坑指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理
楚识科技3 天前
合同智能比对引擎实战:OCR、版面还原与私有化部署全流程
ocr