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

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

Info

Publication number
CN115952966A
CN115952966A CN202211229859.0A CN202211229859A CN115952966A CN 115952966 A CN115952966 A CN 115952966A CN 202211229859 A CN202211229859 A CN 202211229859A CN 115952966 A CN115952966 A CN 115952966A
Authority
CN
China
Prior art keywords
target
source
matching
tag
models
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
CN202211229859.0A
Other languages
English (en)
Inventor
B·里帕
M·格里戈尔
C·沃伊库
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
Priority claimed from US17/494,744 external-priority patent/US12124806B2/en
Application filed by Yupas Co filed Critical Yupas Co
Publication of CN115952966A publication Critical patent/CN115952966A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • 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
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了使用用于机器人过程自动化(RPA)的语义人工智能(AI)在源和目标之间的自动数据传输。可以向用户提供选择源和目标,并且通过直观用户界面指示他或她想要将数据从源复制到目的地的选项,而不考虑格式。这可以在设计时或运行时完成。例如,源和/或目标可以是网页、应用的图形用户界面(GUI)、图像、文件资源管理器、电子表格、关系数据库、平面文件源、任何其他适当的格式或其任意组合。源和目标可以具有不同的格式。源、目标或者两者不一定对用户可见。

Description

使用用于机器人过程自动化的语义人工智能在源与目标之间 的自动数据传输
相关申请交叉引用
本申请是2021年10月5日提交的美国非临时专利申请号17/494,744的部分继续申请(CIP)。该较早提交的申请的主题通过引用整体并入本文。
技术领域
本发明总体上涉及语义匹配,并且更具体地,涉及使用用于机器人过程自动化(RPA)的语义人工智能(AI)在源与目标之间的自动数据传输。
背景技术
目前,开发人员需要使用活动,在RPA设计器应用中手动创建机器人过程自动化(RPA)工作流。在创建RPA工作流时,开发人员需要在屏幕上指示目标图形元素,这会导致RPA设计器应用自动生成与具有一组锚点的目标元素相对应的选择器。例如,尽管目前UiPath工作室TM中存在活动推荐和建议功能,但不支持完全自动化的工作流创建,也不支持从源到目标的直观数据传输。在创建RPA工作流时手动指示所有目标图形元素非常耗时。因此,改进的和/或备选的方法可以是有益的。
发明内容
本发明的某些实施例可以为本领域中尚未被当前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)时,相应模糊属性的几乎任何值都被认为是匹配的。有些允许在设计时调整相似性阈值,例如通过滑块。
尽管现有技术使用多个或很多个源示例来从源学习键-值对,但一些实施例基本上相反地操作。标签是从空目标确定的。根据上面的说明,源和目标可以具有不同的类型。例如,一个可以是网页,而另一个可以是
Figure BDA0003881017840000061
电子表格。甚至可以通过采用计算机视觉(CV)、光学字符识别(OCR)和/或文档处理框架来使用图形用户界面(GUI)的图像。例如,参见美国专利申请公开号2021/0097274,其主题通过引用整体并入本文。这种技术可用于对源和/或目标进行分类。
用户可以提供用于针对某些类型的目标建立库的培训信息。例如,可以提供“开箱即用”的能够实现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功能。
在一些实施例中,可以获取数据字段列表,诸如从
Figure BDA0003881017840000081
电子表格、关系数据库、平面文件源等。语义匹配AI/ML模型可以迭代源数据中的条目并将它们匹配到目标中的标签和对应的数据条目位置。语义匹配AI/ML模型可以被训练为这样做,而不考虑数据源的类型。由于该AI/ML模型的语义匹配功能,可以不需要1对1匹配。例如,自然语言模型可以寻求将目标屏幕中相同或相似的名称/短语与源数据中的名称/短语相匹配(或者以源数据开始并在目标屏幕中找到相似的名称/短语)。在某些实施例中,广泛的训练数据集合被用于使语义匹配AI/ML模型更准确,因为对于某些术语可能存在许多相似的词或短语,并且也可能存在取决于上下文的许多不同子集。在一些实施例中,还可以使用上下文。例如,语义匹配AI/ML模型可以了解到给定目标与银行细节与发票,与采购订单,与联系信息等有关。
一些实施例的语义匹配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模型提议的匹配,则可以保存关于该匹配的信息。该信息可以包括但不限于目标应用的屏幕截图、目标应用中的标签和源屏幕或源数据中的对应的标签、不正确匹配的标签等。还可以捕捉上下文,诸如针对网页、
Figure BDA0003881017840000101
等发生的校正。该数据可以与以这种方式收集的其他标签数据结合使用,以重新训练语义匹配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助手TM)。无人值守机器人独立于用户工作,并且可以在后台运行,可能不需要用户知道。测试机器人是无人值守机器人,其针对应用或RPA工作流运行测试用例。在一些实施例中,测试机器人可以在多个计算系统上并行运行。
发现功能可以针对业务过程自动化的不同机会发现并提供自动推荐。这样的功能可以由诸如服务器130的一个或多个服务器实现。在一些实施例中,发现功能可以包括提供自动化枢纽、过程挖掘、任务挖掘和/或任务捕获。自动化枢纽(例如,UiPath自动化枢纽TM)可以提供具有可见性和控制的用于管理自动化铺设的机制。例如,自动化想法可以经由提交表单从员工那里众包。可以提供用于自动化这些想法的可行性和投资回报(ROI)计算,可以收集用于未来自动化的文档,并且可以提供协作以从自动化发现到更快地扩展。
过程挖掘(例如,经由UiPath自动化云TM和/或UiPath AI中心TM)指的是从应用(例如,企业资源规划(ERP)应用、客户关系管理(CRM)应用、电子邮件应用、呼叫中心应用等)收集和分析数据,以标识组织中存在哪些端到端过程以及如何有效地将其自动化,并指示自动化的影响将是什么的过程。该数据可以例如由监听器从用户计算系统102、104、106收集,并由诸如服务器130的服务器处理。在一些实施例中,一个或多个AI/ML模型132可被部署以用于此目的。可以将该信息导出到自动化枢纽,以加快实现并避免手动信息传输。过程挖掘的目标可以是通过自动化组织内的过程来增加业务价值。过程挖掘目标的一些示例包括但不限于,增加利润、提高客户满意度、法规和/或合同合规性、提高员工效率等。
任务挖掘(例如,经由UiPath自动化云TM和/或UiPath AI中心TM)标识并聚集工作流(例如,员工工作流),然后应用AI来揭示日常任务中的模式和变型,针对易于自动化和潜在的节省(例如,时间和/或成本节省)对这样的任务进行评分。可以采用一个或多个AI/ML模型132来揭示数据中的重现任务模式。然后可以标识适合自动化的重复性任务。在一些实施例中,该信息最初可以由监听器提供,并在诸如服务器130的核心超自动化系统120的服务器上进行分析。来自任务挖掘的发现(例如,可扩展应用标记语言(XAML)过程数据)可以被导出到过程文档或诸如UiPath工作室TM的设计器应用,以更快地创建和部署自动化。
在一些实施例中,任务挖掘可以包括利用用户动作(例如,用户正在与之交互的鼠标点击位置、键盘输入、应用窗口和图形元素、交互的时间戳等)进行屏幕截图、收集统计数据(例如,执行时间、动作数量、文本条目等)、编辑和注释屏幕截图、指定要记录的动作的类型等。
任务捕获(例如,UiPath自动化云TM和/或UiPath AI中心TM)在用户工作时自动归档有人值守过程或提供无人值守过程的框架。这样的归档可以包括以过程定义文档(PDDS)、框架工作流、捕获过程的每个部分的动作、记录用户动作并自动生成包括关于每个步骤的细节的综合工作流图、Microsoft
Figure BDA0003881017840000151
文档、XAML文件等形式自动化的期望任务。在一些实施例中,可以直接将构建就绪工作流导出到设计器应用,诸如UiPath工作室TM。任务捕获可以针对解释过程的主题专家和提供生产级自动化的卓越中心(CoE)成员简化需求收集流程。
构建自动化可以经由设计器应用(例如,UiPath工作室TM、UiPath工作室XTM或UiPath WebTM)来完成。例如,RPA开发设施150的RPA开发人员可以使用计算系统152的RPA设计器应用154来构建和测试针对诸如网络、移动、
Figure BDA0003881017840000152
和虚拟桌面的各种应用和环境的自动化。可以针对各种应用、技术和平台提供API集成。预定义的活动、拖放建模和工作流记录器可以通过最少编码使自动化更容易。文档理解功能可以经由用于调用一个或多个AI/ML模型132的数据提取和解释的拖放AI技能来提供。这种自动化实际上可以处理任何文档类型和格式,包括表格、复选框、签名和手写。在验证数据或处理异常时,此信息可用于重新训练相应的AI/ML模型,从而随着时间的推移提高其准确度。
例如,集成服务可以允许开发人员无缝地将用户界面(UI)自动化与API自动化相结合。可以构建需要API或遍历API和非API应用和系统的自动化。可以提供用于预构建RPA和AI模板和解决方案的存储库(例如,UiPath对象存储库TM)或市场(例如,UiPath市场TM),以允许开发人员更快地使各种过程自动化。因此,当构建自动化时,超自动化系统100可以提供用户界面、开发环境、API集成、预构建和/或定制构建AI/ML模型、开发模板、集成开发环境(IDE)和高级AI能力。在一些实施例中,超自动化系统100使得能够开发、部署、管理、配置、监测、调试和维护RPA机器人,这可以为超自动化系统100提供自动化。
在一些实施例中,超自动化系统100的组件,诸如(多个)设计器应用和/或外部规则引擎,提供对管理和实施管治策略的支持,用于控制由超自动化系统100提供的各种功能。管治是组织制定策略以防止用户开发能够采取可能损害组织的动作的自动化(例如,RPA机器人)的能力,诸如违反欧盟一般数据保护条例(GDPR)、美国健康保险可携带性和责任法案(HIPAA)、第三方应用服务条款等。由于开发人员在执行其自动化时可能以其他方式创建违反隐私法、服务条款等的自动化,因此一些实施例在机器人和/或机器人设计应用级别实现访问控制和管治限制。在一些实施例中,通过防止开发人员依赖可能引入安全风险或以违反策略、法规、隐私法和/或隐私政策的方式工作的未经批准的软件库,这可以向自动化过程开发流水线提供附加的安全和遵从性级别。例如,参见美国非临时专利申请号16/924,499(公布为美国专利申请公开号2022/0011732),其全部内容通过引用并入本文。
管理功能可以提供跨组织的自动化的管理、部署和优化。在一些实施例中,管理功能可以包括协调、测试管理、AI功能和/或洞察。超自动化系统100的管理功能还可以充当与用于自动化应用和/或RPA机器人的第三方解决方案和应用的集成点。超自动化系统100的管理能力可以包括但不限于,有助于RPA机器人的供应、部署、配置、排队、监测、日志记录和互连等。
指挥器应用,诸如UiPath协调器TM(在一些实施例中可以作为UiPath自动化云TM的一部分提供,或者在企业内部、在VM中、在私有云或公共云中、在LinuxTM VM中,或者经由UiPath自动化套件TM作为云本地单容器套件),提供协调能力,以部署、监视、优化、缩放和确保RPA机器人部署的安全性。测试套件(例如,UiPath测试套件TM)可以提供测试管理以监测所部署的自动化的质量。测试套件可以有助于测试规划和执行、满足需求和缺陷可追溯性。测试套件可以包括全面的测试报告。
分析软件(例如,UiPath洞察)可以追踪、测量和管理所部署的自动化的性能。分析软件可以使自动化操作与组织的特定关键绩效指标(KPI)和战略结果保持一致。分析软件可以以仪表板格式呈现结果,以便人类用户更好地理解。
例如,数据服务(例如,UiPath数据服务TM)可以存储在数据库140中,并且利用拖放存储接口将数据带到单个、可扩展、安全的地方。一些实施例可以向自动化提供低码或无码数据建模和存储,同时确保数据的无缝访问、企业级安全性和可扩展性。AI功能可以由AI中心(例如,UiPath AI中心TM)提供,其有助于将AI/ML模型合并到自动化中。预构建AI/ML模型、模型模板和各种部署选项甚至可以让那些不是数据科学家的人也可以访问这样的功能。所部署的自动化(例如,RPA机器人)可以从AI中心调用AI/ML模型,诸如AI/ML模型132。AI/ML模型的性能可以被监测,并使用诸如由数据审查中心160提供的人工验证数据来训练和改进。人工审查人员可以经由计算系统154上的审查应用152向核心超自动化系统120提供标签数据。例如,人工审查人员可以验证AI/ML模型132的预测是准确的,或者以其他方式提供校正。然后,该动态输入可以被保存为用于重新训练AI/ML模型132的训练数据,并且可以被存储在诸如数据库140的数据库中。然后,AI中心可以调度和执行训练作业,以使用训练数据训练新版本的AI/ML模型。正示例和负示例两者都可以被存储并用于AI/ML模型132的重新训练。
参与功能使人类和自动化成为一个团队,用于在所需过程上的无缝协作。可以构建低码应用(例如,经由UiPath应用TM)来连接浏览器标签和传统软件,即使在一些实施例中缺乏API。例如,可以使用网络浏览器通过丰富的拖放控件库快速创建应用。一个应用可以连接到单个自动化或多个自动化。
动作中心(例如,UiPath动作中心TM)提供了一种直接且高效的机制来将过程从自动化移交给人工,反之亦然。人类可以提供批准或升级、做出例外等。然后,自动化可以执行给定工作流的自动功能。
可以提供本地助手作为用户启动自动化的启动台(例如,UiPath助手TM)。例如,该功能可以在操作系统提供的托盘中提供,并且可以允许用户与其计算系统上的RPA机器人和RPA机器人驱动的应用交互。界面可以列出针对给定用户批准的自动化,并且允许用户运行它们。这些自动化可以包括来自自动化市场的随时可用的自动化、自动化枢纽中的内部自动化商店等。当自动化运行时,它们可以作为本地实例与计算系统上的其他过程并行运行,从而用户可以在自动化执行其动作的同时使用计算系统。在某些实施例中,助手与任务捕获功能集成,使得用户可以从助手启动台归档他们即将自动化的过程。
聊天机器人(例如,UiPath聊天机器人TM)、社交消息收发应用、和/或语音命令可以使用户能够运行自动化。这可以简化对用户与客户交互或执行其他活动所需的信息、工具和资源的访问。与其他过程一样,人与人之间的对话可能很容易自动化。以这种方式启动的触发器RPA机器人可以执行操作,诸如检查订单状态、在CRM中发布数据等,可能使用简单语言命令。
在一些实施例中,任何规模的自动化程序的端到端测量和管治可以由超自动化系统100提供。如上所述,可以采用分析来理解自动化的性能(例如,经由UiPath洞察TM)。使用可用业务度量和操作洞察的任意组合的数据建模和分析可用于各种自动化过程。定制设计的和预构建的仪表板允许跨所需度量可视化数据、发现新的分析洞察、追踪性能指标、发现针对自动化的ROI、在用户计算系统上执行遥测监测、检测错误和异常以及调试自动化。可以提供自动化管理控制台(例如,UiPath Automation OpsTM)来在整个自动化生命周期中管理自动化。组织可以管治如何构建自动化,用户可以使用它们做什么,以及用户可以访问哪些自动化。
在一些实施例中,超自动化系统100提供迭代平台。可以发现过程,可以构建、测试和部署自动化,可以测量性能,可以容易地向用户提供自动化的使用,可以获得反馈,可以训练和重新训练AI/ML模型,并且可以重复该过程本身。这有助于更鲁棒且有效的自动化套件。
图2是示出根据本发明实施例的RPA系统200的架构图。在一些实施例中,RPA系统200是图1的超自动化系统100的一部分。RPA系统200包括允许开发人员设计和实现工作流的设计器210。设计器210可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务和业务IT过程的解决方案。设计器210可以促进自动化项目的开发,其是业务过程的图形表示。简而言之,设计器210促进工作流和机器人的开发和部署。在一些实施例中,设计器210可以是在用户桌面上运行的应用、在VM中远程运行的应用、网络应用等。
自动化项目通过给予开发人员对执行顺序和在工作流中开发的一组定制步骤之间的关系(如上所述,本文中被定义为“活动”)之间的控制来实现基于规则的过程的自动化。设计器210的实施例的一个商业示例是UiPath工作室TM。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流可以是嵌套的或嵌入的。
某些类型的工作流可以包括但不限于序列、流程图、有限状态机(FSM)和/或全局异常处理程序。序列可以特别适用于线性过程,从而实现从一个活动到另一活动的流动,而不会使工作流变得杂乱无章。流程图可以特别适用于更复杂的业务逻辑,可以通过多个分支逻辑运算符以更多样化的方式集成决策和活动连接。FSM可以特别适用于大型工作流。FSM可以在其执行中使用有限数量的状态,其由条件(即,转换)或活动触发。全局异常处理程序可以特别适用于在遇到执行错误时确定工作流行为以及调试过程。
在设计器210中开发工作流后,业务过程的执行就由指挥器220来协调,指挥器220协调执行在设计器210中开发的工作流的一个或多个机器人230。指挥器220的实施例的一个商业示例是UiPath协调器TM。指挥器220促进环境中资源的创建、监测和部署的管理。指挥器220可以充当与第三方解决方案和应用的集成点。如上所述,在一些实施例中,指挥器220可以是图1的核心超自动化系统120的一部分。
指挥器220可以管理一队机器人230,从中心点连接和执行机器人230。可以管理的机器人230的类型包括但不限于,有人值守机器人232、无人值守机器人234、开发机器人(类似于无人值守机器人234,但用于开发和测试目的)和非生产机器人(类似于有人值守机器人232,但用于开发和测试目的)。有人值守机器人232由用户事件触发,并且在同一计算系统上与人工并排操作。有人值守机器人232可以与指挥器220一起用于集中式过程部署和记录介质。有人值守机器人232可以帮助人工用户完成各种任务,并且可以由用户事件触发。在一些实施例中,过程不能从这种类型的机器人上的指挥器220开始和/或它们不能在锁定屏幕下运行。在某些实施例中,只能从机器人托盘或从命令提示符启动有人值守机器人232。在一些实施例中,有人值守机器人232应当在人工监督下运行。
无人值守机器人234在虚拟环境中无人值守地运行,并且可以使许多过程自动化。无人值守机器人234可以负责远程执行、监测、调度和提供对工作队列的支持。在一些实施例中,可以在设计器210中运行对所有机器人类型的调试。有人值守和无人值守机器人都可以使各种系统和应用自动化,包括但不限于大型机、网络应用、VM、企业应用(例如,由
Figure BDA0003881017840000201
等生产的应用)和计算系统应用(例如,台式和膝上型应用、移动设备应用、可穿戴计算机应用等)。
指挥器220可以具有各种能力,包括但不限于,供应、部署、配置、队列、监测、记录和/或提供互连。供应可以包括创建和维护机器人230和指挥器220(例如,网络应用)之间的连接。部署可以包括确保将封装版本正确地递送到指定的机器人230以用于执行。配置可以包括维护和递送机器人环境和过程配置。队列可以包括提供队列和队列项目的管理。监测可以包括追踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和索引到数据库(例如,结构化查询语言(SQL)数据库或“不仅仅”SQL(NoSQL)数据库)和/或另一存储机制(例如,
Figure BDA0003881017840000211
其提供存储和快速查询大型数据集的能力)。指挥器220可以通过充当第三方解决方案和/或应用的集中式通信点来提供互连。
机器人230是实现设计器210中内置的工作流的执行代理。(多个)机器人230的一些实施例的一个商业示例是UiPath机器人TM。在一些实施例中,机器人230默认被安装Microsoft
Figure BDA0003881017840000212
服务控制管理器(SCM)管理的服务。结果,这样的机器人230可以在本地系统帐户下打开交互式
Figure BDA0003881017840000213
会话,并且具有
Figure BDA0003881017840000214
服务的权限。
在一些实施例中,机器人230可以被安装在用户模式中。对于这样的机器人230,这意味着它们具有与安装了给定机器人230的用户相同的权限。该特征也对高密度(HD)机器人可用,这确保了充分利用每台机器的最大潜力。在一些实施例中,可以在HD环境中配置任何类型的机器人230。
在一些实施例中,机器人230被拆分成若干组件,每个组件专用于特定的自动化任务。一些实施例中的机器人组件包括但不限于,SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监测
Figure BDA0003881017840000215
会话,并充当指挥器220和执行主机(即,在其上执行机器人230的计算系统)之间的代理。这些服务被信任并管理机器人230的凭证。本地系统下的SCM启动控制台应用。
在一些实施例中,用户模式机器人服务管理和监测
Figure BDA0003881017840000216
会话,并充当指挥器220和执行主机之间的代理。用户模式机器人服务可以信任并管理机器人230的凭证。如果未安装SCM管理的机器人服务,则
Figure BDA0003881017840000221
应用可以被自动启动。
执行器可以在
Figure BDA0003881017840000222
会话下运行给定的作业(即,他们可以执行工作流)。执行器可以知道每个监测器的每英寸点数(DPI)设置。代理可以是在系统托盘窗口中显示可用作业的
Figure BDA0003881017840000223
Presentation Foundation(呈现架构)(WPF)应用。代理可以是该服务的客户端。代理可以请求开始或停止作业并改变设置。命令行是服务的客户端。命令行是控制台应用,其可以请求开始作业并等待其输出。
如上所述地拆分机器人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(例如,
Figure BDA0003881017840000231
服务)是所有执行器312的单一联系点。在该实施例中,所有消息都被记录到指挥器340中,指挥器340经由数据库服务器350、AI/ML服务器360、索引器服务器370或其任意组合进一步处理它们。如上面参考图2所讨论的,执行器312可以是机器人组件。
在一些实施例中,机器人表示机器名和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行多个交互式会话的计算系统(例如,
Figure BDA0003881017840000232
Server2012)上,多个机器人可以同时运行,每个机器人使用唯一的用户名在分开的
Figure BDA0003881017840000233
会话中运行。这就是上面提到的HD机器人。
代理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使用
Figure BDA0003881017840000261
其是开源项目全文搜索引擎。由机器人记录的消息(例如,使用诸如日志消息或写线的活动)可以通过(多个)记录REST端点被发送到索引器服务器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可以促进与
Figure BDA0003881017840000281
Figure BDA0003881017840000282
等的集成。例如,“点击”活动经由驱动器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的示例。来自前一层的输入x1,x2,...,xn被分配相应的权重w1,w2,...,wn。因此,来自前一神经元1的集体输入为w1x1。这些加权输入用于通过偏差修改的神经元的求和函数,诸如:
Figure BDA0003881017840000321
将该和与激活函数f(x)进行比较,以确定神经元是否“激发”。例如,可以通过以下方式给出f(x):
Figure BDA0003881017840000331
因此,神经元710的输出y可以通过以下方式给出:
Figure BDA0003881017840000332
在这种情况下,神经元610是单层感知器。然而,在不偏离本发明的范围的情况下,可以使用任何适合的神经元类型或神经元类型的组合。还应当注意,在不偏离本发明的范围的情况下,在一些实施例中,激活函数的权重值和/或(多个)输出值的范围可以不同。
常常采用目标或“奖励函数”,诸如在这种情况下为成功标识图像中的图形元素。奖励函数探索具有短期和长期奖励的中间过渡和步骤,以指导状态空间的搜索并尝试实现目标(例如,成功标识图形元素、成功标识RPA工作流的下一活动序列等)。
在训练期间,通过神经网络600馈送各种标签数据(在这种情况下是图像)。成功标识加强神经元输入的权重,而不成功标识则削弱它们。可以使用诸如均方误差(MSE)或梯度下降的成本函数,对稍微错误的预测的惩罚远远小于非常错误的预测。如果AI/ML模型的性能在一定数目的训练迭代之后没有改善,则数据科学家可以修改奖励函数、提供未标识的图形元素在哪里的指示、提供错误标识的图形元素的校正等。
反向传播是一种用于优化前馈神经网络中的突触权重的技术。反向传播可用于在神经网络的隐藏层上“揭开盖子(pop the hood)”,以查看每个节点要对多少损失负责,并且随后以这样一种方式更新权重,即通过给予具有较高误差率的节点较低的权重来最小化损失,反之亦然。换言之,反向传播允许数据科学家反复调整权重,以最小化实际输出和期望输出之间的差异。
反向传播算法建立在最优化理论的数学基础上。在有监督学习中,具有已知输出的训练数据传递通过神经网络,并利用损失函数从已知目标输出计算误差,从而给出误差用于反向传播。在输出端计算误差,并将此误差转换为网络权重的校正,从而将误差降至最低。
在有监督学习的情况下,下面提供反向传播的示例。列向量输入x通过网络的每一层i=1,...,N之间的一系列N个非线性活动函数来处理,在给定层的输出首先乘以突触矩阵Wi,并且加上偏置向量bi
网络输出o,由以下方式给出
o=fN(WNfN-1(WN-1fN-2(...f1(W1x+b1)...)+bN-1)+bN) (4)
在一些实施例中,将o与目标输出t进行比较,产生误差
Figure BDA0003881017840000341
希望该误差最小化。
可以使用梯度下降过程形式的优化来通过修改每层的突触权重Wi来最小化误差。梯度下降过程需要在给定对应于已知目标输出t的输入x的情况下计算输出o,并产生误差o-t。然后,向后传播该全局误差,给出局部误差用于权重更新,其计算与用于前向传播的计算相似,但不完全相同。具体地,反向传播步骤通常需要形式为pj(nj)=f′j(nj)的活动函数,其中nj是层j处的网络活动(即,nj=Wjoj-1+bj),其中oj=fj(nj)并且一撇号’表示活动函数f的导数。
权重更新可以经由以下公式来计算:
Figure BDA0003881017840000342
Figure BDA0003881017840000343
Figure BDA0003881017840000344
Figure BDA0003881017840000345
Figure BDA0003881017840000346
其中o表示Hadamard乘积(即,两个向量的元素乘积),T表示矩阵转置,oj表示fj(Wjoj-1+bj)。其中o0=x。这里,根据机器学习的考虑来选择学习率η。下面,η是关于在神经实现中的使用的神经Hebbian学习机制。注意,突触W和b可以组合成一个大突触矩阵,其中假设输入向量具有附加的1,并且表示b突触的额外列包含在W中。
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模型实现语义自动化。
一些实施例可以使用诸如SentenceTransformersTM的转换器网络,该转换器网络是用于最先进的句子、文本和图像嵌入的PythonTM框架。这样的转换器网络学习具有高得分和低得分的词和短语的关联。这将训练AI/ML模型,以分别确定哪些内容接近输入,哪些内容不接近输入。转换器网络不仅可以使用词/短语对,也可以使用字段长度和字段类型。
图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存在许多用例,诸如将发票映射到
Figure BDA0003881017840000371
将数据从excel电子表格自动输入到CRM应用、将XAML从RPA工作流映射到另一RPA工作流等。此外,尽管该示例由文本字段组成,但是在不偏离本发明的范围的情况下,可以映射诸如按钮、文本区域、没有视觉显示的数据等其他图形元素。
匹配界面800包括映射选项窗格810和映射窗格820。当开发人员(包括很少或没有编程经验的公民开发人员)决定选择(多个)源822或选择目标824时,用户可以分别选择数据的源和源数据将被复制到的目标。可以使用多个源,并且可以存储来自它们的数据(例如,在单个数据存储对象中收集)以与目标匹配。然后,该源信息被用于填充目标。在该实施例中,选择(多个)源按钮822以允许用户指定多个源。可以通过捕获用户的源选择来学习这些源,并且该应用的未来复制和粘贴操作可以自动采用这些源,或者将该技术作为选项提供给用户。
在一些实施例中,用户可以经由选择(多个)源按钮822来选择系统剪贴板作为源。在一些实施例中,当用户向系统剪贴板添加信息时(例如,当用户按下CTRL+C并复制Microsoft
Figure BDA0003881017840000372
中的所选内容时),该信息可以包括用户想要输入到目标中的数据。可以通过适当的操作系统API获取此信息,诸如通过使用
Figure BDA0003881017840000373
的Clipboard.GetText()的System.Windows.Forms.dll。然后可以执行从剪贴板到目标的语义映射。如果剪贴板内容是复制的文本,诸如句子、段落等,则可以将NLP应用于此信息以获得用于与目标进行语义匹配的内容。
在一些实施例中,当用户选择选择源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对象存储库TM)是UI对象库的集合,其本身是UI描述符的集合(例如,对于应用的特定版本及其一个或多个屏幕)。类似图形元素的统一目标控件可以从指示RPA机器人如何与给定图形元素交互的UI对象存储库中获取。
这样的示例在图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工作室TM提供的功能相同或相似)。然后,用户可以选择发票1016作为源。
在指示源(即,在该示例中为发票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或任何其他适合的设备上操作。
将容易理解,本发明的各种实施例的组件,如本文的附图中一般描述和说明的,可以以各种不同的配置来布置和设计。因此,如附图所示,本发明的实施例的详细描述并不是为了限制权利要求所要求保护的本发明的范围,而只是代表本发明的选定实施例。
在一个或多个实施例中,贯穿本说明书描述的本发明的特征、结构或特性可以以任何适合的方式组合。例如,在本说明书中,通篇引用“某些实施例”、“一些实施例”或类似的语言意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书中出现短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言不一定都指同一组实施例,并且在一个或多个实施例中可以以任何适合的方式组合所描述的特征、结构或特性。
应当注意,贯穿本说明书提及特征、优点或类似语言并不意味着可以用本发明实现的所有特征和优点都应在或在本发明的任何单个实施例中。相反,提及特征和优点的语言被理解为意味着结合实施例描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书对特征和优点以及类似语言的讨论可以但不一定指相同的实施例。
此外,在一个或多个实施例中,可以以任何适合的方式组合本发明的所描述的特征、优点和特性。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定特征或优点的情况下实施本发明。在其他情况下,在某些实施例中可以认识到附加的特征和优点,这些实施例可能不存在于本发明的所有实施例中。
本领域普通技术人员将容易理解,可以用不同顺序的步骤和/或不同于所公开的那些配置的硬件元件来实施上面讨论的本发明。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域的技术人员而言显而易见的是,在保持在本发明的精神和范围内的同时,某些修改、变化和备选结构将是明显的。因此,为了确定本发明的边界和界限,应参考所附权利要求书。

Claims (38)

1.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质存储计算机程序,所述计算机程序被配置为使至少一个处理器:
接收对源的选择;
接收对目标的选择;
调用一个或多个人工智能/机器学习AI/ML模型,所述一个或多个AI/ML模型已经被训练为在所述源中的标签与所述目标中的标签之间执行语义匹配、在所述源中的值与所述目标中的所述标签之间执行语义匹配、或者两者;以及
基于所述源中的所述标签与所述目标中的所述标签之间的所述语义匹配、所述源中的所述值与所述目标中的所述标签之间的所述语义匹配、或者两者,将值从所述源复制到所述目标。
2.根据权利要求1所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:
生成机器人过程自动化RPA工作流中的一个或多个活动,所述一个或多个活动将数据从所述源中的具有如下标签的所述值复制到所述目标中的相应字段或位置中:所述一个或多个AI/ML模型将所述标签标识为语义匹配所述目标中的所述标签。
3.根据权利要求2所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:
生成在所述RPA工作流中实现所述一个或多个所生成的所述活动的自动化;以及
部署所生成的所述自动化和被配置为在运行时环境中执行所述自动化的RPA机器人。
4.根据权利要求2所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:
确定复制和粘贴任务的开始;
确定所述复制和粘贴任务的结束;以及
针对所述复制和粘贴任务的所述开始和所述结束生成相关联的活动。
5.根据权利要求1所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:
接收所述源中的与所述目标中的语义匹配的标签相关联的字段或位置的指示以及来自所述一个或多个AI/ML模型的相应置信度得分;以及
在匹配界面中显示与所述目标上的所述语义匹配的标签相关联的图形元素或位置,在所述匹配界面中显示针对由所述一个或多个AI/ML模型标识的潜在匹配字段或位置的所述相应置信度得分,或者两者。
6.根据权利要求1所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:
接收对所述目标中的由所述一个或多个AI/ML模型标识为在所述源中具有相关联的语义匹配的标签的的标签、字段或位置的校正,接收所述目标中的未被所述一个或多个AI/ML模型语义匹配到所述源中的标签的新标签、字段或位置的指示,或者两者;
收集与所述目标中的经校正的和/或新标记的所述标签、字段或位置以及所述源中的所述相关联的标签有关的信息;以及
直接地或间接地存储所收集的所述信息以用于对所述一个或多个AI/ML模型的重新训练。
7.根据权利要求1所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:
根据针对所述目标中的与语义匹配的标签相关联的字段或位置的置信度得分,生成合成置信度得分;以及
在所述匹配界面中显示所述合成置信度得分。
8.根据权利要求1所述的非瞬态计算机可读介质,其中所述一个或多个AI/ML模型通过以下方式而被训练:提供具有词与短语之间的语义关联的所述词和短语,使得针对给定词或短语的相似词和短语能够被标识,并且提供上下文标签,所述上下文标签与所述词和短语出现在其中的屏幕有关。
9.根据权利要求1所述的非瞬态计算机可读介质,其中所述计算机程序是机器人过程自动化RPA设计器应用或者包括机器人过程自动化RPA设计器应用。
10.根据权利要求1所述的非瞬态计算机可读介质,其中,
所述一个或多个AI/ML模型包括计算机视觉CV模型、光学字符识别OCR模型、标签匹配模型和输入数据匹配模型,
所述标签匹配模型将由所述OCR模型检测到的标签与由所述CV模型检测到的字段或位置进行匹配,以及
所述输入数据模型从所述标签匹配模型接收匹配标签,并且将来自所述源的所述标签和值和与所述目标上的所述语义匹配的标签相关联的所述标签和字段或位置进行语义匹配。
11.根据权利要求1所述的非瞬态计算机可读介质,其中所述计算机程序是机器人过程自动化RPA机器人或者包括机器人过程自动化RPA机器人。
12.根据权利要求1所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:
显示类型选择界面,所述类型选择界面提供针对所述源、所述目标或者两者所支持的类型的选项。
13.根据权利要求1所述的非瞬态计算机可读介质,其中所述源包括来自操作系统的剪贴板的内容。
14.根据权利要求1所述的非瞬态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:
选择至少一个附加源;以及
除了来自所述源的信息之外,还将来自所述至少一个附加源的信息提供给所述一个或多个AI/ML模型,以执行所述语义匹配。
15.一种计算机实现的方法,包括:
由计算系统调用一个或多个人工智能/机器学习AI/ML模型,所述一个或多个AI/ML模型已经被训练为在源中的标签与目标中的标签之间执行语义匹配,在所述源中的值与所述目标中的所述标签之间执行语义匹配,或者两者;以及
由所述计算系统基于所述源中的所述标签与所述目标中的所述标签之间的所述语义匹配、所述源中的所述值与所述目标中的所述标签之间的所述语义匹配、或者两者,将值从所述源复制到所述目标。
16.根据权利要求15所述的计算机实现的方法,还包括:
由所述计算系统生成机器人过程自动化RPA工作流中的一个或多个活动,所述一个或多个活动将数据从所述源中的具有如下标签的所述值复制到所述目标中的相应字段或位置中:所述一个或多个AI/ML模型将所述标签标识为语义匹配所述目标中的所述标签。
17.根据权利要求16所述的计算机实现的方法,还包括:
由所述计算系统生成在所述RPA工作流中实现所述一个或多个所生成的所述活动的自动化;以及
由所述计算系统部署所生成的所述自动化和被配置为在运行时环境中执行所述自动化的RPA机器人。
18.根据权利要求16所述的计算机实现的方法,还包括:
由所述计算系统确定复制和粘贴任务的开始;
由所述计算系统确定所述复制和粘贴任务的结束;以及
由所述计算系统针对所述复制和粘贴任务的所述开始和所述结束生成相关联的活动。
19.根据权利要求15所述的计算机实现的方法,还包括:
由所述计算系统接收所述源中的与所述目标中的语义匹配的标签相关联的字段或位置的指示以及来自所述一个或多个AI/ML模型的相应置信度得分;以及
由所述计算系统在匹配界面中显示与所述目标上的所述语义匹配的标签相关联的图形元素或位置,在所述匹配界面中显示针对由所述一个或多个AI/ML模型标识的潜在匹配字段或位置的所述相应置信度得分,或者两者。
20.根据权利要求15所述的计算机实现的方法,还包括:
由所述计算系统接收对所述目标中的由所述一个或多个AI/ML模型标识为在所述源中具有相关联的语义匹配的标签的所述目标中的标签、字段或位置的校正,接收所述目标中的未被所述一个或多个AI/ML模型语义匹配到所述源中的标签的新标签、字段或位置的指示,或者两者;
由所述计算系统收集与所述目标中的经过校正的和/或新标记的所述标签、字段或位置以及所述源中的所述相关联的标签有关的信息;以及
由所述计算系统直接地或间接地存储所收集的所述信息以用于对所述一个或多个AI/ML模型的重新训练。
21.根据权利要求15所述的计算机实现的方法,还包括:
由所述计算系统根据针对所述目标中的与语义匹配的标签相关联的字段或位置的置信度得分,生成合成置信度得分;以及
由所述计算系统在所述匹配界面中显示所述合成置信度得分。
22.根据权利要求15所述的计算机实现的方法,其中所述一个或多个AI/ML模型通过以下方式而被训练:提供具有词和短语之间的语义关联的所述词和短语,使得针对给定词或短语的相似词和短语能够被标识,并且提供上下文标签,所述上下文标签与所述词和短语出现在其中的屏幕有关。
23.根据权利要求15所述的计算机实现的方法,其中,
所述一个或多个AI/ML模型包括计算机视觉CV模型、光学字符识别OCR模型、标签匹配模型和输入数据匹配模型,
所述标签匹配模型将由所述OCR模型检测到的标签与由所述CV模型检测到的字段或位置进行匹配,以及
所述输入数据模型从所述标签匹配模型接收所述匹配标签,并且将来自所述源的所述标签和值和与所述目标上的所述语义匹配的标签相关联的所述标签和字段或位置进行语义匹配。
24.根据权利要求15所述的计算机实现的方法,还包括:
由所述计算系统显示类型选择界面,所述类型选择界面提供针对所述源、所述目标或者两者所支持的类型的选项。
25.根据权利要求15所述的计算机实现的方法,其中所述源包括来自操作系统的剪贴板的内容。
26.根据权利要求15所述的计算机实现的方法,其中所述一个或多个AI/ML模型使用来自多个源的信息来执行所述多个源中的标签与所述目标中的所述标签之间的所述语义匹配、所述多个源中的所述值与所述目标中的所述标签之间的所述语义匹配、或者两者。
27.一种计算系统,包括:
存储器,所述存储器存储计算机程序指令;以及
至少一个处理器,所述至少一个处理器被配置为执行所述计算机程序指令,其中所述计算机程序指令被配置为使所述至少一个处理器:
调用一个或多个人工智能/机器学习AI/ML模型,所述一个或多个AI/ML模型已经被训练为在所述源中的标签与所述目标中的标签之间执行语义匹配、在所述源中的值与所述目标中的所述标签之间执行语义匹配、或者两者;以及
基于所述源中的所述标签与所述目标中的所述标签之间的所述语义匹配、所述源中的所述值与所述目标中的所述标签之间的所述语义匹配、或者两者,将值从所述源复制到所述目标,其中,所述计算机程序指令是过程自动化RPA设计器应用或RPA机器人或者包括RPA设计器应用或RPA机器人。
28.根据权利要求27所述的计算系统,其中所述计算机程序指令还被配置为使所述至少一个处理器:
生成机器人过程自动化RPA工作流中的一个或多个活动,所述一个或多个活动将数据从所述源中的具有如下标签的所述值复制到所述目标中的相应字段或位置中:所述一个或多个AI/ML模型将所述标签标识为语义匹配所述目标中的所述标签。
29.根据权利要求27所述的计算系统,其中所述计算机程序指令还被配置为使所述至少一个处理器:
生成在所述RPA工作流中实现所述一个或多个所生成的所述活动的自动化;以及
部署所生成的所述自动化和被配置为在运行时环境中执行所述自动化的RPA机器人。
30.根据权利要求27所述的计算系统,其中所述计算机程序指令还被配置为使所述至少一个处理器:
确定复制和粘贴任务的开始;
确定所述复制和粘贴任务的结束;以及
针对所述复制和粘贴任务的所述开始和所述结束生成相关联的活动。
31.根据权利要求27所述的计算系统,其中所述计算机程序指令还被配置为使所述至少一个处理器:
接收所述源中的与所述目标中的语义匹配的标签相关联的字段或位置的指示以及来自所述一个或多个AI/ML模型的相应置信度得分;以及
在匹配界面中显示与所述目标上的所述语义匹配的标签相关联的图形元素或位置,在所述匹配界面中显示由所述一个或多个AI/ML模型标识的潜在匹配字段或位置的相应置信度得分,或者两者。
32.根据权利要求27所述的计算系统,其中所述计算机程序指令还被配置为使所述至少一个处理器:
接收对所述目标中的由所述一个或多个AI/ML模型标识为在所述源中具有相关联的语义匹配的标签的的标签、字段或位置的校正,接收所述目标中的未被所述一个或多个AI/ML模型语义匹配到所述源中的标签的新标签、字段或位置的指示,或者两者;
收集与所述目标中的经校正的和/或新标记的所述标签、字段或位置以及所述源中的所述相关联的标签有关的信息;以及
直接地或间接地存储所收集的所述信息以用于对所述一个或多个AI/ML模型的重新训练。
33.根据权利要求27所述的计算系统,其中所述计算机程序指令还被配置为使所述至少一个处理器:
根据针对所述目标中的与语义匹配的标签相关联的字段或位置的置信度得分,生成合成置信度得分;以及
在所述匹配界面中显示所述合成置信度得分。
34.根据权利要求27所述的计算系统,其中所述一个或多个AI/ML模型通过以下方式而被训练:提供具有词和短语之间的语义关联的所述词和短语,使得针对给定词或短语的相似词和短语能够被标识,并且提供上下文标签,所述上下文标签与所述词和短语出现在其中的屏幕有关。
35.根据权利要求27所述的计算系统,其中,
所述一个或多个AI/ML模型包括计算机视觉CV模型、光学字符识别OCR模型、标签匹配模型和输入数据匹配模型,
所述标签匹配模型将由所述OCR模型检测到的标签与由所述CV模型检测到的字段或位置进行匹配,以及
所述输入数据模型从所述标签匹配模型接收所述匹配标签,并且将来自所述源的所述标签和值和与所述目标上的所述语义匹配的标签相关联的所述标签和字段或位置进行语义匹配。
36.根据权利要求27所述的计算系统,其中所述计算机程序指令还被配置为使所述至少一个处理器:
显示类型选择界面,所述类型选择界面提供针对所述源、所述目标或者两者所支持的类型的选项。
37.根据权利要求27所述的计算系统,其中所述源包括来自操作系统的剪贴板的内容。
38.根据权利要求27所述的计算系统,其中所述一个或多个AI/ML模型使用来自多个源的信息来执行所述多个源中的标签与所述目标中的所述标签之间的所述语义匹配、所述多个源中的所述值与所述目标中的所述标签之间的所述语义匹配、或者两者。
CN202211229859.0A 2021-10-05 2022-10-08 使用用于机器人过程自动化的语义人工智能在源与目标之间的自动数据传输 Pending CN115952966A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/494,744 2021-10-05
US17/494,744 US12124806B2 (en) 2021-10-05 Semantic matching between a source screen or source data and a target screen using semantic artificial intelligence
US17/746,855 US20230107316A1 (en) 2021-10-05 2022-05-17 Automatic data transfer between a source and a target using semantic artificial intelligence for robotic process automation
US17/746,855 2022-05-17

Publications (1)

Publication Number Publication Date
CN115952966A true CN115952966A (zh) 2023-04-11

Family

ID=83457408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211229859.0A Pending CN115952966A (zh) 2021-10-05 2022-10-08 使用用于机器人过程自动化的语义人工智能在源与目标之间的自动数据传输

Country Status (4)

Country Link
US (2) US20230107316A1 (zh)
EP (1) EP4163784A1 (zh)
JP (1) JP2023055215A (zh)
CN (1) CN115952966A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116628141A (zh) * 2023-07-24 2023-08-22 科大讯飞股份有限公司 信息处理方法、装置、设备及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11928629B2 (en) * 2022-05-24 2024-03-12 International Business Machines Corporation Graph encoders for business process anomaly detection
CN117608565B (zh) * 2024-01-23 2024-05-10 杭州实在智能科技有限公司 基于屏幕截图分析的rpa中ai类组件推荐方法及系统
US12056003B1 (en) 2024-02-14 2024-08-06 Morgan Stanley Services Group Inc. Methods and systems of incident management employing preemptive incident prevention and self healing processing

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080027930A1 (en) * 2006-07-31 2008-01-31 Bohannon Philip L Methods and apparatus for contextual schema mapping of source documents to target documents
AU2017304396A1 (en) * 2016-07-27 2019-03-07 Wix.Com Ltd. System and method for implementing containers which extract and apply semantic page knowledge
US10474495B2 (en) * 2018-01-08 2019-11-12 Accenture Global Solutions Limited Utilizing an artificial intelligence model determined for a target domain based on a dataset associated with a source domain
US11176104B2 (en) * 2018-04-16 2021-11-16 Bank Of America Corporation Platform-independent intelligent data transformer
US11726802B2 (en) * 2018-09-28 2023-08-15 Servicenow Canada Inc. Robust user interface related robotic process automation
RU2699396C1 (ru) * 2018-11-19 2019-09-05 Общество С Ограниченной Ответственностью "Инвек" Нейронная сеть для интерпретирования предложений на естественном языке
US10936351B2 (en) 2019-07-19 2021-03-02 UiPath, Inc. Multi-anchor based extraction, recognition, and machine learning of user interface (UI)
US20210097274A1 (en) 2019-09-30 2021-04-01 UiPath, Inc. Document processing framework for robotic process automation
US10860905B1 (en) 2019-10-16 2020-12-08 UiPath, Inc. Long running workflows for document processing using robotic process automation
WO2021231895A1 (en) * 2020-05-14 2021-11-18 Google Llc Training and/or utilizing machine learning model(s) for use in natural language based robotic control
US11748069B2 (en) 2020-07-07 2023-09-05 UiPath, Inc. User interface (UI) descriptors, UI object libraries, UI object repositories, and UI object browsers for robotic process automation
US11733668B2 (en) 2020-07-09 2023-08-22 UiPath, Inc. Robot access control and governance for robotic process automation
US11200073B1 (en) 2020-11-20 2021-12-14 UiPath, Inc. Automatic anchor determination and target graphical element identification in user interface automation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116628141A (zh) * 2023-07-24 2023-08-22 科大讯飞股份有限公司 信息处理方法、装置、设备及存储介质
CN116628141B (zh) * 2023-07-24 2023-12-01 科大讯飞股份有限公司 信息处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US20230107233A1 (en) 2023-04-06
US20230107316A1 (en) 2023-04-06
JP2023055215A (ja) 2023-04-17
EP4163784A8 (en) 2023-06-07
EP4163784A1 (en) 2023-04-12

Similar Documents

Publication Publication Date Title
US20230385085A1 (en) Determining sequences of interactions, process extraction, and robot generation using generative artificial intelligence / machine learning models
EP4163784A1 (en) Automatic data transfer between a source and a target using semantic artificial intelligence for robotic process automation
US20230133373A1 (en) Building and managing artificial intelligence flows using long-running workflows for robotic process automation
US12099820B2 (en) Training and using artificial intelligence (AI) / machine learning (ML) models to automatically supplement and/or complete code of robotic process automation workflows
US20240046142A1 (en) Intent-based automation
US20230360388A1 (en) Training a generative artificial intelligence / machine learning model to recognize applications, screens, and user interface elements using computer vision
US20230415338A1 (en) Target-based schema identification and semantic mapping for robotic process automation
US20240053727A1 (en) Type cache for package management of robotic process automations field
US20240231896A9 (en) Detection of variants of automatable tasks for robotic process automation
US11797770B2 (en) Self-improving document classification and splitting for document processing in robotic process automation
US20240231917A9 (en) Automatic merging of variants of automatable tasks for robotic process automation
US12124424B1 (en) Extracting long-term dependencies within processes
US20240142917A1 (en) Semantic automation builder for robotic process automation
US20240220581A1 (en) Artificial intelligence-driven, semantic, automatic data transfer between a source and a target using task mining
US20240202050A1 (en) User interface automation and monitoring integrating application event listeners
US20240242021A1 (en) Autocomplete prediction engine providing automatic form filling from email and ticket extractions
US20240168724A1 (en) Hypertext transfer protocol recorder of a robotic process automation workflow designer application
US20240168773A1 (en) Automatic augmentation of a target application within a browser
US12124806B2 (en) Semantic matching between a source screen or source data and a target screen using semantic artificial intelligence
US20230108015A1 (en) Semantic matching between a source screen or source data and a target screen using semantic artificial intelligence
US12124807B2 (en) Semantic matching between a source screen or source data and a target screen using semantic artificial intelligence
US20240070257A1 (en) Assume user identity authentication flow
US20230339102A1 (en) System, apparatus, and method for deploying robotic process automations across multiple operating systems
CN118838672A (zh) 有测试自动化细节的最常用系统事务的图形用户界面热图

Legal Events

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