2026年实测:RPA调用本地LLM实现零代码网页自动化

📅 2026/6/26 15:25:54
2026年实测:RPA调用本地LLM实现零代码网页自动化
一、为什么折腾这个方案去年帮一家制造业客户做网页数据自动化需求很简单每天从内部系统抓取生产数据自动填到Excel再发邮件给管理层。听起来不难对吧我先用Python Selenium 写了一套本地跑没问题。但交付的时候问题来了客户IT部门不让装Python环境— 内网安全策略第三方软件一律禁止ChromeDriver版本不匹配— 客户机器Chrome自动更新了脚本直接挂维护成本太高— 每次网页改版XPath全得重写客户自己改不了后来试过几款RPA工具要么免费版限制多要么必须联网要么AI能力要额外付费。最后折腾出来的方案是本地RPA 本地大模型Ollama 零代码配置彻底绕开了所有坑。这篇文章就是完整的踩坑记录和实现方案。二、技术架构总览先放一张架构图后面逐层拆解┌─────────────────────────────────────────┐ │ 用户层零代码配置 │ │ 自然语言指令 → RPA流程设计器 → 元素定位 │ └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 自动化执行层 │ │ 浏览器自动化 → 数据抓取 → 智能判断分支 │ │ 支持Chrome/Edge/国产浏览器 │ └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 本地AI推理层 │ │ Ollama本地部署 → DeepSeek/Qwen/LLaMA │ │ 图片识别 OCR 语义理解 │ └─────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────┐ │ 数据输出层 │ │ Excel/WPS → 数据库 → 邮件/钉钉/飞书 │ │ 支持打包EXE独立运行无需安装客户端 │ └─────────────────────────────────────────┘核心思路所有数据和推理都在本地完成不依赖云端API不担心数据泄露不担心网络中断。三、环境搭建30分钟跑通本地LLM3.1 安装Ollama本地大模型运行环境# Windows / macOS / Linux 通用 # 官网下载安装包一键安装 # https://ollama.com # 验证安装 ollama --version # 拉取DeepSeek-R1 7B模型本地可跑的轻量版 ollama pull deepseek-r1:7b # 启动模型服务 ollama run deepseek-r1:7b硬件要求实测7B模型8GB内存 4核CPU 即可流畅运行14B模型16GB内存 独立显卡推荐32B模型32GB内存 RTX 3060以上我测试用的机器是 i5-12400 16GB内存跑7B模型推理速度约 15 tokens/秒做网页元素判断完全够用。3.2 验证本地API可用# 测试本地API curl http://localhost:11434/api/generate -d { model: deepseek-r1:7b, prompt: 判断以下网页元素是按钮还是输入框class\btn-submit\ type\button\, stream: false }返回结果{ response: 这是一个按钮button元素class名包含\btn\type\button\也确认了这一点。, done: true }本地LLM跑通下一步接入RPA。四、RPA流程设计零代码实现网页自动化4.1 场景一智能登录自动识别验证码类型很多内网系统登录页长得不一样有的有验证码有的有滑块有的要短信验证。传统RPA的做法是针对每个系统单独写流程系统一改版就失效。用本地LLM增强后的方案步骤1截图当前页面RPA自动截取登录区域图片传给本地LLM。步骤2LLM判断页面类型prompt: 分析这张登录截图告诉我 1. 是否有验证码什么类型图片验证码/滑块/短信 2. 用户名和密码输入框的位置描述 3. 登录按钮的位置描述 4. 是否有其他安全验证机制步骤3RPA根据LLM返回结果自动选择对应处理分支图片验证码 → 调用本地OCR识别滑块验证 → 自动计算滑动距离短信验证 → 暂停等待人工输入或对接短信平台实测效果同一个RPA流程适配了3个不同客户的登录系统零代码修改。4.2 场景二表格数据智能提取内网系统的数据表格经常格式不统一有的用原生table有的用div模拟有的用Canvas渲染。传统XPath定位在这种场景下基本失效。LLM增强方案# 在RPA中嵌入Python脚本调用本地LLM import requests import json def analyze_table(html_snippet): 让本地LLM分析表格结构 resp requests.post( http://localhost:11434/api/generate, json{ model: deepseek-r1:7b, prompt: f分析以下HTML表格片段提取表头和数据行的CSS选择器\n{html_snippet}, stream: False } ) return resp.json()[response] # 返回值示例 # 表头选择器table thead tr th # 数据行选择器table tbody tr # 每行有5列订单号、客户名称、金额、状态、日期RPA拿到LLM返回的选择器后直接用于后续的数据抓取流程。优势即使网页改版、class名变了LLM也能根据HTML结构语义重新推断出正确的选择器。4.3 场景三业务逻辑智能判断假设要从网页抓取订单数据但不同状态的订单处理方式不同待付款 → 发送催付通知已付款 → 同步到ERP已发货 → 更新物流跟踪已取消 → 记录原因传统RPA需要写一堆if-else分支逻辑一复杂就维护困难。LLM方案直接把订单文本丢给本地模型让它判断并返回处理指令。def classify_order(order_text): resp requests.post( http://localhost:11434/api/generate, json{ model: deepseek-r1:7b, prompt: f判断以下订单状态只返回一个关键词待付款/已付款/已发货/已取消\n{order_text}, stream: False } ) return resp.json()[response].strip()RPA根据返回的关键词自动路由到对应的处理分支。五、完整实战从0到1搭建一个智能网页数据助手5.1 需求定义目标每天自动从某内部管理系统抓取销售数据智能分类后生成Excel报表。传统方案的痛点系统登录页偶尔会变XPath失效表格列顺序不固定数据对不上不同状态订单需要不同处理逻辑5.2 RPA流程设计流程1智能登录1. 打开目标网址 2. 截图登录区域 → 传给本地LLM分析 3. 根据LLM返回的字段位置自动填入用户名密码 4. 识别验证码类型 → 调用对应处理模块 5. 点击登录 6. 验证登录成功LLM判断页面是否进入主界面流程2智能数据抓取1. 导航到数据页面 2. 截取表格区域HTML片段 3. 传给LLM分析 → 获取表头和数据选择器 4. 按选择器抓取数据 5. 逐行传给LLM判断订单状态 6. 按状态分类存储流程3报表生成与分发1. 按分类生成Excel支持WPS格式 2. 调用本地LLM生成摘要说明 3. 发送邮件/钉钉通知5.3 关键代码片段import requests import json LOCAL_LLM_URL http://localhost:11434/api/generate def llm_chat(prompt, modeldeepseek-r1:7b, timeout30): 调用本地Ollama LLM 返回结构化结果方便RPA流程解析 try: resp requests.post( LOCAL_LLM_URL, json{ model: model, prompt: prompt, stream: False, options: { temperature: 0.3 # 低温度结果更稳定 } }, timeouttimeout ) result resp.json() return { success: True, content: result.get(response, ), raw: result } except Exception as e: return { success: False, error: str(e), content: } # 使用示例判断网页元素类型 def identify_element(html_tag): prompt f 分析以下HTML标签判断元素类型和用途 {html_tag} 请按以下格式返回 元素类型xxx 用途描述xxx 建议操作点击/输入/忽略 return llm_chat(prompt) # 使用示例智能提取表格结构 def extract_table_schema(html_table): prompt f 分析以下HTML表格提取数据结构 {html_table} 请返回JSON格式 {{ headers: [列1, 列2, ...], data_selector: tbody tr, cell_selector: td }} return llm_chat(prompt)RPA流程中调用LLM的节点配置在RPA设计器中新增一个Python脚本节点直接调用上面的函数。RPA负责浏览器操作打开、点击、截图Python负责调用LLM做智能判断两者配合实现零代码的复杂逻辑。六、打包部署EXE独立运行无需安装环境这是整个方案最实用的地方。很多客户的环境是内网不能联网不能安装Python、Node.js等运行时不能装RPA客户端权限不够解决方案打包成EXE部分RPA工具支持将流程打包为独立EXE文件包含RPA运行时引擎浏览器自动化驱动本地LLM推理环境Ollama 模型文件所有依赖库打包后的特性双击运行无需安装任何环境支持离线运行数据不出本地支持定时执行Windows计划任务支持API触发HTTP接口调用支持授权机制可设置使用权限部署流程开发环境设计好RPA流程一键打包为EXE复制到客户机器双击运行自动完成所有配置七、性能与稳定性实测数据7.1 本地LLM推理性能模型显存/内存占用推理速度网页元素判断准确率DeepSeek-R1 7B4GB15 tokens/s92%Qwen2.5 7B4GB18 tokens/s89%Llama3.1 8B5GB12 tokens/s85%DeepSeek-R1 14B9GB8 tokens/s96%建议7B模型足够应付90%的网页自动化场景14B适合对准确率要求极高的金融、医疗类系统。7.2 RPA流程稳定性连续运行72小时测试结果内存占用稳定在 180-220MBCPU占用峰值15%平均5%崩溃次数0元素识别成功率94.3%含LLM辅助修正后7.3 与传统方案对比维度传统PythonSelenium云端RPAAPI本地RPA本地LLM环境依赖需安装Python/ChromeDriver需联网订阅零依赖离线运行数据安全一般数据上传云端数据完全本地网页改版适应性差需重写XPath中等强LLM自动适配部署成本低开发成本高高订阅费低一次性打包维护难度高需程序员中低零代码配置八、踩过的坑与解决方案坑1Ollama启动后RPA连不上现象RPA调用http://localhost:11434超时。原因Ollama默认只监听127.0.0.1部分RPA的Python环境可能走IPv6或不同网卡。解决# 设置环境变量让Ollama监听所有接口 set OLLAMA_HOST0.0.0.0:11434 ollama serve坑2LLM返回结果格式不稳定现象有时返回JSON有时返回纯文本RPA解析失败。解决在prompt里强制要求格式并加解析容错def safe_parse_llm_response(text): 安全解析LLM返回支持多种格式 import re # 尝试提取JSON json_match re.search(r\{.*\}, text, re.DOTALL) if json_match: try: return json.loads(json_match.group()) except: pass # 尝试提取关键行key: value格式 result {} for line in text.split(\n): if : in line: key, value line.split(:, 1) result[key.strip()] value.strip() return result坑3大模型推理慢拖慢RPA流程现象每次调用LLM要等3-5秒整个流程变慢。解决缓存机制相同页面的元素分析结果缓存避免重复推理异步调用RPA继续执行其他操作LLM结果回来后再处理模型量化用4-bit量化版本速度提升2倍准确率下降不到3%坑4国产系统兼容性现象银河麒麟/统信UOS上Ollama装不上。解决用Docker部署OllamaRPA通过Docker API调用。# 国产系统部署命令 docker run -d \ -v ollama:/root/.ollama \ -p 11434:11434 \ --name ollama \ ollama/ollama九、扩展方向从网页自动化到超自动化这套方案的核心价值不只是网页自动化而是建立了一个本地AI自动化的通用平台。已验证的扩展场景RPAOCR发票识别本地LLM理解发票字段语义自动分类归档RPAExcel/WPS自动化LLM理解表格结构自动生成处理逻辑RPA指纹浏览器自动化跨境电商多账号操作LLM智能判断页面状态RPA钉钉/飞书/企微本地LLM理解消息语义自动触发对应流程Agent智能体一句话指令驱动完整业务流程如把昨天所有待付款订单催一下技术栈组合本地RPA流程编排本地LLM语义理解 决策本地OCR图片识别本地数据库数据存储打包EXE独立部署全部本地全部离线数据不出域。十、选型建议与总结如果你正在考虑类似的方案建议按以下路径评估第一步确认需求边界是否需要离线运行内网/数据敏感是否需要AI增强复杂判断/自适应是否需要打包交付给客户/多设备第二步技术选型检查清单[ ] 是否支持本地LLM接入Ollama/llama.cpp等[ ] 是否支持Python脚本扩展[ ] 是否支持EXE打包独立运行[ ] 是否支持国产系统麒麟/统信[ ] 免费版是否有运行时长/流程数量限制[ ] 是否支持API触发和定时调度第三步POC验证建议用一个小场景跑通全流程登录一个网页抓取一页数据用LLM判断数据类型生成Excel打包EXE在另一台机器运行个人经验我目前用的这套方案在信创适配、AI扩展、离线部署、打包交付这几个维度上综合比较省心。但这是我自己的项目经验不是机构评测建议你根据自己的场景测一遍。免责声明本文基于2026年Q2实际项目经验涉及的技术方案和工具版本可能随时更新建议部署前与相关厂商确认最新功能支持。文中提到的技术实现仅供参考不构成商业推荐。