CN116324831A - 经由人工智能/机器学习的机器人过程自动化异常检测和自我修复 - Google Patents

经由人工智能/机器学习的机器人过程自动化异常检测和自我修复 Download PDF

Info

Publication number
CN116324831A
CN116324831A CN202180069910.3A CN202180069910A CN116324831A CN 116324831 A CN116324831 A CN 116324831A CN 202180069910 A CN202180069910 A CN 202180069910A CN 116324831 A CN116324831 A CN 116324831A
Authority
CN
China
Prior art keywords
rpa
graphical element
model
computer
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180069910.3A
Other languages
English (en)
Inventor
P·辛格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yupas Co
Original Assignee
Yupas Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yupas Co filed Critical Yupas Co
Publication of CN116324831A publication Critical patent/CN116324831A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2263Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Human Computer Interaction (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)

Abstract

公开了经由人工智能(AI)/机器学习(ML)的针对机器人过程自动化(RPA)的异常检测和自我修复。利用AI/ML模型和计算机视觉(CV)的RPA机器人可以经由正常学习的交互来解释大多数遇到的图形元素和/或与大多数遇到的图形元素交互。然而,这样的RPA机器人可能偶尔遇到新的、未处理过的异常,其中图形元素不能被标识和/或正常的交互将不工作。这样的异常可以由异常处理器处理。该RPA机器人可以具有试图自动地找到解决异常的信息的自我修复功能性。

Description

