认识与探索大模型时代的RPA应用及进化(上)

AI Agent当前仍然处于技术爬坡与实验阶段,特别是在企业领域,真正的成熟应用还处于广泛探索与原型验证阶段,离成熟还尚待时日。而同时另外一种在最近几年广受欢迎的自动化解决方案-RPA(机器人流程自动化)也在LLM时代不断升级进化。

本文将尝试结合理论与实例来梳理与探讨RPA在LLM影响下的应用与发展。

  • RPA概念/场景/技术/与BPA & AI Agent的区别

  • 实例:构建一个RPA机器人

  • LLM时代RPA的进化与场景

  • 实例:RPA与LLM的融合应用

01 RPA概念、场景、技术等

RPA是指Robotic Process Automation,即机器人流程自动化。是一种利用软件机器人(或称为“数字员工“)来模拟与整合人类在数字系统中进行的交互与操作流程的自动化技术。RPA在企业中通常用来取代人类员工在企业中执行的一些重复性的、规则明确的、频率较高的任务,解放员工以从事更需创造性、更高附加值的工作,达到降本增效的目的。

图片

一个可能的RPA流程

RPA的任务场景

RPA在一些大型企业已经得到较为广泛的应用,应用场景随着技术的发展也在不断完善与发展,一些常见的RPA应用包括:

  • 数据录入整合:批量地自动化数据录入,比如从不同系统和文件中获取,并整合到单一应用系统或者数据库中。

  • 财务流程自动化:在企业日常的财务流程中用于频繁的发票与报销审核、定期财务报表生成发送、批量报税等。

  • 客户关系管理:来自动搜集、整理与回复客户反馈;市场营销中的自动化信息生成与邮件发送;电商自动化的订单接收与处理。

  • 采购与供应链:借助机器人完成自动化的采购申请的处理,如搜集信息、验证信息、生成订单等。

  • 人力资源管理:使用机器人来帮助人事部门批量筛选简历与联络;员工入职离职流程处理、考勤统计管理等。

  • 企业IT运维:自动化的IT支持与运维任务,如系统监控、故障排除、软件部署,版本升级、安全补丁等。

RPA的技术特点

传统RPA技术主要通过计算机程序实现模拟键盘鼠标操作、识别与定位界面元素、文件与接口访问等,并按照设定的规则与控制流程自动执行任务。

  • 非侵入性。传统RPA主要工作在软件UI操作层做人工操作仿真。特别在企业应用中,对现有应用无侵入性,无需建设与提供特别的应用接口。

  • 自动化:这是RPA的基本特点,能够自动执行重复性、规则性的任务流程。

  • 可编程:能够对模拟人类的计算机操作规则与流程做编程与设定,包括键鼠操作、web浏览、文件处理、软件操作等。

  • 低代码:RPA平台通常需要支持低代码甚至无代码的开发,从而降低机器人的设计与开发门槛,加快机器人的上线速度。

  • 智能性:随着AI技术发展,RPA在智能性上不断提升。如借助OCR识别界面元素;或借助AI模型处理各非结构化数据等。

  • 集成性:自动化的RPA任务与流程也需要能够与现有应用做深度集成,如由其他应用来驱动RPA,或者RPA也能实时访问其他应用的接口。

从RPA的技术特点上也能分析出其最大的不足与缺陷:由于RPA本质是一种UI自动化,虽然对后向集成要求很低,但是却有着较高的UI层耦合性。比如:某个Web应用UI发生了较大变化,可能导致RPA识别不到某个界面元素而失败。当然这个问题在RPA引入了一些AI技术后得到了一定的改进。

RPA与BPA

提到流程自动化,很多企业应用的集成者都会接触过BPA(业务流程自动化)/BPM(业务流程管理),那么RPA与BPA之间的区别在哪里呢?

  • 实施目标

    • RPA是通过软件机器人来模拟和整合现有的应用程序的人工操作,以执行重复性、规则性和可预测的任务。侧重于自动处理特定的任务和操作。

    • BPA的目标是对组织内的端到端业务流程进行自动化改进,实现跨部门、跨岗位、跨应用的复杂流程、决策和协作的自动化。

  • 自动化范围

    • 传统的RPA用UI操作自动化来实现特定任务自动化,比如批量数据录入、报告生成、客户回复等

    • BPA的范围通常会更广泛,可以涵盖组织内全部业务流程,通过组织内业务流程自动化实现多部门、多系统之间的有效协作。

  • 集成复杂度

    • RPA通过使用软件技术来模拟人工操作,无需对已有系统进行深度集成改造,侵入性低。

    • BPA实施是一项复杂的组织内系统性工程。需要广泛的业务梳理、流程设计与深度集成工作,涉及的现有系统通常需要配合BPMS(工作流管理系统)进行改造升级,以实现跨部门跨系统的流程整合与自动化。

