掌桥专利:专业的专利平台
掌桥专利
首页

使用用于机器人过程自动化的语义人工智能在源与目标之间的自动数据传输

文献发布时间:2023-06-19 19:27:02


使用用于机器人过程自动化的语义人工智能在源与目标之间的自动数据传输

相关申请交叉引用

本申请是2021年10月5日提交的美国非临时专利申请号17/494,744的部分继续申请(CIP)。该较早提交的申请的主题通过引用整体并入本文。

技术领域

本发明总体上涉及语义匹配,并且更具体地,涉及使用用于机器人过程自动化(RPA)的语义人工智能(AI)在源与目标之间的自动数据传输。

背景技术

目前,开发人员需要使用活动,在RPA设计器应用中手动创建机器人过程自动化(RPA)工作流。在创建RPA工作流时,开发人员需要在屏幕上指示目标图形元素,这会导致RPA设计器应用自动生成与具有一组锚点的目标元素相对应的选择器。例如,尽管目前UiPath工作室

发明内容

本发明的某些实施例可以为本领域中尚未被当前RPA技术完全标识、理解或解决的问题和需求提供解决方案。例如,本发明的一些实施例涉及使用用于RPA的语义AI在源与目标之间的自动数据传输。

在一个实施例中,一种非瞬态计算机可读介质,所述非瞬态计算机可读介质存储计算机程序。该计算机程序被配置为使至少一个处理器接收对源的选择,以及接收对目标的选择。该计算机程序还被配置为使至少一个处理器调用一个或多个AI/ML模型,一个或多个AI/ML模型已经被训练为在源中的标签与目标中的标签之间执行语义匹配、在源中的值与目标中的标签之间执行语义匹配,或者两者。该计算机程序还被配置为使至少一个处理器基于在源中的标签与目标中的标签之间的语义匹配、在源中的值与目标中的标签之间的语义匹配、或者两者,将值从源复制到目标。

在另一实施例中,一种计算机实现的方法包括,由计算系统调用一个或多个AI/ML模型,一个或多个AI/ML模型已经被训练为在源中的标签与目标中的标签之间执行语义匹配、在源中的值与目标中的标签之间执行语义匹配,或者两者。该计算机实现的方法还包括,由计算系统基于在源中的标签与目标中的标签之间的语义匹配、在源中的值与目标中的标签之间的语义匹配、或者两者,将值从源复制到目标。

在又一实施例中,一种计算系统,包括存储器,存储计算机程序指令,以及至少一个处理器,被配置为执行计算机程序指令。计算机程序指令被配置为使至少一个处理器以:调用一个或多个AI/ML模型,一个或多个AI/ML模型已经被训练为在源中的标签与目标中的标签之间执行语义匹配、在源中的值与目标中的标签之间执行语义匹配,或者两者。该计算机程序指令还被配置为使至少一个处理器以:基于在源中的标签与目标中的标签之间的语义匹配、在源中的值与目标中的标签之间的语义匹配、或者两者,将值从源复制到目标。计算机程序指令是过程自动化RPA设计器应用或RPA机器人或者包括RPA设计器应用或RPA机器人。

附图说明

为了便于理解本发明的某些实施例的优点,将通过参考附图中所示的具体实施例来呈现对上面简要描述的本发明的更详细的描述。虽然应当理解,这些附图仅描绘了本发明的典型实施例,因此不被认为是对其范围的限制,但是将通过使用附图对本发明进行附加的具体和详细的描述和解释,其中:

图1是示出了根据本发明实施例的超自动化系统的架构图。

图2是示出了根据本发明实施例的RPA系统的架构图

图3是示出了根据本发明实施例的部署的RPA系统的架构图。

图4是示出了根据本发明实施例的设计器、活动和驱动器之间关系的架构图。

图5是示出了根据本发明实施例的计算系统的架构图,该计算系统被配置为使用用于RPA的语义AI在源与目标之间执行自动数据传输。

图6A示出了根据本发明实施例的已经被训练为识别图像中的图形元素的神经网络的示例。

图6B示出了根据本发明实施例的神经元的示例。

图7是示出了根据本发明实施例的用于训练(多个)AI/ML模型的过程的流程图。

图8A-8D示出了根据本发明实施例的RPA设计器应用的匹配界面。

图9示出了根据本发明实施例的具有自动生成的RPA工作流的RPA设计器应用。

图10A-10H示出了根据本发明实施例的示例语义复制和粘贴界面的屏幕。

图11是示出了根据本发明实施例的用于执行语义AI的AI/ML模型的架构的架构图。

图12是示出了根据本发明实施例的在设计时使用用于RPA的语义AI在源与目标之间执行自动数据传输的过程的流程图。

图13是示出了根据本发明实施例的在运行时使用用于RPA的语义AI在源与目标之间执行自动数据传输的过程的流程图。

图14是示出了根据本发明的实施例的在设计时使用用于RPA的语义AI在源与目标之间执行持久、多屏幕自动数据传输的过程的流程图。

图15是示出了根据本发明的实施例的在运行时使用RPA的语义AI在源与目标之间执行持久、多屏幕自动数据传输的过程的流程图

除非另有指示,否则相似的附图标记在附图中始终表示相应的特征。

具体实施方式

一些实施例涉及使用用于RPA的语义AI在源和目标之间的自动数据传输。大多数手动任务可以简化为查找源、逐字段查找并将信息放入目的地(例如,将发票内容输入到账单系统中)。一些实施例向用户提供选择源和目标并通过直观用户界面指示他或她想要将数据从源复制到目的地的选项,而不考虑格式。例如,源和/或目标可以是网页、应用的图形用户界面(GUI)、图像、文件资源管理器(explorer)、电子表格、关系数据库、平面文件源、任何其他适当的格式或其任意组合。在一些实施例中,源和目标可以具有不同的格式,诸如源是PDF并且目标是账单应用的用户界面。在某些实施例中,源、目标或者两者可以对用户不可见。

在一些实施例中,(多个)AI/ML模型可以用于从源(例如,键-值对、标签和关联值等)和目标(例如,标签和对应于这些标签的文本字段)提取信息。(多个)AI/ML模型可以包括,但不限于,计算机视觉(CV)模型、光学字符识别(OCR)模块、文档处理模块等。在不偏离本发明的范围的情况下,然后采用语义匹配模块将源中的标签和值映射到标签和相关联的字段、UI元素、文件位置或任何其他适当的位置,以复制这些值。在被映射后,这些值将自动从源复制到目标。

在一些实施例中,如果源中具有值的标签与目标中具有至少某个匹配阈值(例如,75%、90%等)的标签不匹配,则可以采取各种动作。例如,可以忽略来自源的标签及其值。备选地,可以提示用户标识目标中是否存在对应的标签并提供该标识。在某些实施例中,可以向用户示出具有小于匹配阈值但大于显示阈值(例如,35%、50%等)的置信度的潜在匹配候选的列表。

在一些实施例中,可以采用基于目标的模式标识。当查看源时,诸如文档、网络表格、软件应用的用户界面、数据文件等,软件通常难以确定哪些字段是标签以及哪些字段是与这些标签相关联的值。值可以包括但不限于,文本串、数字等。然而,缺少这类值的目标模板文档、网络表格、软件应用的用户界面等可以被分析以检测其中的标签。由于尚未针对各种标签(例如,名字、公司、客户编号等)输入值,因此这些标签比当目标还包括与标签相关联的各种值时更容易检测。

然而,在一些实施例中,源本身可以不具有模式。在这种情况下,可以采用自然语言处理(NLP)模型。例如,可以使用GPT-3,这是一种使用深度学习来产生类似人类的文本的自回归语言模型。对NLP模型的输入可以是源文档和用户想要以简单英语提取什么(例如,以文本段落的形式)的描述。然后可以分析源文档,并且可以基于该输入使用NLP模型来提取其中的信息。语义理解由NLP模型作为整体应用到文档的文本中,以“猜测”哪些信息是所需的。

人类语言可以被分离成片段,并在语境中分析句子的语法结构和词的意义。这有助于采用NLP的软件以类似于人类的方式阅读和理解口语或书面文本。句子可以经由令牌化被分解成令牌(token),令牌是更小的语义单位或片段。词性也可以被标记,诸如将词标记为名词、动词、形容词、副词、代词等。词干和词汇化可用于通过将词简化到其词根形式来标准化词。此外,停用词可以被移除。这些是添加很少或不添加唯一信息的常见词,诸如介词和冠词(例如,在、到、一、该等)。然后,可以对这一信息运行NLP模型以提取有用的信息。

如下面参考图1和图2更详细地描述的,一些实施例可以是有人值守的或无人值守的。对于有人值守的实施例,在一些方面,如果用户因为字段的值不正确而点击该字段,则可以出现其他已评分选项以供用户选择。在不偏离本发明的范围的情况下,可以使用任何适当的相似性度量和/或针对两个值之间的失配量的度量来对候选者的相似性进行排名。例如,在各种实施例中,相似性阈值可以表示最大失配量或者匹配所需的最小相似量。相似性度量可以用各种方式来表示,诸如根据被称为“字符串度量”的字符串间距离。一个被称为莱文斯坦(Levenshtein)距离的示例字符串度量确定了将一个字符串转换为另一个字符串必要的操作计数。其他字符串间距离包括汉明(Hamming)距离和哈科-温克勒(Jaro-Winkler)距离等。

根据所选择的计算相似性度量的方式,相似性阈值可以具有各种各样的解释。例如,相似性阈值可以指示两个字符串之间可以不同的最大字符计数或作为字符总计数(例如,组合字符串长度)的比例而计算的失配分数。在一些实施例中,可以将相似性阈值重新缩放到预定区间,诸如在0和1之间、在0和100之间、在7和34之间等。在一个非限制性示例中,相对较高的相似性阈值(例如,接近1或100%)指示对几乎完全匹配的要求,即,仅允许运行时目标中的模糊属性的值与设计时目标中的相应属性的值非常微小地偏离。相反,当相似性阈值相对较低(例如,接近0)时,相应模糊属性的几乎任何值都被认为是匹配的。有些允许在设计时调整相似性阈值,例如通过滑块。