经由人工智能/机器学习的机器人过程自动化异常检测和自 我修复
相关申请的交叉引用
本国际申请主张2020年10月14日提交的第17/070,250号美国专利申请的利益和优先权。该先前提交的申请的主题在此全文引入作为参考。
技术领域
本发明总体上涉及用户界面(UI)自动化,并且更具体地,涉及经由人工智能(AI)/机器学习(ML)的针对机器人过程自动化(RPA)的异常检测和自我修复。
背景技术
目前,当异常在运行时的RPA中发生时(例如,在生产环境中),问题的来源被分析,并且RPA开发者基于该分析来提供编程方式的解决方案。然而,该过程趋向于是耗时的并且是昂贵的。因此,改进的方法可以是有利的。
发明内容
本发明的某些实施例可以为现有技术中尚未被当前UI自动化技术完全标识、理解或解决的问题和需求提供解决方案。例如,本发明的一些实施例涉及经由AI/ML的针对RPA的异常检测和自我修复。
在实施例中,计算机实现的方法包括由RPA机器人执行使用AI/ML模型执行UI自动化的RPA工作流。计算机实现的方法还包括由RPA机器人使用AI/ML模型在UI中搜索要通过RPA工作流的活动与其交互的目标图形元素。在目标图形元素不是由AI/ML模型唯一地找到或不能与目标图形元素交互时,由RPA机器人或AI/ML模型自动地尝试校正该异常。
在另一实施例中,非暂态计算机可读介质存储计算机程序。该计算机程序被配置为使至少一个处理器执行使用AI/ML模型执行UI自动化的RPA工作流。使用AI/ML模型,计算机程序还被配置为使至少一个处理器在UI中搜索要通过RPA工作流的活动与其交互的目标图形元素。在目标图形元素不是由AI/ML模型唯一地找到或不能与目标图形元素交互时,计算机程序还被配置为自动地尝试校正该异常。
在又一实施例中,一种计算系统包括存储计算机程序指令的存储器以及被配置为执行计算机程序指令的至少一个处理器。计算机程序指令被配置为使至少一个处理器由RPA机器人执行使用AI/ML模型执行UI自动化的RPA工作流。使用AI/ML模型,计算机程序指令还被配置为使至少一个处理器由RPA机器人在UI中搜索要通过RPA工作流的活动与其交互的目标图形元素。在目标图形元素不是由AI/ML模型唯一地找到或不能与目标图形元素交互时,计算机程序指令还被配置为使至少一个处理器自动地尝试校正该异常。校正该异常的自动尝试包括确定一个或多个特征是否将目标图形元素与其他相似图形元素区分开、在没有用户输入的情况下尝试自我修复过程以使缺失的数据完整、或两者。
附图说明
为了容易理解本发明的某些实施例的优点,通过参考附图中示出的具体实施例为参考对上文简要描述的本发明进行更具体的描述。尽管应当理解,这些附图仅描述了本发明的典型实施例,因此不应被认为是对本发明范围的限制,通过使用附图对本发明进行附加的具体内容和细节的描述和解释,其中:
图1是图示了根据本发明实施例的机器人过程自动化(RPA)系统的架构图。
图2是图示了根据本发明实施例的经过部署的RPA系统的架构图。
图3是图示了根据本发明实施例的设计器、活动和驱动程序之间的关系的架构图。
图4是图示了根据本发明实施例的RPA系统的架构图。
图5是图示了根据本发明实施例的计算系统的架构图,该计算系统被配置为经由AI/ML来执行用于RPA的异常检测和自我修复。
图6是图示了根据本发明实施例的系统的架构图,该系统被配置为经由AI/ML来执行用于RPA的异常检测和自我修复。
图7是图示了根据本发明实施例的经由AI/ML来执行用于RPA的异常检测和自我修复的过程的流程图。
除非另有说明,在所有附图中,类似的附图标记始终表示相应的特征。
具体实施方式
一些实施例涉及经由AI/ML的针对RPA的异常检测和自我修复。利用AI/ML模型和计算机视觉(CV)的RPA机器人可以经由正常学习的交互来解释大多数在UI中遇到的图形元素和/或与大多数在UI中遇到的图形元素交互。然而,这样的RPA机器人可能偶尔遇到新的、未处理过的异常,其中图形元素不能被标识和/或正常的交互将不工作。在一些实施例中,这样的异常可以由RPA机器人的异常处理器或AI/ML模型来处理。
在异常发生时,例如其中在屏幕上出现多个提交按钮并且AI/ML模型不能靠自己确定点击哪个按钮,异常处理器可以尝试确定是否有一些东西将这些图形元素与彼此区分开。这可以包括但不限于,查看在半径内围绕(多个)目标图形元素的图形元素、查看图形元素在屏幕上的顺序、尝试确定是否有一些东西将目标图形元素视觉地与其他相似图形元素区分开等。在一些实施例中,可以采取默认动作,例如自动地选择最靠近屏幕的顶部或底部出现的图形元素。
在一些实施例中,默认动作可以是在UI对象库中搜索UI描述符,该UI对象库包括UI对象的UI对象库或UI对象库的UI对象储存库,该UI描述符允许RPA机器人或AI/ML模型与目标图形元素交互。屏幕上的UI元素(例如,文本字段、按钮、标签、菜单、复选框,等)可以按照应用、应用版本、应用屏幕,以及UI元素的集合被分组,并且每个屏幕具有多个UI元素。如在本文中使用的,“屏幕”是在某个时间点应用UI的图像或应用UI的一部分的图像(例如,截屏)。针对运行的UI自动化,屏幕可以是计算系统的当前UI。“应用”或给定应用的版本可以是在该上下文中屏幕的联合或者是以运行时运行的应用。在一些实施例中,每个UI元素可以由一个或多个UI描述符描述。UI元素、UI描述符、应用、和应用屏幕是UI对象。在一些实施例中,UI元素和屏幕可以被进一步区分为UI元素的特定类型(例如,按钮、复选框、文本字段等)和屏幕的特定类型(例如,顶部窗口、模式窗口、弹出式窗口等)。
在一些实施例中,UI对象库可以被存储在UI对象储存库中。如在本文中使用的一样,UI对象储存库是UI对象库的集合。在一些实施例中,UI对象储存库可以是NuGetTM软件包源(feed)、web服务等。在一些实施例中,UI对象库的UI对象储存库可以促进在项目中UI描述符的管理、复用、和可靠性的提高。在一些实施例中,UI描述符可以被添加到UI库中并且被发布或重新发布以用于在UI对象储存库中的全局复用。
为了使UI对象可复用,UI对象可以被提取到可以由RPA过程参考的UI对象库中。例如,在选择器或其他UI描述符因为应用的新版本而被修改时,UI对象库可以被创新创建(或重新发布)以包括经修改的UI描述符。然后,使用UI对象库的RPA过程可以调用经修改的UI描述符版本。在一些实施例中,对与新的库相关联的新的应用编程接口(API)的参考可以由开发者针对RPA过程手动修改、经由软件工具(例如,在选择器或其他其组件改变时,通过RPA过程并且更新UI描述符参考的工具)修改、或自动地修改。
在一些实施例中,UI对象的包(例如,NuGetTM包)可以作为依赖被附上。然而,在某些实施例中,可以经由对web服务的一个或多个API调用获取UI对象。这可以使得UI对象能够在自动化期间被远程地存储和检索和使用。
添加到UI对象库中的UI元素可以表示用于在RPA工作流中使用的选择器。为了在UI中自动化特定动作,RPA机器人可以与各种窗口、按钮、下拉列表,和/或其他图形元素交互。传统地,这通过使用UI元素的预期屏幕位置来完成。然而,这不是可靠的。
一些实施例使用通过在XML片段中存储UI元素和其父代的属性来克服与固定的坐标标识相关联的问题的选择器。尽管在一些其中UI是静态的实施例中选择器可以是自动地生成的,诸如一些web应用的一些软件程序具有变化的布局和具有不稳定的值的属性节点。这些改变可能不是容易预测的,并且这在之前要求一些选择器的手动生成。然而,例如,一些实施例可以通过使用其他类型的UI描述符来克服该问题。
选择器是UI描述符的一种类型,在一些实施例中,其可以用于检测UI元素。在一些实施例中,选择器具有以下结构:
<node_1/><node_2/>…<node_N/>
最后的节点表示感兴趣的GUI元素,并且所有之前的节点表示该元素的父代。<node_1/>经常是指根节点并且表示应用的顶部窗口。
每个节点可以具有一个或多个属性,该一个或多个属性协助所选择应用的特定级别的正确标识。在一些实施例中,每个节点具有以下格式:
<ui_system attr_name_1=’attr_value_1’…attr_name_N=’attr_value_N’/>
每个属性可以具有分配的值,并且具有不变的值的属性可以被选择。这是因为每次开始应用时对属性的值的改变可以导致选择器不能够正确地标识相关联的元素。
UI对象库描述符可以被直接地添加到RPA工作流活动,以节约否则可能被要求创建针对该活动的自定义选择器的开发者时间。对象库在本文中被限定为与来自应用的某个版本的一个或多个屏幕相对应的UI描述符的集合。UI描述符是用于寻找UI元素的指令集。在一些实施例中,UI描述符是封装的数据/结构格式,其包括(多个)UI元素选择器、(多个)锚选择器、(多个)计算机视觉(CV)描述符、(多个)统一目标描述符、屏幕图像捕获(上下文)、元素图像捕获、其他元数据(例如,应用和应用版本),其组合等。封装的数据/结构格式可以是对平台的未来更新可拓展的并且不被上面的限定所限制。用于标识屏幕上的UI元素的任何合适的UI描述符可以在不偏离本发明的范围的情况下被使用。统一目标描述符将多个类型的UI描述符链接在一起。统一目标描述符可以像有限状态机(FSM)一样起作用,其中在第一上下文中应用第一UI描述符机制,在第二上下文中应用第二UI描述符等。
传统地,使选择器可靠要求测试、内在的选择器细节的理解等。这使对于没有技术知识的个人来说,创建/改善选择器变得困难或不可能。通过提供针对公共UI元素和任务的工作的选择器的库,一些实施例允许由非技术的个人来进行在生产中工作的自动化的开发。用户可以指示应用的版本的屏幕以自动化,并且RPA开发应用可以取得该屏幕。然后,用户可以与屏幕交互以限定他或她想要做什么。
在一些实施例中,随着新的UI描述符被创建和/或现有的UI描述符被修改,可以建立UI对象库的全局数据库,该全局数据库是可分享的、协作的,并且潜在开源的。在某些实施例中,可以使用分类法和本体论。应用、版本、屏幕、UI元素、描述符等可以被限定为分类法,其是子类别的层次结构。
然而,很多真实世界的概念不容易适用于分类法组织。相反,他们可能更接近于数学本体论的概念。在本体论中,类别之间的关系没有必要是层次的。例如,屏幕上的按钮在被点击时将用户带到另一个屏幕的情况无法通过该屏幕的分类法轻松捕获,因为下一个屏幕不在层次结构中。在一些实施例中,在相同的屏幕上或在不同的屏幕上的UI元素之间的交互可以被适应,并且有关UI元素如何与彼此相关的信息(潜在地在不同的屏幕上)可以被提供。
考虑点击确认按钮导致雇员屏幕的示例。本体论结构可以使设计器应用建议用户在下一个屏幕上筛选雇员。这些屏幕之间的关系的本体论信息经由确认按钮允许设计器应用这样做。通过限定图形结构(其没有必要是树状,但是与应用正在实际地做什么相关),更多复杂并且丰富的关系可以被捕获。
UI描述符可以从在RPA工作流中的活动提取,并且添加到通过UI应用、屏幕、和UI元素对UI描述符进行分组的结构化的架构中。在一些实施例中,UI描述符可以是用于大范围的复用的一个项目的一部分、用于测试目的的全局储存库的一部分、或用于全局跨项目共享的UI对象库的一部分。对象库在一些实施例中是通过应用、应用版本、和屏幕进行分组的UI描述符的封装。在一些实施例中,UI描述符可以被限定并且被添加到对象库中,对象库可以在发布后被安装在其他项目中作为依赖。这使UI描述符的对象库可用于复用。UI应用在一些实施例中是具有多个版本的被作为目标的应用,在多个版本中每个版本具有多个屏幕。
因为各种理由,UI对象储存库和UI描述符复用可以是有利的。例如,如果在应用中的UI元素的位置、出现、和/或功能性改变,则UI描述符可以被改变,并且然后改变可以使用UI描述符被传播到活动。因此,可以以标识UI中的图形元素的级别提供复用性。
这针对适应应用的新的版本可以是特别有利的。针对新的版本,软件开发者可以仅需要更新UI描述符和/或从头开始开发少许新的选择器,显著地减少了开发时间。例如,针对网页,超文本标记语言(HTML)可以被检查以获得到针对对应选择器的UI元素的路径。针对对应UI元素的选择器在不同的web浏览器中和/或在相同的web浏览器的不同的版本中可以是不同的。该概念还可以应用到视觉桌面、服务器、智能电话,以及平板应用中。UI对象库可以包含针对应用的实际选择器,根据以上内容,实际选择器只是UI描述符的一种类型。UI对象库可以具有针对一个或多个应用的不同类型的多个UI描述符。UI描述符还可以是指构建应用所利用的不同技术。例如,不同的UI描述符可以针对独立桌面、web、和移动应用被创建并且被使用。针对一种技术,可能想要使用选择器,针对另一种技术,可能想要使用CV描述符等。
UI描述符可以与统一目标一起工作,统一目标包含所有UI检测机制,通过其可以在一些实施例中执行图像检测和限定。统一目标可以将标识和自动化UI元素的多种技术合并到单个内聚方法中。统一目标可以对基于选择器的以及基于驱动程序的UI检测机制进行优先级排序,并且如果首先的两个机制不成功则退回CV以寻找图像。在一些实施例中,选择器编辑器和UI浏览器可以被配置为支持统一目标。
以下提供对象库结构的示例:
·SAP
·版本1
·屏幕1
·对象1
·对象2
·…
·屏幕2…
·…
·版本2…
·……
·Salesforce…
·…
应当注意的是,上面的层次仅作为示例的方式被提供。在不偏离本发明的范围的情况下,可以在层次中使用任何期望的数目的级别以及与每个级别相关联的元素。在某些实施例中,用户可以如他或她期望的一样限定应用地图。而且在一些实施例中,在树中的一些节点可以只担任管理的角色并且不是功能的角色。例如,UI元素可以被一起分组到不具有UI描述符的容器中。在一些实施例中,容器存在的目的可以仅是分组。
为了利用UI对象库和/或UI对象储存库,在目标图形元素不能被标识时,一些实施例的RPA机器人或AI/ML模型默认针对UI描述符搜索UI对象库或UI对象库的储存库,UI描述符可以能够与目标图形元素交互。例如,RPA机器人或AI/ML模型可以利用相同的名称、利用相同或相似的属性、利用相同但是不同版本的目标应用等来查找UI描述符。如果这样的(多个)UI描述符被找到,RPA机器人或AI/ML模型可以自动地尝试(多个)UI描述符。如果与目标图形元素的交互成功,在未来RPA机器人或AI/ML模型可以被修改以使用成功的UI描述符,附加或替代之前尝试的UI描述符。UI对象库或UI对象储存库可以在搜索他们的RPA机器人或AI/ML模型的本地或远程。
在异常处理器仍然不能标识目标图形元素和/或默认动作失败的情况下,RPA机器人可以优雅地处理异常。例如,如果目标图形元素没有被要求以足够的准确性程度完成总体任务,异常处理器可以使RPA机器人继续它的工作流的执行、提示用户关于是否接着做、询问在未来要用于解决异常的经标记的训练数据等。这样的异常处理可以使AI/ML模型在运行时对真实世界差异和改变更加鲁棒。这可以在应用的新的版本发行、遇到不同的浏览器设置等时发生。
在一些实施例中,可以提供自我修复能力从而在没有用户输入的情况下RPA机器人和/或AI/ML模型尝试使来自异常的缺失的数据完整。RPA开发者可以对AI/ML模型变量进行某些输入、从数据库拉取数据等。在一些实施例中,AI工具可以用于在没有人类设计时间的情况下生成该代码。
在一些实施例中,自我修复可以利用各种技术。例如,针对文档理解或其他应用,如果频繁要求人类验证,则可以推断AI/ML模型是不足够好的。AI/ML模型可以利用各种技术以尝试改进它的自身的表现作为“自我修复”措施。例如,AI/ML模型可以尝试不同的光学字符识别(OCR)引擎、修改图像的性质(例如,亮度、色调、对比度、转换到灰度,等)、搜索看起来相似的图像以及检查针对这些图像应用的(多个)技术和/或结果等。AI/ML模型可以监测人类验证努力是否减少、执行的速度和/或效率是否增加(例如,过程运行更快和/或在RPA工作流中的步骤可以被加速或排除)、或投资回报率(ROI)是否改进以确定AI/ML模型的自我修复效果是否工作。如果没有,AI/ML模型可以尝试不同的技术和/或使用不同的信息。然后,AI/ML模型可以学习如何基于该自我修复方法在运行时使缺失的、不正确的、和/或不完整的数据完整。
在一些实施例中,可以使用强化学习。在强化学习中有探索阶段和利用阶段。在探索阶段中,系统可以尝试随机地从开始状态到结束状态使用奖励功能寻找解决方案以指导状态空间的搜索,奖励功能通过短期和长期奖励两者探索中间转换以及步骤。例如,在异常是不能在UI中找到目标图形元素或与目标图形元素的交互失败的情况中,获胜状态可以是在RPA工作流中的活动应当实现的与目标图形元素的正确的交互。如果解决方案被找到,RPA机器人或AI/ML模型可以被修改以尝试该解决方案附加或替代先前的方法。
一些实施例经由策略网络来确定策略应当是什么样的,而不是执行完全随机的探索。这可以彻底地减少达到获胜状态所要求的模拟的数目,其使得经由强化学习训练的AI/ML模型能够被更快地开发和部署、使用更少的计算硬件资源被训练、或两者。事实上,在一些实施例中,强化学习可以在用户自身的计算系统上执行(例如台式计算机、膝上型计算机、智能电话,等),其传统上通常是不可能的。
例如,在与用户界面交互的上下文中,机器人可以随机地在屏幕上点击以确定什么是可点击的。然后,强化学习可以用于推进期望的自动化。例如,给定电子邮件地址的电子表格和期望的电子邮件文本,强化学习可以用于发现哪个可点击的按钮打开电子邮件应用、发现不同的文本应当在电子邮件中的哪里被输入、以及发现发送电子邮件所要点击的按钮。在该示例中,策略网络可以用于首先确定发送电子邮件是否甚至是可能的或期望的。一旦该确定被做出,然后,策略网络可以确定电子邮件地址是否来自电子表格并且在电子邮件发送之前电子邮件主体文本可以被复制到电子邮件中。
某些实施例可以被用于机器人过程自动化(RPA)。图1是图示根据本发明的实施例的RPA系统100的架构图。RPA系统100包括允许开发者设计和实现工作流的设计器110。设计器110可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务和业务IT过程的解决方案。设计器110可以促进自动化项目的开发,自动化项目是业务过程的图形表示。简而言之,设计器110促进了工作流和机器人的开发和部署。
自动化项目通过让开发者控制执行顺序和在工作流中开发的步骤(在本文中被定义为“活动”)的自定义集合之间的关系来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是UiPath StudioTM。每个活动可以包括诸如点击按钮、读取文件、写入到日志面板等的动作。在一些实施例中,工作流可以被嵌套或嵌入。
一些类型的工作流可以包括但不限于序列、流程图、FSM和/或全局异常处理程序。序列可能特别适用于线性过程,在不使工作过程混乱的情况下实现从一个活动到另一个活动的过程。流程图可能特别适合于更复杂的业务逻辑,通过多个分支逻辑运算符以更多样化的方式实现决策的集成和活动的连接。FSM可能特别适合于大型工作流。FSM可以在其执行中使用有限数目的状态,这些状态由条件(即转变)或活动来触发。全局异常处理程序可能特别适合用于在遇到执行错误时确定工作流行为以及适合用于调试过程。
一旦在设计器110中开发了工作流,业务过程的执行就由协调器120编排,协调器120编排一个或多个机器人130,机器人130执行在设计器110中开发的工作流。协调器120的实施例的一个商业示例是UiPath OrchestratorTM。协调器120促进了对环境中的资源的创建、监测和部署的管理。协调器120可以充当与第三方解决方案和应用的集成点、或聚合点中的一个。
协调器120可以管理机器人130的队列,连接和执行来自集中式点的机器人130。可以被管理的机器人130的类型包括但不限于有人值守机器人132、无人值守机器人134、开发机器人(类似于无人值守机器人134,但被用于开发和测试目的)和非生产机器人(类似于有人值守机器人132,但是用于开发和测试目的)。有人值守机器人132由用户事件触发,并在相同计算系统上与人类一起操作。有人值守机器人132可以与协调器120一起使用,以用于集中式过程部署和日志记录介质。有人值守机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,过程不能在这种类型的机器人上从协调器120开始和/或它们不能在被锁定的屏幕下运行。在某些实施例中,有人值守机器人132只能从机器人托盘或从命令提示开始。在一些实施例中,有人值守机器人132应该在人类监督下运行。
无人值守机器人134在虚拟环境中无人值守地运行,并且可以使多个过程自动化。无人值守机器人134可以负责远程执行、监测、调度和为工作队列提供支持。在一些实施例中,针对所有机器人类型的调试可以在设计器110中运行。有人值守和无人值守机器人都可以使各种系统和应用自动化,各种系统和应用包括但不限于大型机、web应用、虚拟机、企业应用(例如,由
Figure BDA0004173917910000121
等生产的那些应用)和计算系统应用(例如,台式机和笔记本计算机应用、移动设备应用、可穿戴计算机应用等)。
协调器120可以具有各种能力,包括但不限于供应、部署、版本控制、配置、排队、监测、日志记录和/或提供互连性。供应可以包括创建和维护机器人130和协调器120(例如,web应用)之间的连接。部署可以包括确保将封装版本正确地递送给所指派的机器人130以供执行。在一些实施例中,版本控制可以包括对一些过程或配置的唯一实例的管理。配置可以包括机器人环境和过程配置的维护和递送。排队可以包括提供对队列和队列项的管理。监测可以包括保持对机器人标识数据的跟踪和维护用户权限。日志记录可以包括将日志存储到数据库(例如,SQL数据库)和/或其他存储机制(例如,
Figure BDA0004173917910000122
)并进行索引,这提供存储和快速查询大型数据集的能力。协调器120可以通过充当针对第三方解决方案和/或应用的集中式通信点来提供互连性。
机器人130是运行内置于设计器110中的工作流的执行代理。(多个)机器人130的一些实施例的一个商业示例是UiPath RobotsTM。在一些实施例中,机器人130默认安装Microsoft
Figure BDA0004173917910000131
服务控制管理器(SCM)管理的服务。结果,此类机器人130可以在本地系统账户下打开交互式/>
Figure BDA0004173917910000132
会话,并具有/>
Figure BDA0004173917910000133
服务的权利。
在一些实施例中,机器人130可以以用户模式来被安装。对于这样的机器人130,这意味着它们具有与已经安装给定机器人130的用户相同的权利。此特征也可用于高密度(HD)机器人,这确保了对每台机器的最大潜力的充分利用。在一些实施例中,任何类型的机器人130都可以被配置在HD环境中。
在一些实施例中,机器人130被拆分成若干组件,每个组件专用于特定的自动化任务。一些实施例中的机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监测
Figure BDA0004173917910000134
会话,并充当协调器120和执行主机(即,在其上执行机器人130的计算系统)之间的代理。这些服务受信任并管理针对机器人130的凭证。控制台应用由本地系统下的SCM启动。
在一些实施例中,用户模式机器人服务管理和监测
Figure BDA0004173917910000135
会话,并充当协调器120和执行主机之间的代理。用户模式机器人服务可以受信任并管理针对机器人130的凭证。如果未安装SCM管理的机器人服务,则可以自动启动/>
Figure BDA0004173917910000136
应用。
执行器可以在
Figure BDA0004173917910000137
会话下运行给定作业(即,它们可以执行工作流)。执行器可以知道每个监视器每英寸点数(DPI)设置。代理可以是/>
Figure BDA0004173917910000138
PresentationFoundation(WPF)应用,其显示系统托盘窗口中的可用作业。代理可以是服务的客户端。代理可以请求开始或停止作业并更改设置。命令行是服务的客户端。命令行是可以请求开始作业并等待其输出的控制台应用。
将机器人130的组件如上面所解释的那样进行拆分有助于开发者、支持用户和计算系统更容易地运行、标识和跟踪每个组件正在执行的内容。可以通过这种方式为每个组件配置特殊行为,诸如为执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可能总是知道每个监视器的DPI设置。结果,工作流可以以任何DPI被执行,而不管在其上创建它们的计算系统的配置如何。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。对于不知道DPI或有意地被标记为不知道的应用,在一些实施例中可以禁用DPI。
图2是图示根据本发明的实施例的所部署的RPA系统200的架构图。在一些实施例中,RPA系统200可以是图1的RPA系统100或者可以是其一部分。应当注意,在不脱离本发明的范围的情况下,客户端侧、服务器侧或两者可以包括任何期望数目的计算系统。在客户端侧上,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可能不在计算系统210上运行。执行器212运行过程。若干业务项目可以同时运行,如图2中所示。在此实施例中,代理214(例如,
Figure BDA0004173917910000141
服务)是针对所有执行器212的单一联系点。在此实施例中的所有消息都被日志记录到协调器230中,协调器230经由数据库服务器240、索引器服务器250或两者进一步处理它们。如上面关于图1所讨论的,执行器212可以是机器人组件。
在一些实施例中,机器人表示机器名称和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行多个交互式会话的计算系统(例如,
Figure BDA0004173917910000142
Server2012)上,多个机器人可以同时运行,每个机器人使用唯一用户名处于单独的/>
Figure BDA0004173917910000143
会话中。这在上文被称为HD机器人。
代理214还负责发送机器人的状态(例如,定期发送指示机器人仍在起作用的“心跳”消息)并下载要被执行的所需版本的封装。在一些实施例中,代理214和协调器230之间的通信总是由代理214发起。在通知场景中,代理214可以打开WebSocket通道,该WebSocket通道稍后由协调器230使用以向机器人发送命令(例如,开始、停止等)。
在服务器侧上,表示层(web应用232、开放数据协议(OData)代表性状态传送(REST)应用编程接口(API)端点234以及通知和监测236)、服务层(API实现/业务逻辑238)和持久层(数据库服务器240和索引器服务器250)被包括在内。协调器230包括web应用232、OData REST API端点234、通知和监测236以及API实现/业务逻辑238。在一些实施例中,用户在协调器230的界面中执行的大多数动作(例如,经由浏览器220)通过调用各种API来执行。在不脱离本发明的范围的情况下,此类动作可以包括但不限于在机器人上开始作业、添加/移除队列中的数据、安排作业以无人值守地运行等。Web应用232是服务器平台的可视层。在此实施例中,web应用232使用超文本标记语言(HTML)和JavaScript(JS)。然而,在不脱离本发明的范围的情况下,可以使用任何期望的标记语言、脚本语言或任何其他格式。在此实施例中,用户经由浏览器220与来自web应用232的网页交互,以便执行各种动作来控制协调器230。例如,用户可以创建机器人群组、将封装指派给机器人、分析每个机器人和/或每个过程的日志、开始和停止机器人等。
除了web应用232之外,协调器230还包括暴露OData REST API端点234的服务层。然而,在不脱离本发明的范围的情况下,可以包括其他端点。REST API由Web应用232和代理214使用。在此实施例中,代理214是客户端计算机上的一个或多个机器人的管理者。
在此实施例中的REST API涵盖配置、日志记录、监测和排队功能性。在一些实施例中,配置端点可以被用来限定和配置应用用户、权限、机器人、资产、发布和环境。日志记录REST端点可以被用来日志记录不同的信息,诸如错误、由机器人发送的显式消息以及其他环境特定的信息。机器人可以使用部署REST端点来查询如果在协调器230中使用开始作业命令时应该执行的封装版本。排队REST端点可以负责队列和队列项管理,诸如将数据添加到队列,从队列中获得事务,设置事务的状态等。
监测REST端点可以监测web应用232和代理214。通知和监测API 236可以是被用于注册代理214、向代理214递送配置设置以及用于从服务器和代理214发送/接收通知的REST端点。在一些实施例中,通知和监测API 236也可以使用WebSocket通信。
在此实施例中,持久层包括一对服务器——数据库服务器240(例如,SQL服务器)和索引器服务器250。在此实施例中,数据库服务器240存储机器人、机器人群组、关联过程、用户、角色、时间表等的配置。在一些实施例中,此信息通过web应用232来管理。数据库服务器240可以管理队列和队列项。在一些实施例中,数据库服务器240可以存储由机器人日志记录的消息(除了索引器服务器250之外或者代替索引器服务器250)。
在一些实施例中可选的索引器服务器250存储和索引由机器人日志记录的信息。在某些实施例中,索引器服务器250可以通过配置设置而被禁用。在一些实施例中,索引器服务器250使用
Figure BDA0004173917910000161
它是一个开源项目全文搜索引擎。由机器人日志记录的消息(例如,使用像日志消息或写入行这样的活动)可以通过(多个)日志记录REST端点而被发送到索引器服务器250,在那里它们被索引以供将来利用。
图3是图示根据本发明的实施例的设计器310、活动320、330、驱动程序340和AI/ML模型350之间的关系300的架构图。根据上文,开发者使用设计器310来开发由机器人执行的工作流。工作流可以包括用户限定的活动320和UI自动化活动330。用户限定的活动320和/或UI自动化活动330在一些实施例中可以调用一个或多个AI/ML模型350,其可以本地位于机器人正在操作和/或远程操作的计算系统上。一些实施例能够标识图像中的非文本视觉成分,这在本文中被称为计算机视觉(CV)。与此类组件有关的一些CV活动可以包括但不限于点击、键入、获取文本、悬停、元素存在、刷新范围、突出显示等。在一些实施例中,点击使用例如CV、光学字符识别(OCR)、模糊文本匹配以及多锚来标识元素,并且点击它。键入可以使用上面来标识元素并且在元素中键入。获取文本可以标识特定文本的位置并使用OCR对其进行扫描。悬停可以标识元素并悬停在它上面。元素存在可以使用上述技术来检查屏幕上是否存在元素。在一些实施例中,可能有数百甚至数千个活动可以在设计器310中被实现。然而,在不脱离本发明的范围的情况下,任何数目和/或类型的活动都可以是可用的。
UI自动化活动330是特殊的、较低级别的活动的子集,这些活动是用较低级别的代码来编写的(例如,CV活动)并且促进与屏幕的交互。UI自动化活动330经由允许机器人与期望软件进行交互的驱动程序340和/或AI/ML模型350来促进这些交互。例如,驱动程序340可以包括OS驱动程序342、浏览器驱动程序344、VM驱动程序346、企业应用驱动程序348等。UI自动化活动330可以使用AI/ML模型350中的一个或多个以便确定执行与计算系统的交互。在一些实施例中,AI/ML模型350可以增强驱动程序340或完全取代它们。实际上,在某些实施例中不包括驱动程序340。
驱动程序340可以在低级别与OS进行交互以寻找挂钩、监测按键等。它们可以促进与
Figure BDA0004173917910000171
等的集成。例如,“点击”活动经由驱动程序340而在这些不同的应用中执行相同的角色。
图4是图示根据本发明的实施例的RPA系统400的架构图。在一些实施例中,RPA系统400可以是或包括图1和图2的RPA系统100和/或200。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的web应用来与协调器计算系统420通信。协调器计算系统420继而又能够与数据库服务器430和可选的索引器服务器440通信。
关于图1和图3,应当注意,虽然在这些实施例中使用了web应用,但是在不脱离本发明的范围的情况下可以使用任何合适的客户端/服务器软件。例如,协调器可以运行服务器侧的应用,该应用与客户端计算系统上的非基于web的客户端软件应用通信。
图5是图示了根据本发明实施例的计算系统的架构图,该计算系统被配置为经由AI/ML来执行针对RPA的异常检测和自我修复。在一些实施例中,计算系统500可以是本文中描绘和/或描述的一个或多个计算系统。计算系统500包括总线505或用于传递信息的其他的通信机制,以及耦合到总线505用于处理信息的(多个)处理器510。(多个)处理器510可以是任意类型的通用或专用处理器,包括中央处理器(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例和/或其任意组合。(多个)处理器510也可以具有多个处理核,并且至少一些核可以被配置为执行特定功能。在一些实施例中可以使用多并行处理。在某些实施例中,至少一个(多个)处理器510可以是包括模拟生物神经元的处理元件的神经拟态电路。在一些实施例中,神经拟态电路可以不要求冯·诺伊曼计算架构的典型组件。
计算系统500还包括存储器515,用于存储信息和要由(多个)处理器510执行的指令。存储器515可由随机存取存储器(RAM)、只读存储器(ROM)、闪存、高速缓存、静态存储(例如磁盘或光盘)或任意其他的类型的非暂态计算机可读介质或其任意组合组成。非暂态计算机可读介质可以是任意可由(多个)处理器510访问的可用介质,可以包括易失性介质、非易失性介质或两者兼有之。介质也可以是可移动的、不可移动的或两者兼有之。
此外,计算系统500包括通信设备520,例如收发机,以通过无线和/或有线连接提供对通信网络的访问。在一些实施例中,通信设备520可以被配置为使用频分多址(FDMA)、单载波FDMA(SC-FDMA)、时分多址(时分多址)、码分多址(码分多址)、正交频分多址(OFDMA)、全球移动通信系统(GSM)、通用分组无线业务(GPRS)、通用移动电信系统(UMTS)、cdma2000、宽带CDMA(W-CDMA)、高速下行链路分组访问(HSDPA)、高速上行链路分组访问(HSUPA)、高速分组访问(HSPA)、长期演进(LTE)、高级LTE(LTE-A)、802.11x、Wi-Fi、紫蜂、超宽带(UWB)、802.16x、802.15、家庭节点B(HnB)、蓝牙、射频识别技术(RFID)、红外数据协会(IrDA)、近场通信(NFC)、第五代(5G)、新空口(NR)及其任意组合,和/或任意其他的当前存在或未来实现的,而不偏离本发明的范围的通信标准和/或协议。在一些实施例中,通信设备520可以包括一个或多个天线,该一个或多个天线是单个的、阵列的、相控的、开关的、波束形成的、波束控制的、其组合和/或任意其他的天线配置而不偏离本发明的范围。
(多个)处理器510还通过总线505耦合到显示器525,例如等离子显示器、液晶显示器(LCD)、发光二极管(LED)显示器、场发射显示器(FED)、有机发光二极管(OLED)显示器、柔性OLED显示器、柔性基板显示器、投影显示器、4K显示器、高清晰度显示器、
Figure BDA0004173917910000191
显示器、共面转换(IPS)显示器或任意其他的适合向用户显示信息的显示器。显示器525可以被配置为使用电阻、电容、表面声波(SAW)电容、红外、光学成像、色散信号技术、声脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多点触摸显示器等。在不脱离本发明范围的情况下,可以使用任意合适的显示设备和触觉I/O。
键盘530和光标控制设备535,例如计算机鼠标、触摸板等,还被耦合到总线505,以使用户能够与计算系统500对接。然而,在某些实施例中,可能不存在物理键盘和鼠标,并且用户可以仅通过显示器525和/或触摸板(未被示出)与设备交互。任意类型和组合的输入设备均可以作为设计选择。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以通过与其通信的另一计算系统与计算系统500远程交互,或者计算系统500可以自主操作。
存储器515存储当由(多个)处理器510执行时提供功能的软件模块。该模块包括用于计算系统500的操作系统540。该模块还包括异常检测和自我修复模块545,其被配置为执行本文描述的全部或部分过程或其衍生物。计算系统500可以包括一个或多个包含附加功能的附加功能模块550。
本领域技术人员将理解,“系统”可以体现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、量子计算系统或任意其他的合适的计算设备或其组合,而不偏离本发明的范围。将上述功能呈现为由“系统”执行并非旨在以任意方式限制本发明的范围,而是旨在提供本发明许多实施例的一个示例。事实上,在本文中公开的方法、系统和装置可以以符合计算技术的本地化和分布式的形式实现,包括云计算技术。计算系统可以是局域网(LAN)、移动通信网络、卫星通信网络、互联网、公有云或私有云、混合云、服务器场、其任意组合等的一部分或者可被其访问。在不偏离本发明范围的情况下,可以使用任意本地化或分布式的架构。
应当注意的是,本说明书中描述的一些系统特征已经作为模块被呈现,以便更具体地强调它们的实现独立性。例如,模块可以以硬件电路实现,包括定制的超大规模集成电路(VLSI)电路或门阵列、现成的半导体,例如逻辑芯片、晶体管或其他的分立元件。模块也可以在可编程硬件设备中实现,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
模块也可以至少部分地以软件实现,以供各种类型的处理器执行。所标识的可执行代码的单元可以,例如,包括计算机指令的一个或多个物理或逻辑块,其可以,例如,被组织为对象、过程或功能。尽管如此,所标识模块的可执行文件不需要物理地位于一起,而是可以包括存储在不同位置的不同指令,当这些指令逻辑地结合在一起时,构成该模块并实现该模块的所述目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是,例如,硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任意其他的此类非暂态计算机可读介质而不偏离本发明的范围的。
事实上,可执行代码模块可以是单个指令或多个指令,并且甚至可以分布于多个不同的代码段上、不同的程序中,以及跨越多个存储设备。类似地,在本文中操作数据可以在模块内被标识和示出,并且可以以任意合适的形式呈现并在任意合适类型的数据结构中被组织。该操作数据可以作为单个数据集被收集,或者可以分布在包括不同的存储设备的不同位置,并且可以至少部分地仅作为系统或网络上的电子信号存在。
图6是图示了根据本发明实施例的系统600的架构图,该系统600被配置为经由AI/ML来执行针对RPA的异常检测和自我修复。系统600包括用户计算系统,例如台式计算机602、603、平板计算机604和智能电话606。然而,在不偏离本发明范围的情况下,可以使用任意期望的计算系统,包括但不限于智能手表、笔记本计算机等。此外,尽管图6中示出了三个用户计算系统,但是在不脱离本发明范围的情况下,可以使用任意合适数目的计算系统。例如,在一些实施例中,可以使用数十个、数百个、数千个或数百万个计算系统。
每个计算系统602、604、606有可执行AI/ML的RPA机器人610,可执行AI/ML的RPA机器人610使用AI/ML模型,例如AI/ML模型632,执行某些任务。例如,RPA机器人610可以使用被训练以使用CV的AI/ML模型来识别用户正在相应计算系统上干什么。计算系统602、604、606通过网络620(例如局域网(LAN)、移动通信网络、卫星通信网络、互联网及其任意组合等)发送信息至服务器630。在一些实施例中,服务器630可以是公共云架构、私有云架构、混合云架构等的一部分。在某些实施例中,服务器630可以在单个计算系统630上托管多个基于软件的服务器。在本实施例中服务器630包括可执行AI/ML的RPA机器人632,可执行AI/ML的RPA机器人632由RPA机器人610调用以执行操作。
RPA机器人610包括异常处理和/或自我修复逻辑,其尝试自动地检测和校正异常。该逻辑可以被并入RPA机器人610本身,AI/ML模型632,或其组合。包括异常处理和/或自我修复逻辑作为AI/ML模型632的一部分可以允许利用来自多个或很多计算系统的信息、潜在地提供更多的样本、用户如何克服问题的示例等。
RPA机器人610可能偶尔遇到新的、未处理过的异常,其中图形元素不能被标识和/或正常的交互将不工作。这样的异常可以由异常处理器(例如,在RPA机器人610的(多个)工作流中的活动的子集或在AI/ML模型632内的逻辑)处理,异常处理器尝试自动地处理异常。在异常处理器仍然不能标识目标图形元素的地方,RPA机器人610可以处理例外。在一些实施例中,RPA机器人610和/或AI/ML模型632可以具有在没有用户输入的情况下尝试使来自异常的缺失的数据完整的自我修复功能。
在一些实施例中,与异常相关的数据可以被存储在数据库640中以供训练计算系统650的应用652检查,训练计算系统650允许用户标记与无法处理的异常和/或由RPA机器人610的在自我修复处的正确尝试相关的屏幕。例如,如果之前没有见过的场景(诸如没有由AI/ML模型识别的新控件)出现,可以向用户提示指导。然后,用户可以在屏幕上标记控件,并且如果控件与AI/ML模型被训练以识别的之前的控件不同地工作,则潜在地提供要采取的动作。使用该训练数据,AI/ML模型632可以被训练以增加准确性。在一些实施例中,由RPA机器人610调用的AI/ML模型可以具有执行各种功能的多个层,诸如统计建模(例如,隐马尔科夫模型(HMMs)),并且利用深度学习技术(例如,长短期记忆(LSTM)深度学习、先前隐状态的编码等)来标识用户交互的序列。
AI层
在一些实施例中,可以使用多个AI层。每个AI层都是在数据上运行的算法(或模型),并且AI模型本身可以是在训练数据中训练的经训练的人工“神经元”的深度学习神经网络(DLNNs)。各层可以串联运行、并联运行或其组合运行。
AI层可以包括但不限于序列提取层、集群检测层、视觉组件检测层、文本标识层(例如OCR)、音频到文本转换层或其任意组合。然而,在不偏离本发明范围的情况下,可以使用任意期望的数目和类型的层。使用多个层可以允许系统开发屏幕上正在发生的情况的全局图像。例如,一个AI层可以执行OCR,另一个可以检测按钮,另一个可以比较序列等。模式可以由一个AI层单独确定,也可以由多个AI层共同确定。
图7是图示了根据本发明实施例的经由AI/ML执行针对RPA的异常检测和自我修复的过程700的流程图。在705处,过程开始于执行使用AI/ML模型来执行UI自动化的RPA机器人(并且因此,RPA工作流)。在710处,RPA机器人使用AI/ML模型在UI中搜索要通过RPA工作流的活动与其交互的目标图形元素。在715处,在目标图形元素由AI/ML模型唯一地找到时,在720处,RPA机器人根据RPA工作流中的一个或多个RPA活动来与目标图形元素交互。然后,在725处,RPA机器人继续执行RPA工作流逻辑直到需要与下一个图形元素的交互。然后过程返回到步骤710。
然而,在715处,在目标图形元素不是由AI/ML模型唯一地找到或不能与目标图形元素交互时,在730处,RPA机器人或AI/ML模型自动地尝试校正异常。在一些实施例中,校正异常的自动的尝试包括确定一个或多个特征是否将目标图形元素与其他相似图形元素区分开。在某些实施例中,确定一个或多个特征是否将目标图形元素与其他相似图形元素区分开包括分析在半径内围绕目标图形元素的图形元素,利用UI中图形元素的顺序,确定目标图形元素是否具有一个或多个不同的视觉特性,或其组合。在一些实施例中,校正异常的自动的尝试包括改变UI的视觉特性并使用改变的视觉特性在UI中搜索目标图形元素。在某些实施例中,校正异常的自动的尝试包括采取默认动作。在一些实施例中,默认动作可以是或包括针对使与目标图形元素的期望的交互能够实现的一个或多个UI描述符搜索UI对象库或UI对象储存库。
在一些实施例中,校正异常的自动的尝试包括由RPA机器人或AI/ML模型在没有用户输入的情况下尝试自我修复过程以使缺失的数据完整。例如,这可以经由在强化学习中的探索阶段来完成。在某些实施例中,RPA机器人或AI/ML模型被配置为通过监测一个或多个性能度量是否响应于自我修复过程改进来确定自我修复过程是否成功。在一些实施例中,在自我修复过程不成功时,校正异常的自动尝试包括尝试一个或多个不同的技术并监测一个或多个不同的技术是否改进一个或多个性能度量。在某些实施例中,自我修复过程包括轮询多个用户以为异常提供建议的解决方案以及基于一个或多个性能度量来选择建议的解决方案中的最优化的解决方案。例如,最优化的解决方案可以基于速度、增加的收入、更多的消费者账户的创建、其组合等来选择。
在735处,在校正异常的自动的尝试成功时,在740处,提供与自动校正相关的数据(例如,向远程服务器和数据库,例如图6的服务器630和数据库640发送)以供AI/ML模型的后续重新训练,并且过程前进到步骤720并且如上面讨论的一样继续。然而,在745处,在校正异常的自动尝试不成功时,用户被提示标识目标图形元素、如何与所述目标图形元素交互、或两者的解决方案。例如,如果之前没有见过的场景(诸如没有由AI/ML模型识别到的新的控件)出现,可以向用户提示指导。然后,用户可以在屏幕上标记控件,并且如果控件与AI/ML模型被训练以识别的之前的控件不同地工作,则潜在地提供要采取的动作。在740处,在由用户提供的指导在使RPA机器人能够与目标图形元素交互中成功时,提供与用户解决方案相关的数据以用于AI/ML模型的后续重新训练,并且过程前进至步骤720并且如上面讨论的一样继续。
在750处,在由用户提供的指导在使RPA机器人能够与目标图形元素交互中不成功时,并且目标图形元素不必要完成RPA工作流的总体任务并且在755处继续的操作是可能的时,RPA机器人可以在725处继续RPA工作流的执行。例如,如果不要求目标图形元素以足够的准确性程度完成RPA工作流的总体任务,则这可以是可能的。然而,在继续的操作在755处不可能时,在760处异常被抛出并且过程结束。
图7中执行的过程步骤可以通过计算机程序被执行,为(多个)处理器进行指令编码以执行图7中描述的至少部分的过程。该计算机程序可以具体体现于非暂态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任意其他的这种介质或介质组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)以实现图7中描述的全部或部分过程步骤的编码指令,其也可以被存储在计算机可读介质上。
计算机程序可以以硬件、软件或混合实现的方式实现。计算机程序可以由相互之间可通信的模块组成,其被设计为传递信息或指令以进行显示。计算机程序可以被配置为在通用计算机、ASIC或任意其他的合适的设备上运行。
容易理解的是,本发明的各种实施例的组件,如在本文的附图中总体描述和图示的,可以以各种各样不同的配置被布置和设计。因此,本发明实施例的详细描述,如附图所示,不是旨在限制所主张的本发明的范围,而仅代表本发明的选定实施例。
贯穿本说明书中描述的本发明的特征、结构或特性可以以任意合适的方式在一个或多个实施例中结合。例如,贯穿本说明书中对“某些实施例”、“一些实施例”或类似的语言的引用意味着结合该实施例描述的特定特征、结构或特性被包含在本发明的至少一个实施例中。因此,贯穿本说明书中出现的短语“在某些实施例中”、“在一些实施例中”、“在其他的实施例中”或类似语言不一定都指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任意合适的方式组合。
应当注意的是,贯穿整个说明书中对特征、优点或类似语言的引用并不意味着本发明可以实现的所有特征和所有优点都应当在或者在本发明的任意单个实施例中。相反,提及特征和优点的语言被理解为意味着结合实施例描述的特定特征、优点或特性被包含在本发明的至少一个实施例中。因此,贯穿本说明书的对特征和优点以及类似语言的讨论可以但不一定指同一实施例。
此外,所描述的特征、优点和特性可以以任意合适的方式组合于一个或多个实施例中。相关领域的技术人员将认识到,本发明可以在没有特定实施例的一个或多个特定特征或优点的情况下实施。在其他的实例中,在某些实施例中可以认识到未呈现于本发明的所有实施例中的附加特征和优点。
本领域普通技术人员将容易理解的是,上文描述的本发明可以以不同顺序的步骤和/或不同于所公开配置的硬件元件来实施。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域技术人员而言,在保持在本发明的精神和范围内的情况下,某些修改、变化和替代结构将是显而易见的。因此,为了确定本发明的边界和界限,应当参考所附权利要求。