所以,RPA通常更专注于局部的、任务级别的自动化;而BPA则更注重全局的端到端业务流程自动化。

值得注意的是,近几年随着RPA的不断发展,如基于AI的智能化水平提升、对外集成能力的增强等,且RPA更易集成的优势进一步放大;而传统的BPM/BPA集成成本过高的问题凸显,RPA与BPA出现了融合的趋势:BPA借助RPA来实现部分流程的自动化,成为一种常见的集成方案。这在类似SAP、IBM、微软这些大厂的BPA解决方案中都有明显体现。

RPA与AI Agent

越来越多的企业开始考虑借助AI Agent智能体来提升企业部分场景的智能化水平,所以AI Agent本质上也是一种用于自动化的机器人(在之前介绍的AI Agent中有一种实现了自动Web页面导航与操作的Agent,其本质上就是一种个人RPA)。那么基于RPA与AI Agent的自动化方案区别在哪里呢?

  • 自动化范围

    • RPA主要用于自动化重复性的规则性的任务

    • AI Agent则更专注需要智能推理与决策的任务。如需要自然语言识别、智能推荐、智能分析等。

  • 技术原理

    • RPA基于规则和预先定义的逻辑来执行任务,通常不具备智能学习与推理能力。自动化的能力主要依赖于设定的规则。

    • AI Agent则基于深度学习技术与AI模型(当前主要是大模型),具备智能学习与推理能力。自动化的能力主要来源于AI模型推理。

  • 集成复杂度

    • RPA工作以操作层面为主,是一种侵入性较低的自动化流程方案,因此更易于在复杂应用环境下的集成。

    • AI Agent在自动化规划与执行企业任务的过程中,通常需要借助“工具”,比如API或者编码来完成任务,对现有系统API的改造要求较高。

  • 适用场景

    • RPA更适用于重复性高、规则性强的任务与流程,关注于提高任务效率和准确性。

    • AI Agent则更适用于需要提升智能化水平与推理能力的场景。比如基于自然语言的智能咨询、交互式数据分析、会自动选择工具的个人助手等。

即使在当前AI Agent异常火热的背景下,我们也并不能忽视RPA自身的优势,比如:RPA集成复杂度较低(这往往意味着成本)、基于规则的自动化相对于大模型的不确定性有更好的稳定性和可控性等,所以AI Agent与RPA二者的融合,充分利用各自的优势,取长补短,或许是未来企业内流程自动化的方向之一。

我们会在后面部分进一步探讨RPA与LLM大模型的集成与融合。

02 构建一个RPA机器人

在本部分我们将构建一个RPA机器人,完成一个自动化任务,以帮助直观了解RPA工作方式与原理。

任务需求设计

Maria是一名助理,每周需要从公司的一个在线销售系统中导出公司各个销售员的销售数据(Excel),然后通过手工录入到公司的内部系统,并汇总成最新的销售报告(pdf),用来发送邮件给领导。录入界面如下:

图片

【本任务来自Robocorp培训课程】

工具

我们采用基于python的开源项目来实现完成这个任务的RPA自动化机器人:

  • Robot Framework:一个通用的开源自动化任务框架,主要用于自动化测试与RPA(软件的自动化测试与RPA在场景上非常相似)

  • RPA Framework: 基于Robot Framework之上扩展的一个用于RPA的开源库与工具,简单说就是Robot Framework的一个增强库与系列工具包。包括开发与构建机器人流程工具,以及云端监控调度中心(收费产品)。

RPA Framework组成

构建RPA机器人

基于RPA Framework构建RPA机器人可以直接使用Python代码构建,也可以采用其独有的一种脚本命令来编写以.robot结尾的机器人文件,然后加载运行即可。本次我们设计RPA机器人需要完成的任务细节流程如下:

  1. 下载销售数据

  2. 打开内部Web应用

  3. 账号登录

  4. 用Excel文件的数据逐个提交表单

  5. 保存最后结果截图

  6. 保存业绩汇总表格

  7. 退出登录并关闭浏览器

我们编写RPA机器人如下(详细构建过程请关注后续视频),此处给出该RPA机器人的核心内容,可以看到,借助RPA Framework,你只需要描述Robot需要完成的任务(Tasks),并为任务编写其详细的命令细节即可(即Keywords,RPA Framework提供了大量开箱即用的库与命令):

【tasks.robot】

......