尽管现有技术使用多个或很多个源示例来从源学习键-值对,但一些实施例基本上相反地操作。标签是从空目标确定的。根据上面的说明,源和目标可以具有不同的类型。例如,一个可以是网页,而另一个可以是

用户可以提供用于针对某些类型的目标建立库的培训信息。例如,可以提供“开箱即用”的能够实现70%准确度的CV、OCR和文档处理人工智能(AI)/机器学习(ML)模型。当用户提供对不正确的值和/或标签-值关联的校正时,这些可以被用以重新训练相应的AI/ML模型,从而提高其准确度。

在一些实施例中,可以对用户与软件的交互执行分析,以确定使用最多的任务。这些任务可以报告给卓越中心(COE),并用作任务挖掘的一种形式。使用当前的任务挖掘技术,很难标识某些重复任务的开始和结束。然而,通过分析用户执行复制和粘贴操作的方式,一些实施例可以标识任务在哪里开始以及在哪里结束。“复制”可以表示复制和粘贴任务的开始,而“粘贴”可以表示这样的任务的结束。在复制和粘贴之间执行的动作可以作为任务流包括在工作流中。此外,可以使用此信息创建可靠而有效的工作流。

在某些实施例中,可以包括局部和全局AI/ML模型两者。例如,局部AI/ML模型可以学习给定用户的偏好,而全局AI/ML模型学习来自许多或所有用户的集体偏好。使用来自AI/ML模型的结果可以需要阈值。例如,如果局部模型首先被采用,并且不满足针对一个或多个属性的建议阈值,则可以尝试全局模型以查看它是否得出有用的结果。

为了执行基于目标的模式标识,用户可以选择还没有值的目标。使用CV、OCR和/或文档处理AI/ML模型,在目标中确定标签或“键”以及它们的位置。这允许系统确定目标的类型。例如,网络表单往往在该文本字段的相应标签的右侧具有矩形文本字段。发票往往具有某些字段,诸如客户编号、词“发票”、“金额”的某些变型等。标签的(多个)位置也可用于辅助确定。例如,文本字段通常倾向于垂直排列,一个在上面,一个在下面,文本字段列的顶部或底部除外。在一些实施例中,可以执行锚点提取或基于多锚点的提取,诸如使用在美国专利号10,936,351中公开的技术。

在一些实施例中,在匹配界面上选择源数据或源屏幕和目标屏幕,并且自动执行标签和模式标识、语义匹配以及将匹配标签的数据从源传输(例如,复制和粘贴)到目标,而无需用户进一步动作。这种功能可以在设计时为RPA开发人员(包括公民开发人员)提供,并且可以在运行时为最终用户提供。在一些设计时实施例中,基于语义映射自动创建一个或多个RPA工作流活动,该语义映射可以被执行以作为由RPA机器人执行的自动化的一部分执行语义AI功能。

在一些实施例中,可以获取数据字段列表,诸如从

一些实施例的语义匹配AI/ML模型可以在设计时被部署以帮助RPA开发人员。然而,在一些实施例中,可以在运行时使用语义匹配AI/ML模型来提供更稳健的功能和自我修复。在一些实施例中,这可以在UI描述符未能在运行时标识目标图形元素的情况下采用,而不是一般情况下采用,因为UI描述符往往比语义匹配AI/ML模型快得多。因此,UI描述符应当首先用于相同或相似的目标屏幕。

例如,如果给定目标元素在运行时不能由给定用户界面(UI)描述符标识,诸如如果UI由于目标应用的新版本而改变,则语义匹配AI/ML模型可以被用于尝试标识目标图形元素。然后,可以将该信息添加为感兴趣的词或短语的同义词,并且可以更新该图形元素的UI描述符,使得该UI描述符将继续工作。如果用户界面再次改变,并且改变后的图形元素和/或(多个)锚点足够相似,则RPA机器人可以能够标识应用的新版本中的目标图形元素。例如,参见美国专利申请公开号2022/0012024。

UI描述符是用于找到UI元素的指令集。在一些实施例中,UI描述符是封装的数据/结构格式,其包括(多个)UI元素选择器、(多个)锚点选择器、(多个)计算机视觉(CV)描述符、(多个)统一目标描述符、屏幕图像捕捉(上下文)、元素图像捕捉、其他元数据(例如,应用和应用版本)、其组合等。封装的数据/结构格式可以利用对平台的未来更新而被扩展,并且不限于上述定义。在不偏离本发明的范围的情况下,可以使用用于标识屏幕上的UI元素的任何适合的UI描述符。

在一些实施例中,语义匹配AI/ML模型正在检测的内容可以与用于运行时检测的统一目标描述符组合。对于这样的实施例,除了源和目标的词和短语之外,一旦映射被确认,就可以收集统一目标信息。在运行时处,可以先尝试统一目标描述符,如果不成功,则可以使用语义匹配AI/ML模型。

统一目标描述符往往比AI/ML模型更稳定和准确。统一目标描述符将多种类型的UI描述符链接到一起。统一目标信息包括便于标识采用的(多个)UI描述符的图形元素的UI描述符信息。

统一目标描述符可以像有限状态机(FSM)那样起作用,其中在第一上下文中应用第一UI描述符机制,在第二上下文中应用第二UI描述符,等等。换言之,在一些实施例中,UI描述符可以与统一目标一起工作,其包括通过其执行图像检测和定义的一些或所有UI检测机制。统一目标可以将标识和自动化UI元素的多种技术合并到单个聚合方法中。在一些实施例中,统一目标可以使某些UI描述符类型优先,诸如时基于选择器和基于驱动器的UI检测机制优先,并且如果前两种机制不成功,则使用CV作为后备来找到目标UI元素。

在一些实施例中,除了语义匹配AI/ML模型之外或代替语义匹配AI/ML模型,可以使用NLP AI/ML模型。在某些实施例中,这些AI/ML模型可以一起使用。例如,其中一个模型达到或超过某个阈值,如果两个模型的平均值都达到或超过阈值等,则可以向用户提议匹配。

在一些实施例中,提供反馈回路功能。例如,如果用户添加匹配或校正由语义匹配AI/ML模型提议的匹配,则可以保存关于该匹配的信息。该信息可以包括但不限于目标应用的屏幕截图、目标应用中的标签和源屏幕或源数据中的对应的标签、不正确匹配的标签等。还可以捕捉上下文,诸如针对网页、

图1是示出了根据本发明实施例的超自动化系统100的架构图。如本文使用的,“超自动化”指的是将过程自动化的组件、集成工具和放大使工作自动化的能力的技术聚集在一起的自动化系统。例如,在一些实施例中,RPA可以被用在超自动化系统的核心处,并且在某些实施例中,自动化能力可以通过人工智能(AI)/机器学习(ML)、过程挖掘、分析和/或其他高级工具来扩展。在超自动化系统学习过程、训练AI/ML模型和采用分析时,例如,越来越多的知识工作可以被自动化,并且组织中的计算系统,例如由个人使用的计算系统和自主运行的计算系统,都可以参与到超自动化过程中。一些实施例的超自动化系统允许用户和组织高效且有效地发现、理解和扩展自动化。

超自动化系统100包括用户计算系统,诸如台式计算机102、平板电脑104和智能电话106。然而,在不偏离本发明的范围的情况下,可以使用任何期望的用户计算系统,包括但不限于,智能手表、膝上型计算机、服务器、物联网(IoT)设备等。此外,尽管图1中示出了三个用户计算系统,但是在不偏离本发明的范围的情况下,可以使用任何适当数目的用户计算系统。例如,在一些实施例中,可以使用数十、数百、数千或数百万个用户计算系统。用户计算系统可以由用户主动使用或在没有太多或任何用户输入的情况下自动运行。

每个用户计算系统102、104、106具有在其上运行的相应(多个)自动化过程110、112、114。在不偏离本发明的范围的情况下,自动化过程110、112、114可以包括但不限于,RPA机器人、操作系统的一部分、用于相应计算系统的(多个)可下载应用、任何其他适当的软件和/或硬件、或这些的任意组合。在一些实施例中,(多个)过程110、112、114中的一个或多个可以是监听器。在不偏离本发明的范围的情况下,监听器可以是RPA机器人、操作系统的一部分、用于相应计算系统的可下载应用、或任何其他软件和/或硬件。事实上,在一些实施例中,(多个)监听器的逻辑部分地或完全地经由物理硬件实现。

监听器监测并记录与用户与相应计算系统的交互和/或无人值守计算系统的操作有关的数据,并经由网络(例如,局域网(LAN)、移动通信网络、卫星通信网络、互联网、其任意组合等)将数据发送到核心超自动化系统120。数据可以包括但不限于,点击了哪些按钮、鼠标移动到哪里、在字段中输入的文本、一个窗口被最小化并且另一个窗口被打开、与窗口相关联的应用等。在某些实施例中,来自监听器的数据可以作为心跳消息的一部分被周期性地发送。在一些实施例中,一旦已经收集了预定数量的数据、在经过了预定时间段之后、或者两者,则可以将数据发送到核心超自动化系统120。一个或多个服务器,诸如服务器130,接收来自监听器的数据并将其存储在诸如数据库140的数据库中。

自动化过程可以执行在设计时期间在工作流中开发的逻辑。在RPA的情况下,工作流可以包括步骤集合,本文定义为“活动”,其按顺序或某种其他逻辑流执行。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,可以嵌套或嵌入工作流。

在一些实施例中,RPA的长时间运行工作流是支持无人值守环境中的服务协调、人工干预和长时间运行事务的主项目。例如,参见美国专利号10,860,905。当某些过程在进行到活动中的下一步骤之前需要人工输入来处理异常、批准或验证时,人工干预将起到作用。在这种情况下,过程执行被暂停,从而释放RPA机器人,直到人工任务完成。