Claims (22)

1.一种计算机实现的方法,包括:
由机器人过程自动化(RPA)机器人执行RPA工作流,所述RPA工作流使用人工智能(AI)/机器学习(ML)模型来执行用户界面(UI)自动化;
由所述RPA机器人使用所述AI/ML模型,在所述UI中搜索要通过所述RPA工作流的活动与其交互的目标图形元素;以及
在所述目标图形元素不是由所述AI/ML模型唯一地找到或不能与所述目标图形元素交互时,由所述RPA机器人或所述AI/ML模型自动尝试校正所述异常。
2.根据权利要求1所述的计算机实现的方法,其中校正所述异常的所述自动尝试包括确定一个或多个特征是否将所述目标图形元素与其他相似图形元素区分开。
3.根据权利要求2所述的计算机实现的方法,其中所述一个或多个特征是否将所述目标图形元素与所述其他相似图形元素区分开的所述确定包括:分析在半径内围绕所述目标图形元素的图形元素,利用在所述UI中所述图形元素的顺序,确定所述目标图形元素是否具有一个或多个不同的视觉特性,或其组合。
4.根据权利要求1所述的计算机实现的方法,其中校正所述异常的所述自动尝试包括:改变所述UI的视觉特性,并且使用经改变的所述视觉特性在所述UI中搜索所述目标图形元素。
5.根据权利要求1所述的计算机实现的方法,校正所述异常的所述自动尝试包括采取默认动作。
6.根据权利要求5所述的计算机实现的方法,其中所述默认动作包括针对一个或多个UI描述符搜索UI对象库或UI对象储存库,所述一个或多个UI描述符实现与所述目标图形元素的交互。
7.根据权利要求1所述的计算机实现的方法,其中在校正所述异常的所述自动尝试成功时,所述方法还包括:
由所述RPA机器人提供与所述自动校正相关的数据,以用于所述AI/ML模型的后续重新训练。
8.根据权利要求1所述的计算机实现的方法,其中在校正所述异常的所述自动尝试不成功时,所述方法还包括:
由所述RPA机器人提示用户标识所述目标图形元素、如何与所述目标图形元素交互、或两者的解决方案。
9.根据权利要求8所述的计算机实现的方法,其中在由所述用户提供的所述指导成功使得所述RPA机器人能够与所述目标图形元素交互时,所述方法还包括:
由所述RPA机器人提供与所述用户解决方案相关的数据,以用于所述AI/ML模型的后续重新训练。
10.根据权利要求8所述的计算机实现的方法,其中在由所述用户提供的所述指导未成功使得所述RPA机器人能够与所述目标图形元素交互,并且所述目标图形元素不必要完成所述RPA工作流的总体任务时,所述方法还包括:
由所述RPA机器人尝试所述RPA工作流的继续执行。
11.根据权利要求1所述的计算机实现的方法,其中校正所述异常的所述自动尝试包括:
由所述RPA机器人或所述AI/ML模型在没有用户输入的情况下尝试自我修复过程以使缺失的数据完整。
12.根据权利要求11所述的计算机实现的方法,其中所述RPA机器人或所述AI/ML模型被配置为通过监测一个或多个性能度量是否响应于所述自我修复过程改进来确定所述自我修复过程是否成功。
13.根据权利要求11所述的计算机实现的方法,其中在所述自我修复过程不成功时,所述方法还包括:
尝试一种或多种不同的技术,并且监测所述一种或多种不同的技术是否改进所述一个或多个性能度量。
14.根据权利要求11所述的计算机实现的方法,其中所述自我修复过程包括:
轮询多个用户以提供对所述异常的建议解决方案;以及
基于一个或多个性能度量来选择所述建议解决方案中的最优解决方案。
15.根据权利要求11所述的计算机实现的方法,其中在没有用户输入的情况下使所述缺失的数据完整的所述自我修复过程的所述尝试包括在强化学习中使用探索阶段。
16.一种存储计算机程序的非暂态计算机可读介质,所述计算机程序被配置为使至少一个处理器:
执行机器人过程自动化(RPA)工作流,所述RPA工作流使用人工智能(AI)/机器学习(ML)模型来执行用户界面(UI)自动化;
使用所述AI/ML模型,在所述UI中搜索要通过所述RPA工作流的活动与其交互的目标图形元素;以及
在所述目标图形元素不是由所述AI/ML模型唯一地找到或不能与所述目标图形元素交互时,自动尝试校正所述异常。
17.根据权利要求16所述的非暂态计算机可读介质,其中校正所述异常的所述自动尝试包括:分析在半径内围绕所述目标图形元素的图形元素,利用所述UI中所述图形元素的顺序,确定所述目标图形元素是否具有一个或多个不同的视觉特性,改变所述UI的视觉特性,以及使用经改变的所述视觉特性来在所述UI中搜索所述目标图形元素,或其组合。
18.根据权利要求16所述的非暂态计算机可读介质,其中
在校正所述异常的所述自动尝试成功时,所述计算机程序还被配置为使所述至少一个处理器提供与所述自动校正相关的数据,以用于所述AI/ML模型的后续重新训练,并且
在校正所述异常的所述自动尝试不成功时,所述计算机程序还被配置为使所述至少一个处理器提示用户标识所述目标图形元素、如何与所述目标图形元素交互、或两者的解决方案。
19.根据权利要求18所述的非暂态计算机可读介质,其中
在由所述用户提供的所述指导成功使得所述计算机程序能够与所述目标图形元素交互时,所述计算机程序还被配置为使所述至少一个处理器提供与所述用户解决方案相关的数据,以用于所述AI/ML模型的后续重新训练,并且
在由所述用户提供的所述指导未成功使得所述计算机程序能够与所述目标图形元素交互,并且所述目标图形元素不必要完成所述RPA工作流的总体任务时,所述计算机程序还被配置为使所述至少一个处理器尝试所述RPA工作流的继续执行。
20.根据权利要求16所述的非暂态计算机可读介质,其中校正所述异常的所述自动尝试包括在没有用户输入的情况下尝试自我修复过程以使缺失的数据完整。
21.一种计算系统,包括:
存储计算机程序指令的存储器;以及
至少一个处理器,所述至少一个处理器被配置为执行所述计算机程序指令,其中所述计算机程序指令被配置为使所述至少一个处理器:
由机器人过程自动化(RPA)机器人执行RPA工作流,所述RPA工作流使用人工智能(AI)/机器学习(ML)模型来执行用户界面(UI)自动化;
由所述RPA机器人使用所述AI/ML模型,在所述UI中搜索要通过所述RPA工作流的活动与其交互的目标图形元素;以及
在所述目标图形元素不是由所述AI/ML模型唯一地找到或不能与所述目标图形元素交互时,由所述RPA机器人或所述AI/ML模型自动尝试校正所述异常,其中
校正所述异常的所述自动尝试包括:确定一个或多个特征是否将所述目标图形元素与其他相似图形元素区分开,在没有用户输入的情况下尝试自我修复过程以使缺失的数据完整,或两者。
22.根据权利要求21所述的计算系统,其中所述一个或多个特征是否将所述目标图形元素与所述其他相似图形元素区分开的所述确定包括:分析在半径内围绕所述目标图形元素的图形元素,利用在所述UI中所述图形元素的顺序,确定所述目标图形元素是否具有一个或多个不同的视觉特性,或其组合。
CN202180069910.3A 2020-10-14 2021-10-05 经由人工智能/机器学习的机器人过程自动化异常检测和自我修复 Pending CN116324831A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/070,250 2020-10-14
US17/070,250 US11650874B2 (en) 2020-10-14 2020-10-14 Anomaly detection and self-healing for robotic process automation via artificial intelligence / machine learning
PCT/US2021/053504 WO2022081381A1 (en) 2020-10-14 2021-10-05 Anomaly detection and self-healing for robotic process automation via artificial intelligence / machine learning