*** Tasks ***
插入销售数据,并且导出成PDF.
    下载销售数据
    打开内部应用网址
    登录
    用Excel文件的数据逐个提交表单
    保存最后结果截图
    保存业绩汇总表格
    [Teardown] 退出登录并关闭浏览器


*** Keywords ***
下载销售数据
    Download https://robotsparebinindustries.com/SalesData.xlsx overwrite=True

打开内部应用网址
    Open Available Browser https://robotsparebinindustries.com/

登录
    Input Text username maria
    Input Password password thoushallnotpass
    Submit Form
    Wait Until Page Contains Element id:sales-form

填写单个销售数据
    [Arguments] ${sales_rep}
    Input Text firstname ${sales_rep}[First Name]
    Input Text lastname ${sales_rep}[Last Name]
    Input Text salesresult ${sales_rep}[Sales]
    Select From List By Value salestarget ${sales_rep}[Sales Target]
    Click Button Submit

用Excel文件的数据逐个提交表单
    Open Workbook SalesData.xlsx
    ${sales_reps}= Read Worksheet As Table header=True
    Close Workbook
    FOR ${sales_rep} IN @{sales_reps}
        填写单个销售数据 ${sales_rep}
    END

保存最后结果截图
    Screenshot css:div.sales-summary ${OUTPUT_DIR}${/}sales_summary.png

保存业绩汇总表格
    Wait Until Element Is Visible id:sales-results
    ${sales_results_html}= Get Element Attribute id:sales-results outerHTML
    Html To Pdf ${sales_results_html} ${OUTPUT_DIR}${/}sales_results.pdf

退出登录并关闭浏览器
    Click Button Log out
    Close Browser

运行RPA机器人

基于RPA Framework的机器人构建完成后可以有几种运行方法:

  • 直接在开发工具中测试运行(VS code,需安装RPA Framework相关扩展)

  • 使用独立开源工具rcc在本机调度运行

  • 上传到control room,然后调度运行(收费服务)

此处我们在本地运行,可以很清楚的看到运行效果:

至此,我们完成了一个简单的RPA机器人,并且取得了预期效果。在下篇中我们将继续探讨基于LLM的生成式AI能力与RPA的融合话题。


-  END  -

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/344938.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

哪些方法能将静图变动图?这一个网站帮你解决