长时间运行工作流可以通过持久活动支持工作流分段,并且可以与调用过程和非用户交互活动相结合,从而将人工任务与RPA机器人任务进行协调。在一些实施例中,多个或很多个计算系统可以参与执行长时间运行工作流的逻辑。长时间运行工作流可以在会话中运行以便于快速执行。在一些实施例中,长时间运行工作流可以协调后台过程,该后台过程可以包含执行应用编程接口(API)调用并在长时间运行工作流会话中运行的活动。在一些实施例中,这些活动可以由调用过程活动来调用。在用户会话中运行的具有用户交互活动的过程可以通过从指挥器活动(指挥器在下文中更详细地描述)开始作业来调用。在一些实施例中,用户可以通过需要在指挥器中完成表格的任务进行交互。可以包括导致RPA机器人等待表单任务完成,然后恢复长时间运行工作流的活动。

(多个)自动化过程110、112、114中的一个或多个与核心超自动化系统120通信。在一些实施例中,核心超自动化系统120可以在诸如服务器130的一个或多个服务器上运行指挥器应用。虽然出于说明的目的而示出了一个服务器130,但是在不偏离本发明的范围的情况下,可以采用彼此邻近或在分布式架构中的多个或很多个服务器。例如,在不偏离本发明的范围的情况下,可以提供一个或多个服务器用于指挥器功能、AI/ML模型服务、认证、管治和/或任何其他适当的功能。在一些实施例中,核心超自动化系统120可以并入公共云架构、私有云架构、混合云架构等或作为其一部分。在某些实施例中,核心超自动化系统120可以在诸如服务器130的一个或多个计算系统上托管多个基于软件的服务器。在一些实施例中,核心超自动化系统120的一个或多个服务器,诸如服务器130,可以经由一个或多个虚拟机(VM)实现。

在一些实施例中,(多个)自动化过程110、112、114中的一个或多个可以调用部署在核心超自动化系统120上或可由核心超自动化系统120访问的一个或多个AI/ML模型132。在不偏离本发明的范围的情况下,AI/ML模型132可以被训练用于任何适当的目的,如本文稍后将更详细地讨论的。在一些实施例中,两个或更多个AI/ML模型132可以被链接(例如,串行、并行或其组合),使得它们共同提供(多个)协作输出。AI/ML模型132可以执行或协助计算机视觉(CV)、光学字符识别(OCR)、文档处理和/或理解、语义学习和/或分析、分析预测、过程发现、任务挖掘、测试、自动RPA工作流生成、序列提取、集群检测、音频到文本翻译、其任意组合等。然而,在不偏离本发明的范围的情况下,可以使用任何期望数目和/或(多个)类型的AI/ML模型。例如,使用多个AI/ML模型可以允许系统开发给定计算系统上正在发生的事情的全局图景。例如,一个AI/ML模型可以执行OCR,另一AI/ML模型可以检测按钮,另一AI/ML模型可以比较序列,等等。模式可以由AI/ML模型单独确定或由多个AI/ML模型共同确定。在某些实施例中,在计算系统102、104、106中的至少一个上本地部署一个或多个AI/ML模型。

在一些实施例中,可以使用多个AI/ML模型132。每个AI/ML模型132是在数据上运行的算法(或模型),并且AI/ML模型本身可以是例如在训练数据上训练的训练后的人工“神经元”的深度学习神经网络(DLNN)。在一些实施例中,AI/ML模型132可以具有多个层,其执行各种功能,诸如统计建模(例如,隐马尔可夫模型(HMM)),并且利用深度学习技术(例如,长短期记忆(LSTM)深度学习、先前隐藏状态的编码等)以执行所需功能。

在一些实施例中,超自动化系统100可以提供四个主要功能组:(1)发现;(2)构建自动化;(3)管理;以及(4)参与。在一些实施例中,自动化(例如,在用户计算系统、服务器等上运行)可以由诸如RPA机器人的软件机器人运行。例如,可以使用有人值守机器人、无人值守机器人和/或测试机器人。有人值守机器人与用户一起工作以协助他们完成任务(例如,经由UiPath助手

发现功能可以针对业务过程自动化的不同机会发现并提供自动推荐。这样的功能可以由诸如服务器130的一个或多个服务器实现。在一些实施例中,发现功能可以包括提供自动化枢纽、过程挖掘、任务挖掘和/或任务捕获。自动化枢纽(例如,UiPath自动化枢纽

过程挖掘(例如,经由UiPath自动化云

任务挖掘(例如,经由UiPath自动化云

在一些实施例中,任务挖掘可以包括利用用户动作(例如,用户正在与之交互的鼠标点击位置、键盘输入、应用窗口和图形元素、交互的时间戳等)进行屏幕截图、收集统计数据(例如,执行时间、动作数量、文本条目等)、编辑和注释屏幕截图、指定要记录的动作的类型等。

任务捕获(例如,UiPath自动化云

构建自动化可以经由设计器应用(例如,UiPath工作室

例如,集成服务可以允许开发人员无缝地将用户界面(UI)自动化与API自动化相结合。可以构建需要API或遍历API和非API应用和系统的自动化。可以提供用于预构建RPA和AI模板和解决方案的存储库(例如,UiPath对象存储库

在一些实施例中,超自动化系统100的组件,诸如(多个)设计器应用和/或外部规则引擎,提供对管理和实施管治策略的支持,用于控制由超自动化系统100提供的各种功能。管治是组织制定策略以防止用户开发能够采取可能损害组织的动作的自动化(例如,RPA机器人)的能力,诸如违反欧盟一般数据保护条例(GDPR)、美国健康保险可携带性和责任法案(HIPAA)、第三方应用服务条款等。由于开发人员在执行其自动化时可能以其他方式创建违反隐私法、服务条款等的自动化,因此一些实施例在机器人和/或机器人设计应用级别实现访问控制和管治限制。在一些实施例中,通过防止开发人员依赖可能引入安全风险或以违反策略、法规、隐私法和/或隐私政策的方式工作的未经批准的软件库,这可以向自动化过程开发流水线提供附加的安全和遵从性级别。例如,参见美国非临时专利申请号16/924,499(公布为美国专利申请公开号2022/0011732),其全部内容通过引用并入本文。

管理功能可以提供跨组织的自动化的管理、部署和优化。在一些实施例中,管理功能可以包括协调、测试管理、AI功能和/或洞察。超自动化系统100的管理功能还可以充当与用于自动化应用和/或RPA机器人的第三方解决方案和应用的集成点。超自动化系统100的管理能力可以包括但不限于,有助于RPA机器人的供应、部署、配置、排队、监测、日志记录和互连等。

指挥器应用,诸如UiPath协调器

分析软件(例如,UiPath洞察)可以追踪、测量和管理所部署的自动化的性能。分析软件可以使自动化操作与组织的特定关键绩效指标(KPI)和战略结果保持一致。分析软件可以以仪表板格式呈现结果,以便人类用户更好地理解。

例如,数据服务(例如,UiPath数据服务

参与功能使人类和自动化成为一个团队,用于在所需过程上的无缝协作。可以构建低码应用(例如,经由UiPath应用

动作中心(例如,UiPath动作中心

可以提供本地助手作为用户启动自动化的启动台(例如,UiPath助手

聊天机器人(例如,UiPath聊天机器人

在一些实施例中,任何规模的自动化程序的端到端测量和管治可以由超自动化系统100提供。如上所述,可以采用分析来理解自动化的性能(例如,经由UiPath洞察

在一些实施例中,超自动化系统100提供迭代平台。可以发现过程,可以构建、测试和部署自动化,可以测量性能,可以容易地向用户提供自动化的使用,可以获得反馈,可以训练和重新训练AI/ML模型,并且可以重复该过程本身。这有助于更鲁棒且有效的自动化套件。

图2是示出根据本发明实施例的RPA系统200的架构图。在一些实施例中,RPA系统200是图1的超自动化系统100的一部分。RPA系统200包括允许开发人员设计和实现工作流的设计器210。设计器210可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务和业务IT过程的解决方案。设计器210可以促进自动化项目的开发,其是业务过程的图形表示。简而言之,设计器210促进工作流和机器人的开发和部署。在一些实施例中,设计器210可以是在用户桌面上运行的应用、在VM中远程运行的应用、网络应用等。

自动化项目通过给予开发人员对执行顺序和在工作流中开发的一组定制步骤之间的关系(如上所述,本文中被定义为“活动”)之间的控制来实现基于规则的过程的自动化。设计器210的实施例的一个商业示例是UiPath工作室

某些类型的工作流可以包括但不限于序列、流程图、有限状态机(FSM)和/或全局异常处理程序。序列可以特别适用于线性过程,从而实现从一个活动到另一活动的流动,而不会使工作流变得杂乱无章。流程图可以特别适用于更复杂的业务逻辑,可以通过多个分支逻辑运算符以更多样化的方式集成决策和活动连接。FSM可以特别适用于大型工作流。FSM可以在其执行中使用有限数量的状态,其由条件(即,转换)或活动触发。全局异常处理程序可以特别适用于在遇到执行错误时确定工作流行为以及调试过程。

在设计器210中开发工作流后,业务过程的执行就由指挥器220来协调,指挥器220协调执行在设计器210中开发的工作流的一个或多个机器人230。指挥器220的实施例的一个商业示例是UiPath协调器

指挥器220可以管理一队机器人230,从中心点连接和执行机器人230。可以管理的机器人230的类型包括但不限于,有人值守机器人232、无人值守机器人234、开发机器人(类似于无人值守机器人234,但用于开发和测试目的)和非生产机器人(类似于有人值守机器人232,但用于开发和测试目的)。有人值守机器人232由用户事件触发,并且在同一计算系统上与人工并排操作。有人值守机器人232可以与指挥器220一起用于集中式过程部署和记录介质。有人值守机器人232可以帮助人工用户完成各种任务,并且可以由用户事件触发。在一些实施例中,过程不能从这种类型的机器人上的指挥器220开始和/或它们不能在锁定屏幕下运行。在某些实施例中,只能从机器人托盘或从命令提示符启动有人值守机器人232。在一些实施例中,有人值守机器人232应当在人工监督下运行。

无人值守机器人234在虚拟环境中无人值守地运行,并且可以使许多过程自动化。无人值守机器人234可以负责远程执行、监测、调度和提供对工作队列的支持。在一些实施例中,可以在设计器210中运行对所有机器人类型的调试。有人值守和无人值守机器人都可以使各种系统和应用自动化,包括但不限于大型机、网络应用、VM、企业应用(例如,由

指挥器220可以具有各种能力,包括但不限于,供应、部署、配置、队列、监测、记录和/或提供互连。供应可以包括创建和维护机器人230和指挥器220(例如,网络应用)之间的连接。部署可以包括确保将封装版本正确地递送到指定的机器人230以用于执行。配置可以包括维护和递送机器人环境和过程配置。队列可以包括提供队列和队列项目的管理。监测可以包括追踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和索引到数据库(例如,结构化查询语言(SQL)数据库或“不仅仅”SQL(NoSQL)数据库)和/或另一存储机制(例如,

机器人230是实现设计器210中内置的工作流的执行代理。(多个)机器人230的一些实施例的一个商业示例是UiPath机器人

在一些实施例中,机器人230可以被安装在用户模式中。对于这样的机器人230,这意味着它们具有与安装了给定机器人230的用户相同的权限。该特征也对高密度(HD)机器人可用,这确保了充分利用每台机器的最大潜力。在一些实施例中,可以在HD环境中配置任何类型的机器人230。

在一些实施例中,机器人230被拆分成若干组件,每个组件专用于特定的自动化任务。一些实施例中的机器人组件包括但不限于,SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监测

在一些实施例中,用户模式机器人服务管理和监测

执行器可以在

如上所述地拆分机器人230的组件有助于开发人员、支持用户和计算系统更容易地运行、标识和追踪每个组件正在执行什么。可以通过这种方式为每个组件配置特殊行为,诸如为执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可以总是知道每个监测器的DPI设置。因此,工作流可以在任何DPI处执行,而不管在其上创建它们的计算系统的配置。在一些实施例中,来自设计器210的项目也可以独立于浏览器缩放级别。对于DPI未察觉或被故意标记为不知道的应用,在一些实施例中可以禁用DPI。

本实施例中的RPA系统200是超自动化系统的一部分。开发人员可以使用设计器210来构建和测试利用部署在核心超自动化系统240中的AI/ML模型(例如,作为其AI中心的一部分)的RPA机器人。这样的RPA机器人可以发送用于执行(多个)AI/ML模型的输入,并经由核心超自动化系统240从其接收输出。

如上所述,一个或多个机器人230可以是监听器。这些监听器可以向核心超自动化系统240提供关于用户在使用其计算系统时正在做什么的信息。然后,核心超自动化系统可以使用该信息来进行过程挖掘、任务挖掘、任务捕获等。

可以在用户计算系统上提供助手/聊天机器人250以允许用户启动RPA本地机器人。例如,助手可以位于系统托盘中。聊天机器人可以具有用户界面,从而用户可以在聊天机器人中看到文本。备选地,聊天机器人可能缺乏用户界面,而是在后台运行,从而使用计算系统的麦克风监听用户语音。

在一些实施例中,数据标记可以由机器人在其上执行的计算系统的用户或者在机器人向其提供信息的另一计算系统上执行。例如,如果机器人调用对VM用户的图像执行CV的AI/ML模型,但是AI/ML模型没有正确地标识屏幕上的按钮,则用户可能在错误标识的或未标识的组件周围画一个矩形,并且潜在地提供具有正确标识的文本。该信息可以被提供给核心超自动化系统240,然后稍后用于训练新版本的AI/ML模型。

图3是示出了根据本发明实施例的部署的RPA系统300的架构图。在一些实施例中,RPA系统300可以是图2的RPA系统200和/或图1的超自动化系统100的一部分。部署的RPA系统300可以是基于云的系统、企业内部系统、提供用于不同计算过程的自动化的企业级、用户级或设备级自动化解决方案的基于桌面的系统等。

应当注意的是,在不偏离本发明的范围的情况下,客户端、服务器端或者两者可以包括任何期望数目的计算系统。在客户端侧,机器人应用310包括执行器312、代理314和设计器316。然而,在一些实施例中,设计器316可以不在与执行器312和代理314相同的计算系统310上运行。执行器312正在运行过程。如图3所示,若干业务项目可以同时运行。在该实施例中,代理314(例如,

在一些实施例中,机器人表示机器名和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行多个交互式会话的计算系统(例如,

代理314还负责发送机器人的状态(例如,周期性地发送指示机器人仍在运行的“心跳”消息)并下载要执行的封装的所需版本。在一些实施例中,代理314和指挥器340之间的通信总是由代理314发起。在通知场景中,代理314可以打开稍后由指挥器330用来向机器人发送命令(例如,开始、停止等)的WebSocket通道。

监听器330监测并记录与用户与有人值守计算系统的交互和/或监听器330所驻留的无人值守计算系统的操作有关的数据。在不偏离本发明的范围的情况下,监听器330可以是RPA机器人、操作系统的一部分、用于相应计算系统的可下载应用、或任何其他软件和/或硬件。事实上,在一些实施例中,监听器的逻辑部分地或完全地经由物理硬件实现。

在服务器侧,包括呈现层(网络应用342、开放数据协议(OData)代表性状态传输(REST)应用编程接口(API)端点344以及通知和监测346)、服务层(API实现/业务逻辑348)和持久层(数据库服务器350、AI/ML服务器360和索引器服务器370)。指挥器340包括网络应用342、OData REST API端点344、通知和监测346以及API实现/业务逻辑348。在一些实施例中,用户在指挥器340的界面中执行的大多数动作(例如,经由浏览器320)通过调用各种API来执行。在不偏离本发明的范围的情况下,这样的动作可以包括但不限于,启动机器人上的作业、添加/移除队列中的数据、调度作业以无人值守地运行等。网络应用342是服务器平台的视觉层。在该实施例中,网络应用342使用超文本标记语言(HTML)和JavaScript(JS)。然而,在不偏离本发明的范围的情况下,可以使用任何期望的标记语言、脚本语言或任何其他格式。在本实施例中,用户通过浏览器320与来自网络应用342的网页交互,以便执行各种动作来控制指挥器340。例如,用户可以创建机器人组、将封装分配给机器人、分析每个机器人和/或每个过程的日志、启动和停止机器人等。

除了网络应用342之外,指挥器340还包括暴露OData REST API端点344的服务层。然而,在不偏离本发明的范围的情况下可以包括其他端点。REST API由网络应用342和代理314两者使用。在该实施例中,代理314是客户计算机上的一个或多个机器人的监督者。

在该实施例中,REST API涵盖配置、记录、监测和队列功能。在一些实施例中,配置端点可以用于定义和配置应用用户、许可、机器人、资产、版本和环境。例如,记录REST端点可以用于记录不同的信息,诸如错误、由机器人发送的显式消息以及其他环境特定信息。如果在指挥器340中使用开始作业命令,则部署REST端点可以由机器人用来查询应当执行的封装版本。队列REST端点可以负责队列和队列项目管理,诸如向队列添加数据、从队列获取事务、设置事务的状态等。

监测REST端点可以监测网络应用342和代理314。通知和监测API 346可以是REST端点,其用于注册代理314、向代理314递送配置设置以及用于从服务器和代理314发送/接收通知。在一些实施例中,通知和监测API 346还可以使用WebSocket通信。

在一些实施例中,可以通过配置适当的API访问路径来访问服务层中的API,例如,基于指挥器340和整个超自动化系统具有本地部署类型还是基于云的部署类型。指挥器340的API可以提供用于查询关于在指挥器340中注册的各种实体的统计数据的定制方法。在一些实施例中,每个逻辑资源可以是开放式数据(OData)实体。在这样的实体中,诸如机器人、过程、队列等组件可以具有属性、关系和操作。在一些实施例中,网络应用342和/或代理314可以以两种方式使用指挥器340的API:通过从指挥器340获得API访问信息,或者通过注册外部应用来使用一键认证(OAuth)流。

在该实施例中,持久层包括服务器三件套——数据库服务器350(例如,SQL服务器)、AI/ML服务器360(例如,提供AI/ML模型供应服务的服务器,诸如AI中心功能)和索引器服务器370。在该实施例中,数据库服务器350存储机器人、机器人组、相关联的过程、用户、角色、时间表等的配置。在一些实施例中,该信息通过网络应用342来管理。数据库服务器350可以管理队列和队列项目。在一些实施例中,数据库服务器350可以存储由机器人记录的消息(作为索引器服务器370的附加或替代)。例如,数据库服务器350还可以存储从安装在客户端侧的监听器330接收的过程挖掘、任务挖掘和/或任务捕获相关数据。虽然在监听器330和数据库350之间没有示出箭头,但是应当理解,在一些实施例中,监听器330能够与数据库350通信,反之亦然。该数据可以以PDD、图像、XAML文件等形式被存储。监听器330可以被配置为截取监听器330所驻留的相应计算系统上的用户动作、过程、任务和性能度量。例如,监听器330可以将用户动作(例如,点击、键入的字符、位置、应用、活动元素、时间等)记录在其相应的计算系统上,然后将它们转换成适当的格式以提供给数据库服务器350并存储在其中。

AI/ML服务器360有助于将AI/ML模型合并到自动化中。预构建AI/ML模型、模型模板和各种部署选项甚至可以让那些不是数据科学家的人也可以访问这些功能。所部署的自动化(例如,RPA机器人)可以从AI/ML服务器360调用AI/ML模型。AI/ML模型的性能可以被监测,并使用人工验证的数据进行训练和改进。AI/ML服务器360可以调度和执行训练作业以训练新版本的AI/ML模型。

AI/ML服务器360可以存储关于用于在开发时为用户配置各种ML技能的AI/ML模型和ML包的数据。如本文所使用的,ML技能例如是可以由自动化使用的过程的预构建和训练的ML模型。AI/ML服务器360还可以存储与各种AI/ML能力的文档理解技术和框架、算法和软件包有关的数据,各种AI/ML能力包括但不限于,意图分析、自然语言处理(NLP)、语音分析、不同类型的AI/ML模型等。

索引器服务器370(在一些实施例中是可选的)存储并索引由机器人记录的信息。在某些实施例中,可以通过配置设置禁用索引器服务器370。在一些实施例中,索引器服务器370使用

图4是示出根据本发明实施例的设计器410,活动420、430、440、450,驱动器460、API 470和AI/ML模型480之间的关系400的架构图。如上所述,开发人员使用设计器410来开发由机器人执行的工作流。在一些实施例中,可以向开发人员显示各种类型的活动。设计器410可以在用户的计算系统本地或远程(例如,经由与远程网络服务器交互的VM或本地网络浏览器访问)。工作流可以包括用户定义的活动420、API驱动的活动430、AI/ML活动440和/或UI自动化活动450。用户定义的活动420和API驱动的活动440经由它们的API与应用交互。在一些实施例中,用户定义的活动420和/或AI/ML活动440可以调用一个或多个AI/ML模型480,其可以位于机器人正在其上操作的计算系统的本地和/或远程。

一些实施例能够标识图像中的非文本视觉组件,其在本文中被称为CV。可以至少部分地由(多个)AI/ML模型480执行CV。与这些组件有关的一些CV活动可以包括但不限于,使用OCR从分割的标签数据中提取文本、模糊文本匹配、使用ML对分割的标签数据进行裁剪、将标签数据中提取的文本与事实数据进行比较等。在一些实施例中,可以存在可以在用户定义的活动420中实现的数百甚至数千个活动。然而,在不偏离本发明范围的情况下,可以使用任意数目和/或类型的活动。

UI自动化活动450是以低级别代码编写的特殊的低级别活动的子集,并且促进与屏幕的交互。UI自动化活动450经由允许机器人与所需软件交互的驱动器460来促进这些交互。例如,驱动器460可以包括操作系统(OS)驱动器462、浏览器驱动器464、VM驱动器466、企业应用驱动器468等。在一些实施例中,UI自动化活动450可以使用AI/ML模型480中的一个或多个AI/ML模型以便执行与计算系统的交互。在某些实施例中,AI/ML模型480可以增强驱动器460或完全替换它们。实际上,在某些实施例中,不包括驱动器460。

驱动器460可以通过OS驱动器462在低级别与OS交互以找到挂钩(hook)、监测键等。驱动器460可以促进与

图5是示出了根据本发明的实施例的计算系统500的架构图,计算系统500被配置为使用用于RPA的语义AI来执行在源与目标之间的自动数据传输。在一些实施例中,计算系统500可以是本文描绘和/或描述的一个或多个计算系统。在某些实施例中,计算系统500可以是诸如图1和图2中所示的超自动化系统的一部分。计算系统500包括用于传送信息的总线505或其他通信机制,以及耦合到总线505用于处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例和/或其任意组合。(多个)处理器510还可以具有多个处理核,并且这些核中的至少一些可以被配置为执行特定功能。在一些实施例中可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一个可以是包括模拟生物神经元的处理元件的神经形态电路。在一些实施例中,神经形态电路可以不需要冯诺依曼计算架构的典型组件。

计算系统500还包括存储器515,用于存储要由(多个)处理器510执行的信息和指令。存储器515可以包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、高速缓存、诸如磁盘或光盘的静态存储的任意组合,或任何其他类型的非瞬态计算机可读介质或其组合。非瞬态计算机可读介质可以是可由(多个)处理器510访问的任何可用介质,并且可以包括易失性介质、非易失性介质或者两者。介质也可以是可移除的、不可移除的,或者两者。

计算系统500包括通信设备520,诸如收发机,以经由无线和/或有线连接提供对通信网络的访问。在一些实施例中,在不偏离本发明的范围的情况下,通信设备520可以包括一个或多个天线,这些天线是单天线、阵列天线、相控天线、开关天线、波束成形天线、波束定向天线、其组合和/或任何其他天线配置。(多个)处理器510还经由总线505耦合到显示器525。在不偏离本发明的范围的情况下,可以使用任何适合的显示设备和触觉I/O。

键盘530和光标控制设备535(诸如计算机鼠标、触摸板等)还耦合到总线505,以使得用户能够与计算系统500交互。然而,在某些实施例中,物理键盘和鼠标可以不存在,并且用户可以仅通过显示器525和/或触摸板(未示出)与设备交互。可以根据设计选择使用任何类型和组合的输入设备。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与其通信的另一计算系统远程地与计算系统500交互,或者计算系统500可以自主操作。

存储器515存储当由(多个)处理器510执行时提供功能的软件模块。这些模块包括用于计算系统500的操作系统540。这些模块还包括自动数据传输模块545,其被配置为执行这里描述的全部或部分过程或其衍生产品。计算系统500可以包括一个或多个附加功能模块550,其包括附加功能。

本领域技术人员将理解,在不偏离本发明的范围的情况下,“计算系统”可以实施为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、量子计算系统或任何其他适合的计算设备、或设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例中的一个示例。实际上,这里公开的方法、系统和装置可以按照与计算技术(包括云计算系统)一致的本地化和分布式形式来实现。计算系统可以是局域网(LAN)、移动通信网络、卫星通信网络、互联网、公共或私有云、混合云、服务器场、它们的任意组合等的一部分,或者可以以其他方式有其访问。在不偏离本发明的范围的情况下,可以使用任何本地化或分布式架构。

应当注意,本说明书中描述的一些系统特征已经作为模块而被呈现,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,该硬件电路包括定制的超大规模集成电路(VLSI)电路或门阵列,诸如逻辑芯片的现成半导体,晶体管或其他分立组件。模块还可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等的可编程硬件设备中实现。

模块还可以至少部分地以软件实现,以用于各种类型的处理器执行。所标识的可执行代码单元可以例如包括计算机指令的一个或多个物理或逻辑块,它们例如可以被组织为对象、过程或功能。然而,标识的模块的可执行文件不需要在物理上位于一起,但可以包括存储在不同位置的不同指令,它们当在逻辑上结合在一起时包括该模块并实现该模块的所陈述的目的。此外,模块可以存储在计算机可读介质上,在不偏离本发明的范围的情况下,该计算机可读介质可以是例如,硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他这样的非瞬态计算机可读介质。

实际上,可执行代码模块可以是单个指令或许多指令,并且甚至可以分布在若干不同的代码段上、不同的程序之间以及跨越若干存储器设备。类似地,操作数据在此可以在模块内标识和图示,并且可以以任何适合的形式实现并且在任何适合类型的数据结构内组织。操作数据可以被收集为单个数据集,或者可以分布在不同位置上,包括不同存储设备上,并且可以至少部分地仅作为系统或网络上的电子信号而存在。

在不偏离本发明的范围的情况下,可以训练和部署各种类型的AI/ML模型。例如,图6A示出了根据本发明实施例的已经被训练为识别图像中的图形元素的神经网络600的示例。这里,神经网络600接收1920×1080屏幕的屏幕截图图像的像素作为输入层的输入“神经元”1到I的输入。在这种情况下,I是2,073,600,这是截图图像中的总像素数。

神经网络600还包括多个隐藏层。DLNN和浅层学习神经网络(SLNN)两者通常都有多个层,尽管在某些情况下SLNN可能只有一个或两个层,并且正常比DLNN少。通常,神经网络架构包括输入层、多个中间层和输出层,如神经网络600中的情况一样。

DLNN常常有许多层(例如,10、50、200等),并且后续层通常重用前一层中的特征来计算更复杂、更一般的功能。另一方面,SLNN往往只有几个层,并且训练相对较快,因为专家特征是预先从原始数据样本创建的。然而,特征提取是费力的。另一方面,DLNN通常不需要专家特征,但往往花费更长时间进行训练并且具有更多的层。

对于这两种方法,各层同时在训练集上进行训练,正常在孤立的交叉验证集上检查过拟合。这两种技术都可以产生极好的结果,而且人们对这两种方法都相当热情。各个层的最佳大小、形状和数量取决于相应神经网络所解决的问题。

返回图6A,提供作为输入层的像素被馈送到隐藏层1的J个神经元作为输入。虽然在这种情况下所有像素被馈送到每个神经元,但是不偏离本发明的范围的情况下,可以单独或组合使用各种架构,包括但不限于,前馈网络、径向基网络、深度前馈网络、深卷积逆图形网络、卷积神经网络、递归神经网络、人工神经网络、长期/短期记忆网络、门控递归单元网络、生成对抗网络、液体状态机,回声状态网络、马尔可夫链、Hopfield网络、Boltzmann机器、受限Boltzmann机器、深度残差网络、Kohonen网络、深度信念网络、深度卷积网络、支持向量机、神经图灵机或任何其他适合类型或组合的神经网络。

隐藏层2接收来自隐藏层1的输入,隐藏层3接收来自隐藏层2的输入,依此类推,直到最后一个隐藏层提供其输出作为输出层的输入。应当注意,神经元的数目I、J、K和L不必相等,因此,在不偏离本发明的范围的情况下,任何期望的层的数目可以被用于给定层的神经网络600。事实上,在某些实施例中,给定层中的神经元类型可以不都是相同的。

神经网络600被训练为向相信已经在图像中找到的图形元素分配置信度得分。在一些实施例中,为了减少具有不可接受的低可能性的匹配,可以仅提供具有达到或超过置信度阈值的置信度得分的那些结果。例如,如果置信度阈值是80%,则可以使用置信度得分超过该数目的输出,并且剩余的可以忽略。在这种情况下,输出层指示找到了两个文本字段、一个文本标签和一个提交按钮。神经网络600可以在不偏离本发明的范围的情况下提供这些元素的位置、维度、图像和/或置信度得分,其可以随后由RPA机器人或将该输出用于给定目的的另一过程使用。

应当注意,神经网络是通常具有置信度得分的概率构造。这可以是AI/ML模型基于在训练期间正确标识相似输入的频率而学习的得分。例如,文本字段常常具有矩形和白色背景。神经网络可以学习以高置信度标识具有这些特征的图形元素。一些常见类型的置信度得分包括介于0和1之间的十进制数(其可以被解释为置信度百分比)、介于负∞和正∞之间的数字或一组表达式(例如,“低”、“中”和“高”)。还可以采用各种后处理校准技术来尝试获得更准确的置信度得分,诸如温度缩放、批次归一化、权重衰减、负对数似然(NLL)等。

神经网络中的“神经元”是通常基于生物神经元功能的数学函数。神经元接收加权输入,并具有求和和激活函数,该函数控制它们是否将输出传递到下一层。该激活函数可以是非线性阈值活动函数,其中如果该值低于阈值则不发生任何事情,但是随后该函数在阈值之上线性响应(即,校正线性单元(ReLU)非线性)。求和函数和ReLU函数用于深度学习,因为真实神经元可以具有近似相似的活动函数。经由线性变换,信息可以被减去、相加等。本质上,神经元充当门控函数,将输出传递给下一层,由其底层数学函数控制。在一些实施例中,可以对至少一些神经元使用不同的功能。

图6B中示出了神经元610的示例。来自前一层的输入x

将该和与激活函数f(x)进行比较,以确定神经元是否“激发”。例如,可以通过以下方式给出f(x):

因此,神经元710的输出y可以通过以下方式给出:

在这种情况下,神经元610是单层感知器。然而,在不偏离本发明的范围的情况下,可以使用任何适合的神经元类型或神经元类型的组合。还应当注意,在不偏离本发明的范围的情况下,在一些实施例中,激活函数的权重值和/或(多个)输出值的范围可以不同。

常常采用目标或“奖励函数”,诸如在这种情况下为成功标识图像中的图形元素。奖励函数探索具有短期和长期奖励的中间过渡和步骤,以指导状态空间的搜索并尝试实现目标(例如,成功标识图形元素、成功标识RPA工作流的下一活动序列等)。

在训练期间,通过神经网络600馈送各种标签数据(在这种情况下是图像)。成功标识加强神经元输入的权重,而不成功标识则削弱它们。可以使用诸如均方误差(MSE)或梯度下降的成本函数,对稍微错误的预测的惩罚远远小于非常错误的预测。如果AI/ML模型的性能在一定数目的训练迭代之后没有改善,则数据科学家可以修改奖励函数、提供未标识的图形元素在哪里的指示、提供错误标识的图形元素的校正等。

反向传播是一种用于优化前馈神经网络中的突触权重的技术。反向传播可用于在神经网络的隐藏层上“揭开盖子(pop the hood)”,以查看每个节点要对多少损失负责,并且随后以这样一种方式更新权重,即通过给予具有较高误差率的节点较低的权重来最小化损失,反之亦然。换言之,反向传播允许数据科学家反复调整权重,以最小化实际输出和期望输出之间的差异。

反向传播算法建立在最优化理论的数学基础上。在有监督学习中,具有已知输出的训练数据传递通过神经网络,并利用损失函数从已知目标输出计算误差,从而给出误差用于反向传播。在输出端计算误差,并将此误差转换为网络权重的校正,从而将误差降至最低。

在有监督学习的情况下,下面提供反向传播的示例。列向量输入x通过网络的每一层i=1,...,N之间的一系列N个非线性活动函数来处理,在给定层的输出首先乘以突触矩阵W

网络输出o,由以下方式给出

o=f

在一些实施例中,将o与目标输出t进行比较,产生误差

可以使用梯度下降过程形式的优化来通过修改每层的突触权重W

权重更新可以经由以下公式来计算:

其中o表示Hadamard乘积(即,两个向量的元素乘积),

AI/ML模型可以在多个历元上进行训练,直到其达到良好的准确度水平(例如,使用F2或F4检测阈值和大约2000个历元的准确率为97%或更好)。在一些实施例中,在不偏离本发明的范围的情况下,可以使用F1得分、F2得分、F4得分或任何其他适合的技术来确定该准确度水平。一旦在训练数据上进行训练,就可以在AI/ML模型以前从未遇到过的一组评估数据上测试AI/ML模型。这有助于确保AI/ML模型不会“过拟合”,使得它可以很好地标识训练数据中的图形元素,但不能很好地泛化到其他图像。

在一些实施例中,可能不知道AI/ML模型可能达到什么准确度水平。因此,如果在分析评估数据时AI/ML模型的准确度开始下降(即,模型在训练数据上表现良好,但开始在评估数据上表现较差),则AI/ML模型可能在训练数据(和/或新训练数据)上经历更多训练历元。在一些实施例中,仅当准确度达到特定水平或者如果训练的AI/ML模型的准确度优于现有部署的AI/ML模型时,才部署AI/ML模型。

在某些实施例中,可以使用经训练的AI/ML模型的集合来完成任务,诸如针对每种类型的感兴趣的图形元素采用AI/ML模型、采用AI/ML模型来执行OCR、部署又一AI/ML模型以识别图形元素之间的接近关系、采用又一AI/ML模型以基于来自其他AI/ML模型的输出来生成RPA工作流等。例如,这可以共同地允许AI/ML模型实现语义自动化。

一些实施例可以使用诸如SentenceTransformers

图7是示出了根据本发明实施例的用于训练(多个)AI/ML模型的过程700的流程图。在710处,该过程开始,提供训练数据,例如图7所示的标签数据,诸如标签屏幕(例如,具有所标识的图形元素和文本)、词和短语、词和短语之间的语义关联的“同义词库”,使得可以标识给定词或短语的相似词和短语等。所提供的训练数据的性质将取决于AI/ML模型意图实现的目标。然后在720处,在多个历元上训练AI/ML模型,并且在730处检查结果。

如果在740处AI/ML模型未能达到期望的置信度阈值,则在750处补充训练数据和/或修改奖励函数以帮助AI/ML模型更好地实现其目标,并且该过程返回到步骤720。如果在740处AI/ML模型满足置信度阈值,则在760处在评估数据上测试AI/ML模型,以确保AI/ML模型泛化得较好,并且AI/ML模型不会相对于训练数据过拟合。评估数据可以包括AI/ML模型以前没有处理过的屏幕、源数据等。如果在770处针对评估数据满足置信度阈值,则在780处部署AI/ML模型。如果不满足,则过程返回到步骤750,并且进一步训练AI/ML模型。

一些实施例将语义自动化引入自动化平台,用于创建具有较少或最少来自开发人员的交互输入的全自动工作流。使用语义映射,使用一个或多个AI/ML模型在语义上将来自数据源/源屏幕的UI字段映射到目标屏幕上的UI字段,并且可以从该语义映射创建全自动工作流,而无需开发人员干预。在当前的原型中,可以实现高达80%的UI字段映射,在开发人员的帮助下,可以映射剩余的约20%。可以对(多个)AI/ML模型进行重新训练,以学习随着时间的推移更准确地匹配UI字段,期望将来映射接近100%的准确度。

在一些实施例中,RPA设计器应用包括允许RPA开发人员在两个屏幕之间或数据(例如,客户数据)与屏幕之间执行匹配的语义匹配特征。在选择语义AI功能后,RPA设计器应用可以显示匹配界面,诸如图8A-图8D的匹配界面800。虽然这是一般示例,但是对于由本发明的实施例提供的语义AI存在许多用例,诸如将发票映射到

匹配界面800包括映射选项窗格810和映射窗格820。当开发人员(包括很少或没有编程经验的公民开发人员)决定选择(多个)源822或选择目标824时,用户可以分别选择数据的源和源数据将被复制到的目标。可以使用多个源,并且可以存储来自它们的数据(例如,在单个数据存储对象中收集)以与目标匹配。然后,该源信息被用于填充目标。在该实施例中,选择(多个)源按钮822以允许用户指定多个源。可以通过捕获用户的源选择来学习这些源,并且该应用的未来复制和粘贴操作可以自动采用这些源,或者将该技术作为选项提供给用户。

在一些实施例中,用户可以经由选择(多个)源按钮822来选择系统剪贴板作为源。在一些实施例中,当用户向系统剪贴板添加信息时(例如,当用户按下CTRL+C并复制Microsoft

在一些实施例中,当用户选择选择源822或选择目标824时,示出类型选择界面860。在图8B中,在用户选择了选择源822之后,类型选择界面860提供列出由RPA设计器应用识别和支持的各种类型的下拉菜单862。然后,如果多个类型中的一个类型与源或目标有关,则用户可以点击确认按钮864以确认类型。根据此选择,RPA设计器应用可能能够更确信地确定源和/或目标中有什么标签和字段。

一旦被选择,如果它们具有可视界面,则示出源屏幕840和目标屏幕850。参见图8C。然而,在一些实施例中,可以跳过该步骤,或者可能不向用户提供这些屏幕的显示。

当用户按下“语义CP”按钮812以执行语义复制和粘贴时,调用语义匹配AI/ML模型以将源标签和值与目标标签和字段进行匹配。然后,匹配字段的值将自动从源复制到目标。参见图8D。然而,在这种情况下,源中的“发票号”没有映射到目标中的“Inv.Num”,并且具有置信度得分0。因此,源中不匹配的字段842被突出显示842。然后,开发人员可以手动映射源和目标中匹配的标签/字段,并且该映射可以被保存以用于语义匹配AI/ML模型的重新训练。例如,可以将源屏幕和目标屏幕与边界框信息(例如,坐标)以及与源屏幕840和目标屏幕850中的匹配字段相关联的标签的坐标和文本一起保存。

源屏幕和目标屏幕中的标签之间的关系可以被用于确定给定文本字段要表示什么,尽管文本字段可以彼此相似或相同。这可以通过将一个或多个锚点分配给给定文本字段来实现。例如,由于字段“城市(City)”在目标屏幕850中直接出现在其相关联的文本字段的左侧,并且没有其他文本字段包括该标签,因此设计器应用和/或(多个)语义匹配AI/ML模型可以确定这些字段被链接,并且将城市标签分配为目标文本字段的锚点。如果标签不唯一地标识文本字段,则可以将一个或多个其他图形元素指定为锚点,并且可以使用它们的几何关系来唯一地标识给定的目标元素。例如,参见美国专利号10,936,351和11,200,073。

在源屏幕或源数据和目标屏幕已经被映射之后,用户可以点击创建按钮834以在RPA工作流中自动生成实现所需映射的一个或多个活动。这将引起自动创建RPA工作流活动。在一些实施例中,在创建之后立即执行RPA工作流以执行用户所需的映射任务。

为了自动创建RPA工作流,设计器应用可以利用UI对象存储库。例如参见美国专利申请公开号2022/0012024。UI对象存储库(例如,UiPath对象存储库

这样的示例在图9中被示出,图9示出了根据本发明实施例的在RPA工作流910中具有自动生成的活动的RPA设计器应用900。(多个)语义匹配AI/ML模型已经被训练为识别源屏幕或源数据与目标屏幕之间的关联,如上所述。在图8A-图8C和图9的示例的情况下,(多个)语义匹配AI/ML模型能够确定来自源屏幕或源数据中的字段的数据应当被复制到目标屏幕中的匹配字段中。因此,RPA设计器应用900知道从UI对象存储库获取目标元素的UI描述符,将点击目标屏幕的活动添加到RPA工作流910,点击每个目标字段,并使用这些UI描述符将来自源屏幕或数据源的文本输入到目标屏幕中的相应匹配字段中。RPA设计器应用900在RPA工作流910中自动生成实现该功能的一个或多个活动。在一些实施例中,可以不允许开发人员修改这些活动。然而,在某些实施例中,开发人员可以能够修改活动的配置,具有编辑活动的完全许可等。在一些实施例中,RPA设计器应用自动生成实现RPA工作流的RPA机器人,并执行RPA机器人,因此来自源屏幕或源数据的信息在没有来自开发人员的进一步指示的情况下被自动复制到目标屏幕。

一些实施例提供语义复制和粘贴特征,该特征允许没有实质性编程经验的用户在运行时执行语义自动化。图10A示出了根据本发明实施例的语义复制和粘贴界面1000。在一些实施例中,语义复制和粘贴界面1000是RPA机器人执行的自动化的一部分。语义复制和粘贴界面1000包括复制和粘贴按钮1010和关闭按钮1030。使用语义复制和粘贴界面1000,用户可以执行从源到目标的复制和粘贴。在不偏离本发明范围的情况下,源和/或目标可以是文件、应用接口或能够存储数据的任何其他适当的载体,并且源和目标的类型可以彼此不同。

在点击复制和粘贴按钮1010后,应用(例如,执行自动化的RPA机器人)要求用户经由源选择界面1012指示他或她想要作为源从其复制数据的应用或文件。参见图10B。在一些实施例中,当用户指示源选择界面1012的源按钮1014时,屏幕上指示功能被使能(例如,与UiPath工作室

在指示源(即,在该示例中为发票1013)之后,语义自动化逻辑(即,(多个)语义匹配AI/ML模型)可以使用分类算法来预测源类型,并且数据提取接口1012在下拉菜单1016中显示其对源类型的预测。参见图10C。然而,在一些实施例中,可以不提示用户确认和/或选择源类型。用户可以使用确认按钮1017或从下拉菜单1016中选择另一类型来确认预测。参见图10D。

在选择源之后,应用要求用户指示他或她想要将数据复制到的应用。参见图10E。然而,在一些实施例中,可以首先选择目标和/或源和目标的选择顺序并不重要。在该实施例中,当用户点击指示目标选择界面1022的目标按钮1024时,屏幕上指示功能被使能。然后,用户可以选择网络发票处理页面1023以作为目标。

在将网络发票处理页面1023指示为目标之后,语义自动化逻辑可以使用分类算法来预测目标类型,并且目标选择界面1022在下拉菜单1026中显示其对目标类型的预测。参见图10F。用户可以使用确认按钮1027确认预测或从下拉菜单1026中选择另一类型。参见图10G。在用户确认之后,应用使用所提取的数据自动填充网络浏览器1023。参见图10H。

图11是示出了根据本发明实施例的用于执行语义AI的AI/ML模型的架构1100的架构图。CV模型1110执行计算机视觉功能以标识屏幕中的图形元素,而OCR模型1120执行(多个)屏幕的文本检测和识别。在既使用源屏幕又使用目标屏幕的实施例中,CV模型1110和OCR模型1120在两个屏幕上执行CV和OCR功能。

然后,CV模型1110和OCR模型1120将目标屏幕或目标和源屏幕中检测到的图形元素和文本的类型、位置、大小、文本等提供给标签匹配模型1130,标签匹配模型1130将来自OCR模型1120的标签与来自CV模型1110的图形元素相匹配。然后将来自(多个)屏幕的匹配标签和相关联的图形元素传递到输入数据匹配模型1140,输入数据匹配模型1140将来自源的输入数据与目标中的标签进行匹配。然后提供匹配和各自的置信度作为来自输入数据匹配模型1140的输出。在一些实施例中,多个AI/ML模型可以被用于以不同方式执行匹配的输入数据匹配(例如,它们具有不同的神经网络架构、采用不同的策略、已经在不同的训练数据上进行训练等)。

在一些实施例中,(多个)AI/ML模型可以获知具有相同标签的字段可以具有不同的上下文。例如,屏幕的帐单信息部分和运输信息部分两者都可以具有“地址”标签,但是AI/ML模型可以获知一个附近的元素模式与另一附近的元素模式不同。然后,屏幕的这些部分可以用作多锚点技术中的锚点,其中文本字段是目标,并且“地址”标签和具有所识别模式的部分是锚点。例如,参见美国专利号10,936,351和11,200,073。

图12是示出了根据本发明实施例的在设计时使用RPA的语义AI在源与目标之间执行自动数据传输的过程1200的流程图。在1205处,该过程开始,接收对源的选择,并在1210接收对目标的选择。然后,在1215处,调用一个或多个AI/ML模型,该一个或多个AI/ML模型已经被训练为在源与目标之间执行语义匹配和数据传输。在一些实施例中,通过提供具有词和短语之间的语义关联的词和短语,使得可以标识给定词或短语的相似词和短语,以及提供上下文标签,来训练一个或多个AI/ML模型。在一些实施例中,一个或多个AI/ML模型包括CV模型、OCR模型、标签匹配模型和输入数据匹配模型,其中标签匹配模型将由OCR模型检测到的标签与由CV模型检测到的字段进行匹配,并且输入数据模型从标签匹配模型接收匹配标签,并且在语义上将来自源或来自与来自源的标签相关联的字段的数据元素,与目标上与语义匹配的标签相关联的字段相匹配。

在1220处,接收目标中与语义匹配标签相关联的值或位置的指示(例如,位置、坐标、类型等)以及来自一个或多个AI/ML模型的相应置信度得分。在1225处,在匹配界面中的源和/或目标上显示与语义匹配标签、单独的置信度得分和全局置信度得分相关联的值或位置。例如,可以显示目标屏幕,并且可以突出显示匹配元素或以其他方式使匹配元素对开发人员明显。在一些实施例中,在源屏幕或源数据与目标屏幕中的匹配字段之间绘制连接。在某些实施例中,源屏幕或源数据中未找到匹配的元素被突出显示或以其他方式指示给开发人员。

在1230处,接收对目标屏幕中的由一个或多个AI/ML模型标识为具有相关联的语义匹配标签的值或位置的(多个)校正,对目标屏幕中未被一个或多个AI/ML模型语义匹配到源中的标签的新元素的指示,或者两者。在1235处,直接(即,直接存储在计算系统存储器中)或间接(即,发送到外部系统用于存储)收集和存储与目标中的校正的和/或新标记的值或位置以及相关联的标签有关的信息。如果开发人员提供了这样的校正,则执行步骤1230和1235。

在1240处,自动生成将语义匹配数据从源复制到目标的RPA工作流中的一个或多个活动。在一些实施例中,一个或多个活动的自动生成包括确定复制和粘贴任务的开始(例如,复制操作)、确定复制和粘贴任务的结束(例如,粘贴操作)、确定其间的操作(如果有的话)以及针对这些操作生成相关联的活动。在1245处,生成并部署在RPA工作流中实现一个或多个所生成活动的RPA自动化。

在1250处,在运行时,RPA机器人运行自动化以访问其尝试标识的图形元素的UI描述符,以根据UI对象存储库中的RPA工作流执行自动化,并尝试使用这些UI描述符来标识目标中的图形元素。如果在1255处可以标识所有目标图形元素,则在1260处将信息从源复制到目标。然而,如果在1255找不到所有图形元素,则在1265,RPA机器人调用(多个)AI/ML模型以尝试标识丢失的(多个)图形元素,并更新这些相应图形元素的UI描述符。例如,RPA机器人可以使用(多个)AI/ML模型提供的描述符信息来更新UI对象存储库中缺失元素的相应UI描述符,以便其他RPA机器人将来不会遇到同样的问题。从这个意义上说,这个系统是自我修复的。

图13是示出了根据本发明实施例的在运行时使用用于RPA的语义AI在源和目标之间执行自动数据传输的过程1300的流程图。在1305处,该过程开始,提供语义复制和粘贴界面。在1310处,标识源。在1315处,使用分类算法预测源类型。在一些实施例中,在1320处,语义复制和粘贴应用等待接收用户对预测的确认或对预测的改变。

在1325处,目标应用的指示被接收。在1330处,使用分类算法预测目标的类型。在一些实施例中,在1335处,语义复制和粘贴应用等待接收用户对预测的确认或对预测的改变。

在一些实施例中,在1340处,在复制和粘贴功能中在每次数据输入之前提示用户。例如,在输入给定数据项(例如,一行数据、单个图形元素等)之前,用户可以看到要输入的数据出现在目标中。然后,用户可以预览和批准该输入或拒绝。然后,在1345处,来自源的数据被输入到目标中。

在一些实施例中,可能需要跨多个屏幕和/或屏幕版本的数据的持久性。例如,应用的帐户创建过程可以包括具有各种字段的多个屏幕,其中一些可能是重复的。附加地或备选地,屏幕的一些标签/字段可能直到采取某种动作(例如,选择单选按钮、点击复选框、完成较早的输入等)才会出现。

来自用户剪贴板和/或先前屏幕输入的元数据可以存储在持久数据结构中,该持久数据结构随着信息的每个屏幕的完成而持续和增长。根据来自训练的准确度,如果超过置信度阈值(例如,70%、90%、99%等),则标签的值(例如,一些实施例中的数字、字母数字值或字符的字符串、货币值、图像等)可以自动添加到相关联的字段。然而,如果对于标签不满足该置信度阈值(即,自动完成阈值),则可以向用户呈现高于第二较低建议阈值(例如,40%、60%、75%等)的选项。当用户点击该字段、将鼠标悬停在该字段上等时,可以提供这些选项。然后,用户可以从这些选项中选择值或添加不同的值。然后将该值添加到该标签的持久数据结构中。

随着信息被添加到屏幕并且持久数据结构增长,语义关联和建议可以变得更准确。此外,正在完成的文档、应用、(多个)网页等的分类变得更准确或可能,如果以前在数据输入之前不可能的话。以这种方式,语义特征可以逐步改进。在某些实施例中,来自先前数据输入会话的(多个)持久数据结构可以被用以使语义逻辑更准确和/或为将来的完成提供模板。数据结构可以包括标签到值的关联,以及可能包括标签/值对到(多个)屏幕的关联,这可以协助模板功能。

图14是示出了根据本发明实施例的在设计时使用RPA的语义AI在源与目标之间执行自动持久、多屏幕数据传输的过程1400的流程图。在1405处,该过程开始,接收对源的选择,并在1410接收对目标的选择。然后,在1415处,调用一个或多个AI/ML模型,该一个或多个AI/ML模型已经被训练为在源与目标之间执行语义匹配和数据传输。在一些实施例中,通过提供具有词和短语之间的语义关联的词和短语,使得可以标识给定词或短语的相似词和短语,以及提供上下文标签,来训练一个或多个AI/ML模型。在一些实施例中,一个或多个AI/ML模型包括CV模型、OCR模型、标签匹配模型和输入数据匹配模型,其中标签匹配模型将由OCR模型检测到的标签与由CV模型检测到的字段进行匹配,并且输入数据模型从标签匹配模型接收匹配标签,并且在语义上将来自源或来自与来自源的标签相关联的字段的数据元素,与目标上与语义匹配的标签相关联的字段相匹配。

在1420处,接收目标中与语义匹配标签相关联的值或位置的指示(例如,位置、坐标、类型等)以及来自一个或多个AI/ML模型的相应置信度得分。在1425处,在匹配界面中的源和/或目标上显示与语义匹配标签、单独的置信度得分和全局置信度得分相关联的值或位置。例如,可以显示目标屏幕,并且可以突出显示匹配元素或以其他方式使匹配元素对开发人员明显。在一些实施例中,在源屏幕或源数据与目标屏幕中的匹配字段之间绘制连接。在某些实施例中,源屏幕或源数据中未找到匹配的元素被突出显示或以其他方式指示给开发人员。

在1430处,接收对目标屏幕中的由一个或多个AI/ML模型标识为具有相关联的语义匹配标签的值或位置的(多个)校正,对目标屏幕中未被一个或多个AI/ML模型语义匹配到源中的标签的新元素的指示,或者两者。在1435处,在包括标签/字段关联的持久数据结构中直接(即,直接存储在计算系统存储器中)或间接(即,发送到外部系统用于存储)收集和存储与目标中的校正的和/或新标记的值或位置以及相关联的标签有关的信息。如果在1440存在新屏幕和/或对当前屏幕的修改,使得字段不可见或应用阻止其完成(例如,灰显并且用户不可填充),则该过程返回到针对该屏幕的步骤1420。

在1445处,自动生成将语义匹配数据从源复制到目标的RPA工作流中的一个或多个活动。在一些实施例中,一个或多个活动的自动生成包括确定复制和粘贴任务的开始(例如,复制操作)、确定复制和粘贴任务的结束(例如,粘贴操作)、确定其间的操作(如果有的话)以及针对这些操作生成相关联的活动。在1450处,生成并部署在RPA工作流中实现一个或多个所生成活动的RPA自动化。

在1455处,在运行时,RPA机器人运行自动化以访问其尝试标识的图形元素的UI描述符,以根据UI对象存储库中的RPA工作流执行自动化,并尝试使用这些UI描述符来标识目标中的图形元素。如果在1460处可以标识所有目标图形元素,则在1465处将信息从源复制到目标。然而,如果在1460找不到所有图形元素,则在1470,RPA机器人调用(多个)AI/ML模型以尝试标识丢失的(多个)图形元素,并更新这些相应图形元素的UI描述符。例如,RPA机器人可以使用(多个)AI/ML模型提供的描述符信息来更新UI对象存储库中缺失元素的相应UI描述符,以便其他RPA机器人将来不会遇到同样的问题。从这个意义上说,该系统是自我修复的。

图15是示出了根据本发明实施例的在运行时使用RPA的语义AI在源和目标之间执行持久、多屏幕自动数据传输的过程1500的流程图。在1505处,该过程开始,提供语义复制和粘贴界面。在1510处,标识源。在1515处,使用分类算法预测源类型。在一些实施例中,在1520处,语义复制和粘贴应用等待接收用户对预测的确认或对预测的改变。

在1525处,接收目标应用的指示。在1530处,使用分类算法预测目标的类型。在一些实施例中,在1535处,语义复制和粘贴应用等待接收用户对预测的确认或对预测的改变。

在一些实施例中,在1540处,在复制和粘贴功能中的每个数据输入之前提示用户。例如,在输入给定数据项(例如,一行数据、单个图形元素等)之前,用户可以看到要输入的数据出现在目标中。然后,用户可以预览和批准该输入或拒绝。然后,在1545处,将来自源的数据输入到目标中。

在1550处,可以针对不满足第一自动完成置信度阈值但高于第二较低建议置信度阈值的标签/字段向用户呈现建议。这些建议可以至少部分地基于持久数据结构中的数据。在1555处,已经输入的标签/字段的值被存储在持久数据结构中。如果在1560存在新屏幕和/或对当前屏幕的修改,使得字段不可见或应用阻止其完成(例如,灰显并且用户不可填充),则该过程返回到针对该屏幕的步骤1545。

根据本发明的实施例,图12-图15中执行的过程步骤可以由计算机程序来执行,对用于(多个)处理器的指令进行编码以执行图12-图15中描述的(多个)过程的至少一部分。计算机程序可以包含在非瞬态计算机可读介质上。计算机可读介质可以是但不限于,硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他这样的介质或介质组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)以实现图12-图15中描述的全部或部分过程步骤的编码指令,其也可以存储在计算机可读介质上。

计算机程序可以以硬件、软件或混合实现方式实现。计算机程序可以由彼此可操作地通信的模块组成,并且这些模块被设计为将信息或指令传递给显示器。计算机程序可以被配置为在通用计算机、ASIC或任何其他适合的设备上操作。

将容易理解,本发明的各种实施例的组件,如本文的附图中一般描述和说明的,可以以各种不同的配置来布置和设计。因此,如附图所示,本发明的实施例的详细描述并不是为了限制权利要求所要求保护的本发明的范围,而只是代表本发明的选定实施例。

在一个或多个实施例中,贯穿本说明书描述的本发明的特征、结构或特性可以以任何适合的方式组合。例如,在本说明书中,通篇引用“某些实施例”、“一些实施例”或类似的语言意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书中出现短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言不一定都指同一组实施例,并且在一个或多个实施例中可以以任何适合的方式组合所描述的特征、结构或特性。

应当注意,贯穿本说明书提及特征、优点或类似语言并不意味着可以用本发明实现的所有特征和优点都应在或在本发明的任何单个实施例中。相反,提及特征和优点的语言被理解为意味着结合实施例描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书对特征和优点以及类似语言的讨论可以但不一定指相同的实施例。

此外,在一个或多个实施例中,可以以任何适合的方式组合本发明的所描述的特征、优点和特性。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定特征或优点的情况下实施本发明。在其他情况下,在某些实施例中可以认识到附加的特征和优点,这些实施例可能不存在于本发明的所有实施例中。

本领域普通技术人员将容易理解,可以用不同顺序的步骤和/或不同于所公开的那些配置的硬件元件来实施上面讨论的本发明。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域的技术人员而言显而易见的是,在保持在本发明的精神和范围内的同时,某些修改、变化和备选结构将是明显的。因此,为了确定本发明的边界和界限,应参考所附权利要求书。

相关技术
  • 用于机器人流程自动化的基于人工智能层的过程提取
  • 使用人工智能来选择和链接用于机器人流程自动化的模型
技术分类

06120115918172