Publications (1)

Publication Number Publication Date
CN116324831A true CN116324831A (zh) 2023-06-23

Family

ID=81079022

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180069910.3A Pending CN116324831A (zh) 2020-10-14 2021-10-05 经由人工智能/机器学习的机器人过程自动化异常检测和自我修复

Country Status (5)

Country Link
US (1) US11650874B2 (zh)
EP (1) EP4228869A1 (zh)
JP (1) JP2023549632A (zh)
CN (1) CN116324831A (zh)
WO (1) WO2022081381A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220413997A1 (en) * 2021-06-28 2022-12-29 International Business Machines Corporation Automated locating of gui elements during testing using multidimensional indices
EP4290435A1 (en) * 2022-06-06 2023-12-13 Blue Prism Limited Methods and systems for managing robotic process automation
CN115213907A (zh) * 2022-08-05 2022-10-21 上海控创信息技术股份有限公司 基于边缘计算的运维机器人作业方法及系统
CN115063122B (zh) * 2022-08-08 2022-11-11 杭州实在智能科技有限公司 用于rpa连接ai算法平台的方法及系统
WO2024092241A1 (en) * 2022-10-28 2024-05-02 Belsasar Lepe Distributed robotic processing automation security training
CN117333127B (zh) * 2023-10-09 2024-04-05 广州嘉磊元新信息科技有限公司 一种基于rpa的业务自动处理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9459946B2 (en) * 2014-01-14 2016-10-04 International Business Machines Corporation Personalizing error messages based on user behavior
EP3206170A1 (en) * 2016-02-09 2017-08-16 Wipro Limited System and methods for creating on-demand robotic process automation
AU2018263839A1 (en) 2017-05-02 2019-12-19 Soroco Private Limited Systems and methods for detecting anomalies in execution of computer programs
US10682761B2 (en) * 2017-06-21 2020-06-16 Nice Ltd System and method for detecting and fixing robotic process automation failures
US10235192B2 (en) 2017-06-23 2019-03-19 Accenture Global Solutions Limited Self-learning robotic process automation
US20190155225A1 (en) * 2017-11-21 2019-05-23 Accenture Global Solutions Limited Bot management framework for robotic process automation systems
US10871977B2 (en) 2018-08-29 2020-12-22 Ernst & Young U.S. Llp Automated software script remediation methods and systems
US10710239B2 (en) * 2018-11-08 2020-07-14 Bank Of America Corporation Intelligent control code update for robotic process automation
US11531748B2 (en) 2019-01-11 2022-12-20 Beijing Jingdong Shangke Information Technology Co., Ltd. Method and system for autonomous malware analysis
US20200320432A1 (en) 2019-02-22 2020-10-08 Amaris.Ai Pte. Ltd. Fast artificial intelligence operational system
US11372650B2 (en) * 2019-02-28 2022-06-28 Roots Automation, Inc. System, apparatus, and method for exception handling between an automated software system and a human operator
EP3889777A1 (en) * 2020-03-31 2021-10-06 Accenture Global Solutions Limited System and method for automating fault detection in multi-tenant environments
US11366713B2 (en) * 2020-04-20 2022-06-21 Accenture Global Solutions Limited System and method for automatically identifying and resolving computing errors
CN111667163A (zh) 2020-05-28 2020-09-15 广东电网有限责任公司东莞供电局 基于rpa技术的故障监控方法、rpa机器人及存储介质
US10970064B1 (en) * 2020-07-28 2021-04-06 Bank Of America Corporation Dynamically updating a software program to resolve errors
US11860725B2 (en) * 2020-09-22 2024-01-02 Microsoft Technology Licensing, Llc. Failure recovery recommendations for CLI commands