怎么将静态图片变成gif动图?我们经常能看到各种网络平台都能看到各种把静图制作成gif动图的软件,觉得非常的有意思。但是这种软件大部分都是需要下载或者操作起来很麻烦。那么,有没有什么简单容易操作的在线图片合成(https://www.…

Java调用C++的DLL设计!!!解耦实用!!!

问题背景:Java调用C,通常推荐用JNI(Java Native Interface)http://t.csdnimg.cn/kjOND 但是调用时每调用一个C方法都需要在Java程序中增加,不符合设计时的开放封闭原则,业务一边程序就要修改 public clas…

基于springboot+vue的社区医院信息平台系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

计算机毕业设计 | SpringBoot+vue 社区老人健康管理系统(附源码)

1,绪论 对于目前的中国来讲,人口老龄化日益严重,目前最新统计数据表明,60岁以上老人所占的人口比例已达到接近20%。这给我们国家带来了严重的养老压力,同时也严重削弱了我们人力大国的人力优势。对于这些老年人来讲&a…

Github 不能访问,提示:port 22: Connection timed out

问题描述 github clone 代码出现错误: $ git clone gitgithub.com:Atlan4/Fnirsi1013D.git Cloning into Fnirsi1013D... ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository.Please make sure you ha…

2024最新防泄密软件推荐,防泄密软件有哪些功能

今天公司发生一件大事: 竟然会发生泄密事件!!! 针对这种事情,作为企业管理者,需要提高警惕,不但要解决好已经发生的事,平时也要做好预防工作。 如何做好企业防泄密工作?…

Spring Security 之 表单登录

表单登录 Spring Security提供了支持通过HTML表单提供用户名和密码。本节详细介绍了Spring Security中表单身份验证的工作原理。 本节将介绍Spring Security中的基于表单的登录工作原理。首先,我们将看到用户如何被重定向到登录表单。 第1步,用户首先对其未经授权的资源(/…

【nowcoder】链表的回文结构

牛客题目链接 链表的回文结构 /* struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {} };*/ #include <cstdlib> // 建议大伙自己对照我的代码画下图&#xff0c;假设A链表是&#xff1a;1 2 3 2 1 class PalindromeList { publi…

小程序系列--11.小程序自定义组件

一、组件的创建与引用 1. 创建组件 2. 引用组件 3. 局部引用组件 4. 全局引用组件 5. 全局引用 VS 局部引用 6. 组件和页面的区别 二、样式 1. 组件样式隔离 2. 组件样式隔离的注意点 3. 修改组件的样式隔离选项 4. styleIsolation 的可选值 三、数据、方法和属性 1…

初识“操作系统“(Operator System)

概念 任何计算机系统都包含一个基本的程序集合&#xff0c;称为操作系统(OS)。笼统的理解&#xff0c;操作系统包括&#xff1a; 内核&#xff08;进程管理&#xff0c;内存管理&#xff0c;文件管理&#xff0c;驱动管理&#xff09; 其他程序&#xff08;例如函数库&#xff…

【教程】如何在苹果手机上查看系统文件?

​ 目录 引言 用户登录工具和连接设备 查看设备信息&#xff0c;电池信息 查看硬盘信息 硬件信息 查看 基带信息 销售信息 电脑可对手机应用程序批量操作 运行APP和查看APP日志 IPA包安装测试 注意事项 引言 苹果手机与安卓手机不同&#xff0c;无法直接访问系统文件…

webpack常用配置

1.webpack概念 ​ 本质上&#xff0c;webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时&#xff0c;它会在内部从一个或多个入口点构建一个 依赖图(dependency graph)&#xff0c;然后将你项目中所需的每一个模块组合成一个或多个 …

Kruise Rollout 全链路灰度实践

作者&#xff1a;旦酱、十眠 什么是全链路灰度&#xff1f; 在发布应用的过程中&#xff0c;我们通常希望用少量特定流量来验证新版本的发布是否正常&#xff0c;以保障整体稳定性。这个过程被称为灰度发布。关于灰度发布&#xff0c;我们通过逐步增加发布的范围&#xff0c;…

如何快速解决局域网IP冲突问题?连接IP地址冲突如何用代理IP搞定?

随着互联网的普及&#xff0c;局域网已经成为了许多家庭和企业中不可或缺的一部分。然而&#xff0c;局域网中的IP地址冲突问题却时常困扰着用户。一旦出现IP地址冲突&#xff0c;网络连接就会变得不稳定&#xff0c;甚至无法正常上网。那么&#xff0c;如何快速解决局域网IP冲…

《Linux系列》Linux虚拟机,LVM逻辑卷扩容,xfs文件系统扩容

Linux虚拟机&#xff0c;LVM逻辑卷扩容&#xff0c;xfs文件系统扩容 1 虚拟机配置介绍 在创建虚拟机的时候只给了20G磁盘空间大小&#xff0c;但是现在需求变更&#xff0c;想要增加到40G磁盘空间大小&#xff0c;所以需要通过两步扩容磁盘空间。 系统版本是Centos7 根目录…

掼蛋功能之识别性格篇

常说&#xff1a;千人千面。大多数人一到牌局的场面&#xff0c;往往精神便会放松&#xff0c;面貌神情不再收敛&#xff0c;一言一行体现出的性格暴露无疑&#xff0c;具体表现为以下几种&#xff1a; 1、浮躁冲动型&#xff1a;此类人多数不讲究团队配合&#xff0c;自顾自出…

了解云工作负载保护:技术和最佳实践

云工作负载是指云环境中的应用程序或存储元素&#xff0c;无论是公共云、私有云还是混合云。每个云工作负载都使用云的资源&#xff0c;包括计算、网络和存储。 云工作负载可以多种多样&#xff0c;例如运行应用程序、数据库或托管网站。它们可以是静态的或动态的&#xff0c;…

数据的跃动之美:探索ECharts动态排序柱状图的魔力

前言 在 echarts 中&#xff0c;动态排序柱状图是一种常用图表&#xff0c;可以帮助我们更好地理解数据的变化和排序规律。本文将介绍如何使用 echarts 库创建动态排序柱状图&#xff0c;以展示数据的变化趋势和排序情况。 完整代码 <template><div class"acros…

Java 数据结构集合

文章目录 Java 数据结构1. 基本数据结构1.1 数组 (Array)1.2 链表 (Linked List)1.3 栈 (Stack)1.4 队列 (Queue)双向队列优先级队列 2. 树形数据结构2.1 二叉树 (Binary Tree)2.2 堆 (Heap) 3. 散列数据结构3.1 哈希表 (Hash Map)3.2 LinkedHashMap3.3 TreeMapConcurrentHashM…

Cesium for Unity包无法加载

太上老君急急如律⚡令⚡ &#x1f959;关闭UnityHub&#x1f9c0;启动梯子&#x1f96a;cmd 启动UnityHub &#x1f959;关闭UnityHub &#x1f9c0;启动梯子 &#x1f96a;cmd 启动UnityHub 把批处理启动文件&#x1f448;中的exe的路径换成自己的安装目录&#xff01;保存…