Also Published As

Publication number Publication date
WO2022081381A1 (en) 2022-04-21
US20220114044A1 (en) 2022-04-14
JP2023549632A (ja) 2023-11-29
EP4228869A1 (en) 2023-08-23
US11650874B2 (en) 2023-05-16

Similar Documents

Publication Publication Date Title
KR102453988B1 (ko) 런타임시 디지털 프로세스에서의 동적 인공 지능/머신 러닝 모델 업데이트, 또는 재트레이닝 및 업데이트
CN114586049A (zh) 使用机器学习来自动完成机器人流程自动化工作流
US11650874B2 (en) Anomaly detection and self-healing for robotic process automation via artificial intelligence / machine learning
US20210109730A1 (en) Using artificial intelligence to select and chain models for robotic process automation
WO2022108722A1 (en) Automated remedial action to expose a missing target and/or anchor (s) for user interface automation
US11836626B2 (en) Artificial intelligence layer-based process extraction for robotic process automation
CN114793454A (zh) 用于托管、监控和重训练机器学习模型的机器人流程自动化架构和流程
CN116057504A (zh) 机器人流程自动化的用户界面(ui)描述符、ui对象库、ui对象储存库和ui对象浏览器
US20210110300A1 (en) Reinforcement learning in robotic process automation
KR102502324B1 (ko) 로봇 프로세스 자동화를 위한 머신 학습 모델 재훈련 파이프라인
CN116529032A (zh) 用于机器人流程自动化(rpa)的支持机器人的任务自动化
CN116324697A (zh) 用于机器人过程自动化的用户接口(ui)映射器
KR20220083976A (ko) 액션 센터, 인공 지능(ai)/머신 학습(ml) 모델 재트레이닝 하드웨어 제어, 및 ai/ml 모델 설정 관리를 통한 ai/ml 모델들의 보충
CN114556387A (zh) 针对机器人过程自动化工作流的可重新配置工作台流水线
CN114868109B (zh) 用户界面自动化中的自动锚点确定和目标图形元素标识
CN113366492B (zh) 专用图形元素检测
KR20220050011A (ko) 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술, 디폴트 그래픽 요소 검출 기술 또는 이들 양자를 사용하는 그래픽 요소 검출
CN113168169A (zh) 用于机器人过程自动化的测试自动化
US20230191601A1 (en) Multi-target libraries, projects, and activities for robotic process automation
KR20220021377A (ko) 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination