使用人工智能/机器学习模型确定交互的序列、流程提取和机器人生成的制作方法

未命名 08-03 阅读:72 评论:0

使用人工智能/机器学习模型确定交互的序列、流程提取和机器人生成
1.相关申请的交叉引用
2.本国际申请要求2020年10月14日提交的美国专利申请号17/070,168的权利和优先权。该先前提交的申请的主题在此全文引入作为参考。
技术领域
3.本发明总体上涉及用户界面(ui)自动化,并且更具体地涉及使用人工智能(ai)/机器学习(ml)模型来确定与计算系统的用户交互的序列、提取公共流程以及生成机器人流程自动化(rpa)机器人。


背景技术:

4.为了执行ui自动化,rpa技术可以利用驱动程序和/或应用级交互以点击按钮、输入文本、以及执行与ui的其他交互。然而,在一些实施例中,在系统级或在构建新的ui自动化平台时,按键、鼠标点击和其他内核钩子信息可能不可用。实现这样的ui自动化平台通常要求大量的驱动程序级和应用级功能。此外,用户与其计算系统交互的方式可能无法被得知。因此,用于提供ui自动化的备选技术可以是有利的。


技术实现要素:

5.本发明的某些实施例可以为现有技术中尚未被当前ui自动化技术完全标识、理解或解决的问题和需求提供解决方案。例如,本发明的一些实施例涉及使用ai/ml模型确定与计算系统的用户交互的序列、提取公共流程以及生成rpa机器人。
6.在一个实施例中,计算机实现的方法包括通过计算系统向人工智能(ai)/机器学习(ml)模型提供包括多个用户与相应用户计算系统的时间顺序的交互的数据。计算机实现的方法还包括由计算系统训练ai/ml模型通过以下来识别与用户交互的时间顺序的序列中的与任务相关的用户交互的相关序列:通过在滑动窗口上比较来自计算系统的所记录的数据中的用户交互的n元语法的序列以找到相关序列。n元语法包括两个或更多个n值。计算机实现的方法还包括部署经训练的ai/ml模型。
7.在另一实施例中,非暂态计算机可读介质存储计算机程序。计算机程序被配置为使得至少一个处理器通过ai/ml模型分析多个用户与相应计算系统的所记录的真实用户交互,并确定所记录的真实用户交互中的匹配序列集合。计算机程序还被配置为使得至少一个处理器生成一个或多个相应rpa工作流,其包括实现确定的匹配序列集合中的用户交互的活动。
8.在又一实施例中,系统包括存储计算机程序指令的存储器和至少一个被配置为执行计算机程序指令的处理器。计算机程序指令被配置为使得至少一个处理器由ai/ml模型分析多个用户与相应计算系统的所记录的真实用户交互,并确定所记录的真实用户交互中的匹配序列集合。计算机程序指令还被配置为使得至少一个处理器确定匹配序列中最高效
的序列。计算机程序指令还被配置为使得至少一个处理器生成一个或多个相应rpa工作流,其包括实现确定的最高效的匹配序列中的用户交互的活动。
附图说明
9.为了容易理解本发明的某些实施例的优点,通过参考附图中示出的具体实施例为参考对上文简要描述的本发明进行更具体的描述。尽管应当理解,这些附图仅描述了本发明的典型实施例,因此不应被认为是对本发明范围的限制,通过使用附图对本发明进行附加的具体内容和细节的描述和解释,其中:
10.图1是图示了根据本发明实施例的机器人流程自动化(rpa)系统的架构图。
11.图2是图示了根据本发明实施例的所部署的rpa系统的架构图。
12.图3是图示了根据本发明实施例的设计器、活动、以及驱动程序之间的关系的架构图。
13.图4是图示了根据本发明实施例的rpa系统的架构图。
14.图5是图示了根据本发明实施例的计算系统的架构图,该计算系统被配置为使用ai/ml模型以确定与计算系统的用户交互的序列、提取公共流程、以及生成rpa机器人。
15.图6是图示了根据本发明实施例的系统的架构图,该系统被配置为使用ai/ml模型以确定与计算系统的用户交互的序列、提取公共流程、以及生成rpa机器人。
16.图7是图示了根据本发明实施例的使用ai/ml模型以确定与计算系统的用户交互的序列、提取公共流程、以及生成rpa机器人的流程的流程图。
17.图8是图示了根据本发明实施例的基于期望结束状态使用ai/ml模型执行流程提取、以及生成rpa机器人的流程的流程图。
18.图9图示了根据本发明实施例的表示用户交互的序列的n元语法的比较。
19.除非另有说明,在所有附图中,类似的附图标记始终表示相应的特征。
具体实施方式
20.一些实施例涉及使用ai/ml模型确定与计算系统的用户交互的序列、提取公共流程、以及生成rpa机器人。用户交互可以由ai/ml模型确定,该ai/ml模型被训练为使用计算机视觉(cv)识别应用、屏幕和ui元素,并且识别与应用、屏幕和用户界面元素的用户交互。该ai/ml模型可以与之后搜索序列的ai/ml模型相同,也可以是不同的ai/ml模型。个人用户交互可包括但不限于用户点击按钮、在字段中输入文本、与菜单交互、关闭窗口、移动到应用的不同屏幕等。用户交互的序列的示例可以包括例如打开应用、在多个文本字段中键入信息、以及点击提交按钮。
21.用户交互可以从多个计算系统收集到的数据提取。例如,所收集的数据可以仅包括视频、和/或从计算系统收集的其他数据,例如浏览器历史、热图、文件信息、当前运行的应用和位置、系统级和/或应用级信息等。然后提取到的用户交互可以被组合为与例如书写和发送电子邮件、将信息输入表单并提交、基于从网站检索的信息修改电子表格等较大型的活动或任务相关联的交互序列中。
22.在一些实施例中,可以使用多大小(multiple size)的n元语法来搜索数据中的匹配序列。如果n的最小值太小,可能会找到太多要标识有意义的序列的匹配序列。相反,如果
n的最小值太大,小于n的有意义的匹配序列可能会被遗漏。在训练过程中,人工审查员可以审查某个起始大小n(例如2、3、7等)的已标识序列。如果该大小产生太多无用序列,最小序列大小可以被递增至n+1、n+2、n+3等。直到匹配序列趋向于有用。在最小有用的n被确定之后(例如,产生至少10%、至少30%、至少50%、至少90%等有用序列的最小n),可以忽略或不再确定/考虑该n元语法大小或小于该n元语法大小的序列。在一些实施例中,ai/ml模型可以基于匹配序列的最大数目为n自动选择最小值。在某些实施例中,对于被考虑的某个n元语法大小的序列,可以要求某个数目的匹配。例如,在大型组织中,其可以要求存在数十个、数百个或数千个匹配以使序列自动化,因为这将趋向于意味着数个或很多用户执行该流程。
23.循环神经网络(rnn)可能尤其擅长确定n的值的有用范围。在一些实施例中,rnn可以通过试错(trail-and-error)流程确定最佳窗口阈值(即,n值的有用范围),该试错流程涉及为有用序列清除不同大小的n元语法,并且在一些实施例中可能清除所有序列大小。然后,rnn可以确定最佳范围,可能无需人工输入。这样的系统可以用于自动地确定用户是否可能离开云计算服务,例如,通过寻找趋向于指示用户可能离开服务的用户交互的时间窗序列。然后可以采取措施试图留住客户(例如,让人工代表联系客户、提供更低的服务价格等)。
24.在一些实施例中,也可以确定n的上限。例如,若等于或大于某个n的值的序列的数目小于某个数目,或者没有找到任何序列,则n的大小可以被限制为小于该n的值。此外,如果n太大,则序列可能会对应于多于给定任务,并且包括多于一个用户曾碰巧执行的其他不相关的动作。该确定可由人工审查员做出或自动地做出。
25.在某些实施例中,(多个)重要性度量可被附加或替代地用于上文讨论的部分或全部序列限制技术。例如,可以考虑动作的序列是否产生至少一定量的收入、节省至少一定量的收入、将任务的效率/速度提高至少一定量、加快客户获取流程、减少所需的通信数目、或其组合等。该(多个)重要性度量可以帮助标识应当首先被自动化并且将从rpa中得到最大收益的序列和流程。
26.为了找到序列,可以使用滑动窗口来应用n元语法。例如见图8。例如,如果n的当前值为5,则用户的前5次交互可以与来自其他用户的5次交互的所有时间顺序的序列进行比较,然后交互2-6、3-7、4-8等可以被比较直至该用户所有该大小的交互的时间顺序的集合均已经与其他被考虑用户的那些进行比较。备选地,对于每个用户,被考虑的n的该大小的所有用户交互可以从交互的时间顺序的序列中被标识和检索,并且被存储到数据库中。对于每个n,匹配序列和匹配数目可以在不使用滑动窗口的情况下被标识。(多个)重要性度量也可以被应用于这些匹配序列。
27.在一些实施例中,ai/ml模型或调用ai/ml模型的流程能够将所标识的匹配顺序中的交互与相应rpa活动相关联。例如,用户点击“提交”按钮的交互可以与标识屏幕上的按钮、移动鼠标以在按钮区域内、并点击该按钮的一个或多个rpa活动相关联。ai/ml模型,或使用ai/ml模型以标识序列或其输出的一些其他应用,可以因此生成“框架”rpa工作流,该rpa工作流可以由rpa开发者审阅、按期望进行修改,并且实现为rpa机器人。任务链可以用于创建草稿rpa工作流,然后其可以被导出至rpa设计器应用。备选地,可以向rpa开发者提供该序列,并指示其构建实现该序列的工作流。随着时间的推移,ai/ml模型可以变得足够
准确,从而在没有人工动作的情况下可以创建序列的工作流,并且生成和部署实现该工作流rpa机器人。
28.一些交互序列可以至少稍有不同,但可以完成相同的任务。为了标识这些序列在功能上是相同的,一些实施例生成包括松散关联的概率图。每个可能的或被观察到的交互或其子集可作为节点被包括在图中。ai/ml模型可以计算用户从一个节点“跳转”到另一节点的概率(即,用户将跟随节点之间的边的概率)。例如,如果电子表格是打开的,用户的下一次交互为计算列总和的概率可能较高,但下一次交互为打开电子邮件应用的概率可能相对较低。边可以提供节点之间的概率,并且可能提供节点的序列作为其间一系列片段的概率。这种序列及其边缘可以提供从一个节点开始通过该序列到达另一节点的联合概率。
29.在确定边的概率后,然后概率图可以被“剪枝”以寻找相关序列。例如,低于50%、25%、10%等的边的概率可以被移除,以减少边和序列的数目。在不偏离本发明范围的情况下,可以使用levenshtein距离、模糊匹配(例如,匹配参数在某个模糊阈值内相似,如在20%的变化内)、和/或任意其他合适的技术以确定相关序列。例如,两个、三个或更多个序列可以以至少某个概率导向某个结束节点,使得用户使用这些至少有些许不同的序列完成相同的任务成为可能。
30.在一些实施例中,多个相关序列中最高效的路径可能是被期望的。这可以基于交互/步骤的数目、与每个步骤相关联的时间(例如,如从与用户交互有关的时间顺序的数据中的时间戳获取)等而被确定。然后,可以基于完成该任务的最高效的序列生成rpa工作流程。
31.在一些实施例中,更复杂的交互可以被识别和预期。例如,本地化的控制信息可以用于确定视觉上不太明显的交互。考虑用户希望同步两个应用之间的播放列表(例如,从到)的示例。用户通常可以从复制歌曲标题,将歌曲标题放入搜索框,搜索歌曲,并对下一首歌曲重复该流程直至播放列表被复制。一些实施例中的ai/ml模型可以识别复制歌曲的粒度任务对于播放列表中的所有歌曲均被重复,并提示用户关于他/她是否将愿意复制播放列表中的所有歌曲。
32.在一些实施例中,ai/ml模型可以基于观察示例学习以自动地完成字段。例如,如果用户从数据源创建账户,其要求来自该数据源中的各种信息,ai/ml模型可以观察用户已经在多个字段中输入信息,生成脚本以自动地填写所有字段,然后询问用户他/她是否将愿意自动地填写这些字段。该ai/ml模型可以是经训练的深度学习神经网络(dlnn)、经训练的浅层学习神经网络(slnn)、经训练的rnn、经训练的生成对抗网络(gan)、其组合、确定性的等。对于一些应用,确定性的、基于规则的系统的优点在于,其通常要求较少的示例以进行训练。
33.在一些实施例中,ai/ml可以被训练以识别期望的结果并且确定导致期望的结果的(多个)流程。例如,ai/ml模型可以被训练以识别账户创建、新用户添加、收入产生、问题解决等。然后ai/ml模型可以回溯与用户交互相关的数据或用户交互本身,以重新创建导致期望的结果的序列。然后ai/ml模型或另一流程可以将交互与活动相关联,并且生成实现该序列/流程的rpa工作流。这可以称为“通过示例编程”,其中示例被提供给ai/ml模型,然后ai/ml模型生成可以再现期望的结束状态的程序。
34.现代网络本质上是大型概率图。一旦确定了期望的结果,ai/ml模型可以回溯先验,并对实现期望的结果起最重要作用的事情进行评级。如果确定收入增加作为结果,则导致该结果的信号可以被分解为多个子信号,并且可以确定哪个(哪些)子信号导致收入提高。
35.在一些实施例中,反向传播可以被用于神经网络。大多数的现代深度学习基于反向传播算法,该算法在数学上从最优化理论中被找到。许多最近对深度学习的修改和改进在很大程度上将它们的结构归功于已知的人类大脑结构如何处理信息。换句话说,深度学习通常利用类似于视觉皮层的初级皮层的分层前馈网络。每一层的非线性通常是阈值非线性,与在神经元整合-分发模型的平均场近似中找到的一样。卷积深度网络实现了在视觉皮层中同样被找到的近似的平移对称性。在神经网络中,多种技术可以被用于反向传播误差,包括但不限于:(1)提供第二网络以反向传播误差;(2)提供基底树突响应和顶端树突响应对尖峰输入的差异,以证明反向传播通过与正向传播相同的层;(3)使用全局强化学习;(4)在循环网络中使用双向再循环;(5)使用比较赫布学习。
36.神经网络通常是脉冲选通的,其中“神经元”是否触发取决于脉冲的强度和分配给该神经元的数学函数。信息以“尖峰”的形式进出。尖峰是事件,并且“突触”决定下游神经元对该事件的响应程度。根据神经网络的特定连接和逻辑,来自一个神经元的尖峰可以因此传播到其他神经元。
37.这些连接和突触的性质控制行为。给定神经元可以获取发生尖峰事件的输入突触的突触权重,对其求和,并且然后确定是否生成尖峰。在一些实施例中,尖峰的强度可以不变并且因此在某种程度上类似于发出的一个比特。典型的实现可以包括连接在总线上的神经元,其中通信是时间戳。换句话说,在某个时间尖峰作为事件从一个神经元发出,并且随后由下游神经元接收。
38.当信息到达下游神经元时,可以使用阈值活动函数,如果值低于阈值则什么也不会发生,但随后高于阈值函数会线性响应(即线性整流函数(relu))。由于真实的神经元可以具有大概相似的活动函数,relu函数经常被用于深度学习。通过线性转换,信息可以被删减、增加等。在监督学习中,已知输出可以通过网络输出计算并且误差可以由已知目标输出通过代价函数计算,其给出了用于反向传播的误差。误差可以在输出侧计算,并且该误差可以转换为对网络权重的修正以最小化该误差。
39.一些实施例的标准学习算法是赫布学习,其通过基于突触前神经元的触发率和接收神经元(即突触后神经元)的触发率的乘积更新单个突触来修改权重。为了使赫布学习发生(即,突触修改),在相对较短的时间窗内,突触前的触发率和突触后的触发率应不为零。否则突触不被修改。在一些实施例中,在该时间窗之外,突触权重可以成比例地降低。
40.通过脉冲选通,触发率可以在赫布学习发生的时间窗内传播至突触前神经元和突触后神经元。因此,使用脉冲选通学习,并且从而,进行突触修改,触发率可以控制学习的开始和偏置,并且可以用于更新突触权重以实现反向传播算法。
41.反向传播是一种优化前向神经网络中突触权重的技术。在监督学习的情况下,列向量输入x经由网络的每层i=1,
……
,n之间的一系列的n个非线性活动函数fi进行处理,给定层处的输出首先乘以突触矩阵wi,并加上偏置向量bi。网络输出的o,由下式给出:
42.o=fn(w
nfn-1
(w
n-1fn-2
(...f1(w1x+b1)...)+b
n-1
)+bn)
ꢀꢀ
(1)
43.在一些实施例中,将o与目标输出t进行比较,得到误差其期望被最小化。
44.使用反向传播,可以执行为了更新突触权重的误差的反向传播。这允许趋向于导致期望的结果的“神经元”的增强。可能与上文讨论的概率图流程有些类似,看起来会导致期望的结果的节点可以被反复加强,直到期望的结果可以被再现。节点之间的联系和它们的概率权重可以使它们的行为在本质上几乎相似。
45.根据上述内容,在一些实施例中,可以基于各种度量对确定的用户交互的序列进行优先级排序。例如,更公共的序列,通过自动化为用户提供更多时间节省的序列等等,可以对于rpa工作流的生成有更高的优先级。实该现序列的rpa机器人可以被生成并部署至用户计算系统,以完成与公共序列相关联的任务。
46.通常,使大量用户交互的序列(例如100个)自动化要求大量编程语言中的代码。然而,一些实施例生成rpa机器人以很少或无编码的方式实现用户交互的序列。事实上,任务挖掘可以仅通过ai进行,也可能通过ai与一些人工补充进行。
47.在一些实施例中,序列可以完全不需要被识别。例如,可以跟踪交互和重复之间的关联。神经网络可以记忆关联数据而不会产生内存开销。鉴于通常来说,反向索引被使用于如果用户执行动作,使用反向索引采取另一动作。然而,这些反向索引从资源角度来看在现实系统中可能会变得规模很大。在另一方面,神经网络可以被训练以在没有这种内存开销的情况下通过增强关联图的神经网络中的节点的方法完成相同或相似的结果。
48.在一些实施例中,ai可以用于端到端地执行整个流程。例如,(多个)ai/ml模型可以用于确定用户正在使用哪些应用、其图形元素、以及用户交互,来确定用户交互的公共序列,并在没有设计时开发的情况下自动构建和部署在运行时实现交互序列的rpa机器人。然后,可以从用户处获得关于自动化开发的机器人工作或遇到异常情况的场景的训练数据,该训练数据可以用于重训练机器人并部署机器人。该训练数据可以包括图像中出现错误标识或元素丢失的区域、标签校正、输入校正等。该流程可重复进行,以反复改进机器人。
49.某些实施例可以被用于机器人过程自动化(rpa)。图1是图示根据本发明的实施例的rpa系统100的架构图。rpa系统100包括允许开发者设计和实现工作流的设计器110。设计器110可以提供用于应用集成以及自动化第三方应用、管理信息技术(it)任务和业务it过程的解决方案。设计器110可以促进自动化项目的开发,自动化项目是业务过程的图形表示。简而言之,设计器110促进了工作流和机器人的开发和部署。
50.自动化项目通过让开发者控制执行顺序和在工作流中开发的步骤(在本文中被定义为“活动”)的自定义集合之间的关系来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是uipath studio
tm
。每个活动可以包括诸如点击按钮、读取文件、写入到日志面板等的动作。在一些实施例中,工作流可以被嵌套或嵌入。
51.一些类型的工作流可以包括但不限于序列、流程图、fsm和/或全局异常处理程序。序列可能特别适用于线性过程,在不使工作流程混乱的情况下实现从一个活动到另一个活动的流程。流程图可能特别适合于更复杂的业务逻辑,通过多个分支逻辑运算符以更多样化的方式实现决策的集成和活动的连接。fsm可能特别适合于大型工作流。fsm可以在其执行中使用有限数目的状态,这些状态由条件(即转变)或活动来触发。全局异常处理程序可
能特别适合用于在遇到执行错误时确定工作流行为以及适合用于调试过程。
52.一旦在设计器110中开发了工作流,业务过程的执行就由协调器(conductor)120编排,协调器120编排一个或多个机器人130,机器人130执行在设计器110中开发的工作流。协调器120的实施例的一个商业示例是uipath orchestrator
tm
。协调器120促进了对环境中的资源的创建、监测和部署的管理。协调器120可以充当与第三方解决方案和应用的集成点、或聚合点中的一者。
53.协调器120可以管理机器人130的队列,连接和执行来自集中式点的机器人130。可以被管理的机器人130的类型包括但不限于有人值守机器人132、无人值守机器人134、开发机器人(类似于无人值守机器人134,但被用于开发和测试目的)和非生产机器人(类似于有人值守机器人132,但是用于开发和测试目的)。有人值守机器人132由用户事件触发,并在相同计算系统上与人类一起操作。有人值守机器人132可以与协调器120一起使用,以用于集中式过程部署和日志记录介质。有人值守机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,过程不能在这种类型的机器人上从协调器120开始和/或它们不能在被锁定的屏幕下运行。在某些实施例中,有人值守机器人132只能从机器人托盘或从命令提示开始。在一些实施例中,有人值守机器人132应该在人类监督下运行。
54.无人值守机器人134在虚拟环境中无人值守地运行,并且可以使多个过程自动化。无人值守机器人134可以负责远程执行、监测、调度和为工作队列提供支持。在一些实施例中,针对所有机器人类型的调试可以在设计器110中运行。有人值守和无人值守机器人都可以使各种系统和应用自动化,各种系统和应用包括但不限于大型机、web应用、虚拟机、企业应用(例如,由等生产的那些应用)和计算系统应用(例如,台式机和笔记本计算机应用、移动设备应用、可穿戴计算机应用等)。
55.协调器120可以具有各种能力,包括但不限于供应、部署、版本控制、配置、排队、监测、日志记录和/或提供互连性。供应可以包括创建和维护机器人130和协调器120(例如,web应用)之间的连接。部署可以包括确保将封装版本正确地递送给所指派的机器人130以供执行。在一些实施例中,版本控制可以包括对一些过程或配置的唯一实例的管理。配置可以包括机器人环境和过程配置的维护和递送。排队可以包括提供对队列和队列项的管理。监测可以包括保持对机器人标识数据的跟踪和维护用户权限。日志记录可以包括将日志存储到数据库(例如,sql数据库)和/或其他存储机制(例如,)并进行索引,这提供存储和快速查询大型数据集的能力。协调器120可以通过充当针对第三方解决方案和/或应用的集中式通信点来提供互连性。
56.机器人130是运行内置于设计器110中的工作流的执行代理。(多个)机器人130的一些实施例的一个商业示例是uipath robots
tm
。在一些实施例中,机器人130默认安装microsoft服务控制管理器(scm)管理的服务。结果,此类机器人130可以在本地系统账户下打开交互式会话,并具有服务的权利。
57.在一些实施例中,机器人130可以以用户模式来被安装。对于这样的机器人130,这意味着它们具有与已经安装给定机器人130的用户相同的权利。此特征也可用于高密度(hd)机器人,这确保了对每台机器的最大潜力的充分利用。在一些实施例中,任何类型的机
器人130都可以被配置在hd环境中。
58.在一些实施例中,机器人130被拆分成若干组件,每个组件专用于特定的自动化任务。一些实施例中的机器人组件包括但不限于scm管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。scm管理的机器人服务管理和监测会话,并充当协调器120和执行主机(即,在其上执行机器人130的计算系统)之间的代理。这些服务受信任并管理针对机器人130的凭证。控制台应用由本地系统下的scm启动。
59.在一些实施例中,用户模式机器人服务管理和监测会话,并充当协调器120和执行主机之间的代理。用户模式机器人服务可以受信任并管理针对机器人130的凭证。如果未安装scm管理的机器人服务,则可以自动启动应用。
60.执行器可以在会话下运行给定作业(即,它们可以执行工作流)。执行器可以知道每个监视器每英寸点数(dpi)设置。代理可以是presentation foundation(wpf)应用,其显示系统托盘窗口中的可用作业。代理可以是服务的客户端。代理可以请求开始或停止作业并更改设置。命令行是服务的客户端。命令行是可以请求开始作业并等待其输出的控制台应用。
61.将机器人130的组件如上面所解释的那样进行拆分有助于开发者、支持用户和计算系统更容易地运行、标识和跟踪每个组件正在执行的内容。可以通过这种方式为每个组件配置特殊行为,诸如为执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可能总是知道每个监视器的dpi设置。结果,工作流可以以任何dpi被执行,而不管在其上创建它们的计算系统的配置如何。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。对于不知道dpi或有意地被标记为不知道的应用,在一些实施例中可以禁用dpi。
62.图2是图示根据本发明的实施例的所部署的rpa系统200的架构图。在一些实施例中,rpa系统200可以是图1的rpa系统100或者可以是其一部分。应当注意,在不脱离本发明的范围的情况下,客户端侧、服务器侧或两者可以包括任何期望数目的计算系统。在客户端侧上,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可能不在计算系统210上运行。执行器212运行过程。若干业务项目可以同时运行,如图2中所示。在此实施例中,代理214(例如,服务)是针对所有执行器212的单一联系点。在此实施例中的所有消息都被日志记录到协调器230中,协调器230经由数据库服务器240、索引器服务器250或两者进一步处理它们。如上面关于图1所讨论的,执行器212可以是机器人组件。
63.在一些实施例中,机器人表示机器名称和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行多个交互式会话的计算系统(例如,server 2012)上,多个机器人可以同时运行,每个机器人使用唯一用户名处于单独的会话中。这在上文被称为hd机器人。
64.代理214还负责发送机器人的状态(例如,定期发送指示机器人仍在起作用的“心跳”消息)并下载要被执行的所需版本的封装。在一些实施例中,代理214和协调器230之间的通信总是由代理214发起。在通知场景中,代理214可以打开websocket通道,该websocket通道稍后由协调器230使用以向机器人发送命令(例如,开始、停止等)。
65.在服务器侧上,表示层(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。例如,用户可以创建机器人群组、将封装指派给机器人、分析每个机器人和/或每个过程的日志、开始和停止机器人等。
66.除了web应用232之外,协调器230还包括暴露odata rest api端点234的服务层。然而,在不脱离本发明的范围的情况下,可以包括其他端点。rest api由web应用232和代理214使用。在此实施例中,代理214是客户端计算机上的一个或多个机器人的管理者。
67.在此实施例中的rest api涵盖配置、日志记录、监测和排队功能性。在一些实施例中,配置端点可以被用来限定和配置应用用户、权限、机器人、资产、发布和环境。日志记录rest端点可以被用来日志记录不同的信息,诸如错误、由机器人发送的显式消息以及其他环境特定的信息。机器人可以使用部署rest端点来查询如果在协调器230中使用开始作业命令时应该执行的封装版本。排队rest端点可以负责队列和队列项管理,诸如将数据添加到队列,从队列中获得事务,设置事务的状态等。
68.监测rest端点可以监测web应用232和代理214。通知和监测api 236可以是被用于注册代理214、向代理214递送配置设置以及用于从服务器和代理214发送/接收通知的rest端点。在一些实施例中,通知和监测api 236也可以使用websocket通信。
69.在此实施例中,持久层包括一对服务器——数据库服务器240(例如,sql服务器)和索引器服务器250。在此实施例中,数据库服务器240存储机器人、机器人群组、关联过程、用户、角色、时间表等等的配置。在一些实施例中,此信息通过web应用232来管理。数据库服务器240可以管理队列和队列项。在一些实施例中,数据库服务器240可以存储由机器人日志记录的消息(除了索引器服务器250之外或者代替索引器服务器250)。
70.在一些实施例中可选的索引器服务器250存储和索引由机器人日志记录的信息。在某些实施例中,索引器服务器250可以通过配置设置而被禁用。在一些实施例中,索引器服务器250使用它是一个开源项目全文搜索引擎。由机器人日志记录的消息(例如,使用像日志消息或写入行这样的活动)可以通过(多个)日志记录rest端点而被发送到索引器服务器250,在那里它们被索引以供将来利用。
71.图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中被实现。然而,在不脱离本发明的范围的情况下,任何数目和/或类型的活动都可以是可用的。
72.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。
73.驱动程序340可以在低级别与os进行交互以寻找挂钩、监测按键等。它们可以促进与等的集成。例如,“点击”活动经由驱动程序340而在这些不同的应用中执行相同的角色。
74.图4是图示根据本发明的实施例的rpa系统400的架构图。在一些实施例中,rpa系统400可以是或包括图1和图2的rpa系统100和/或200。rpa系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的web应用来与协调器计算系统420通信。协调器计算系统420继而又能够与数据库服务器430和可选的索引器服务器440通信。
75.关于图1和图3,应当注意,虽然在这些实施例中使用了web应用,但是在不脱离本发明的范围的情况下可以使用任何合适的客户端/服务器软件。例如,协调器可以运行服务器侧的应用,该应用与客户端计算系统上的非基于web的客户端软件应用通信。
76.图5是图示了根据本发明实施例的被配置为使用ai/ml模型来确定与计算系统的用户交互的序列、提取公共流程以及生成rpa机器人的计算系统500的架构图。在一些实施例中,计算系统500可以是在本文中描述的一个或多个计算系统。计算系统500包括用于传递信息的总线505或其他通信机制,以及被耦合到总线505用于处理信息的(多个)处理器510。(多个)处理器510可以是任意类型的通用或专用处理器,包括中央处理器(cpu)、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、其多个实例、和/或其任意组合。(多个)处理器510也可以具有多个处理核,并且至少一些核可以被配置为执行特定功能。在一些实施例中可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一个处理器可以是包括模拟生物神经元的处理元件的神经拟态电路。在一些实施例中,神经拟态电路可以不要求冯〃诺伊曼计算架构的典型组件。
77.计算系统500还包括存储器515,用于存储信息和要由处理器(多个)510执行的指令。存储器515可由随机存取存储器(ram)、只读存储器(rom)、闪存、高速缓存、静态存储(例如磁盘或光盘)或任意其他类型的非暂态计算机可读介质或其任意组合组成。非暂态计算机可读介质可以是任意可由(多个)处理器510访问的可用介质,可以包括易失性介质、非易失性介质或两者兼有之。介质也可以是可移动的、不可移动的或两者兼有之。
78.此外,计算系统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可以包括一个或多个天线,该一个或多个天线是单个的、阵列的、相控的、开关的、波束形成的、波束控制的、其组合和/或任意其他天线配置而不偏离本发明的范围。
79.(多个)处理器510还通过总线505耦合到显示器525,例如等离子显示器、液晶显示器(lcd)、发光二极管(led)显示器、场发射显示器(fed)、有机发光二极管(oled)显示器、柔性oled显示器、柔性基板显示器、投影显示器、4k显示器、高清晰度显示器、显示器、共面转换(ips)显示器或任意其他适合向用户显示信息的显示器。显示器525可以被配置为使用电阻、电容、表面声波(saw)电容、红外、光学成像、色散信号技术、声脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3d)触摸显示器、多输入触摸显示器、多点触摸显示器等。在不脱离本发明范围的情况下,可以使用任意合适的显示设备和触觉i/o。
80.键盘530和光标控制设备535,例如计算机鼠标、触摸板等,还被耦合到总线505,以使用户能够与计算系统500对接。然而,在某些实施例中,可能不存在物理键盘和鼠标,并且用户可以仅通过显示器525和/或触摸板(未被示出)与设备交互。任意类型和组合的输入设备均可以作为设计选择。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以通过与其通信的另一计算系统与计算系统500远程交互,或者计算系统500可以自主操作。
81.存储器515存储当由(多个)处理器510执行时提供功能的软件模块。该模块包括用于计算系统500的操作系统540。该模块还包括基于ai/ml模型的模块545,其被配置为执行本文描述的全部或部分流程或其衍生物。计算系统500可以包括一个或多个包括附加功能的附加功能模块550。
82.本领域技术人员将理解,“系统”可以体现为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(pda)、蜂窝电话、平板计算设备、量子计算系统或任意其他合适的计算设备或其组合,而不偏离本发明的范围。将上述功能呈现为由“系统”执行并非旨在以任意方式限制本发明的范围,而是旨在提供本发明许多实施例的一个示例。事实上,在本文中公开的方法、系统和装置可以以符合计算技术的本地化和分布式的形式实现,包括云计算技术。计算系统可以是局域网(lan)、移动通信网络、卫星通信网络、互联网、公有云或私有云、混合云、服务器场、其任意组合等的一部分或者可被其访问。在不偏离本发明范围的情况下,可以使用任意本地化或分布式的架构。
83.应当注意的是,本说明书中描述的一些系统特征已经作为模块被呈现,以便更具体地强调它们的实现独立性。例如,模块可以以硬件电路实现,包括定制的超大规模集成电路(vlsi)电路或门阵列、现成的半导体,例如逻辑芯片、晶体管或其他分立元件。模块也可以在可编程硬件设备中实现,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、
图形处理单元等。
84.模块也可以至少部分地以软件实现,以供各种类型的处理器执行。所标识的可执行代码的单元可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、流程或功能。尽管如此,所标识模块的可执行文件不需要物理地位于一起,而是可以包括存储在不同位置的不同指令,当这些指令逻辑地结合在一起时,构成该模块并实现该模块的所描述的目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、ram、磁带、和/或用于存储数据的任意其他此类非暂态计算机可读介质而不偏离本发明的范围的。
85.事实上,可执行代码模块可以是单个指令或多个指令,并且甚至可以分布于多个不同的代码段上、不同的程序中,以及跨越多个存储设备。类似地,在本文中操作数据可以在模块内被标识和示出,并且可以以任意合适的形式呈现并在任意合适类型的数据结构中被组织。该操作数据可以作为单个数据集被收集,或者可以分布在包括不同的存储设备的不同位置,并且可以至少部分地仅作为系统或网络上的电子信号存在。
86.图6是图示了根据本发明实施例的系统600的架构图,该系统600被配置为使用ai/ml模型来确定与计算系统的用户交互的序列、提取公共流程并生成rpa机器人。系统600包括用户计算系统,例如台式计算机602、平板电脑604和智能电话606。然而,在不偏离本发明范围的情况下,可以使用任意期望的计算系统,包括但不限于智能手表、膝上型计算机等。此外,尽管图6中示出了三个用户计算系统,但是在不脱离本发明范围的情况下,可以使用任意合适数目的计算系统。例如,在一些实施例中,可以使用数十个、数百个、数千个或数百万个计算系统。
87.每个计算系统602、604、606具有运行于其上的记录器流程610,该记录器流程记录用户的屏幕或其一部分的截屏和/或视频。例如,可以在web浏览器中嵌入片段作为记录器流程610,以跟踪用户与哪些组件交互、用户输入了哪些文本、用户用鼠标点击了哪些位置/组件、用户滚动过去了哪些内容、用户在内容的特定部分停留了多长时间等。滚动过去的内容可以表明该内容可能已经有些接近,但并不完全是用户想要的。点击可以指示成功。
88.在不脱离本发明范围的情况下,记录器流程610不需要是并且可以是任意合适类型的应用,并且用任意期望的编程语言。这可以允许记录器流程610的“概括”,以使它们可以跟踪与多个应用的、或与正在与之交互的任意应用的用户交互。从头开始使用标注的训练数据可能是困难的,因为尽管其可以允许ai/ml模型学习识别各种控制,它不包括关于哪些控制被普遍使用以及如何使用的信息。使用记录器流程610,可以生成“热图”以帮助引导(bootstrap)ai/ml模型训练流程。热图可包括各种信息,例如用户使用应用的频率、用户与应用组件交互的频率、组件的位置、应用/组件的内容等。在一些实施例中,热图可以来源于屏幕分析,例如针对计算系统602、604、606的对键入和/或粘贴的文本的检测、脱字号跟踪以及活跃元素检测。一些实施例识别用户一直在与计算系统602、604、606相关联的屏幕上的何处键入或粘贴文本,可能包括热键或其他不导致可见字符出现的键,并且基于一个或多个字符出现处、光标闪烁处或两者的当前分辨率(例如,坐标)来提供屏幕上的物理位置。键入或粘贴活动的物理位置和/或脱字号的物理位置可以允许确定用
户正在键入或被关注的(多个)字段,以及用于流程发现的应用或其他应用。
89.根据上述内容,在一些实施例中,记录器流程610可以记录附加的数据以进一步帮助训练(多个)ai/ml模型,例如网络浏览器历史、热图、按键、鼠标点击、鼠标点击和/或图形元素在用户正在交互的屏幕上的位置、用户在不同时间在屏幕上观看的位置、与截屏/视频帧相关联的时间戳等。这可以有利于提供按键和/或其他可能不会导致屏幕改变的用户动作。例如,当用户按下ctrl+s以保存文件时,某些应用可能不提供视觉变化。然而,在某些实施例中,(多个)ai/ml模型可以仅基于捕获的屏幕图像进行训练。在不偏离本发明的范围的情况下,记录器流程610可以是经由rpa设计器应用、操作系统的一部分、对个人计算机(pc)或智能电话的可下载应用或任意其他软件和/或硬件生成的机器人。事实上,在一些实施例中,一个或多个记录器流程610的逻辑部分地或全部地通过物理硬件实现。
90.一些实施例在反馈循环流程中实现,该反馈循环流程连续或周期性地将当前截屏与先前截屏进行比较以标识变化。可以标识屏幕上发生视觉变化的位置,并且可以对发生变化的位置执行ocr。然后,可以将ocr的结果与键盘队列的内容(例如,通过键钩子确定)进行比较,以确定是否存在匹配。发生变化的位置可以通过将当前截屏的像素框与来自先前截屏的相同位置的像素框进行比较来确定。
91.由记录器流程610记录的图像和/或其他数据(例如,网络浏览器历史、热图、按键、鼠标点击、鼠标点击和/或图形元素在用户正在交互的屏幕上的位置、用户在不同时间在屏幕上观看的位置、与截屏/视频帧相关联的时间戳、语音输入、手势、情绪(例如,用户是否快乐、沮丧等)、生物特征(例如指纹、视网膜扫描、用户脉搏等)、与无用户活动期间相关的信息(例如,“失能开关”)、来自触觉显示器或触摸板的触觉信息、具有多触摸输入的热图等)通过网络620(例如局域网(lan)、移动通信网络、卫星通信网络、互联网及其任意组合等)被发送到服务器630。在一些实施例中,服务器630可以是公共云架构、私有云架构、混合云架构等的一部分。在某些实施例中,服务器630可以在单个计算系统630上托管多个基于软件的服务器。在一些实施例中,服务器630可以运行协调器应用,并且来自记录器流程610的数据可以作为心跳消息的一部分被定期发送。在某些实施例中,一旦已经收集了预设量的数据、一旦经过了预设时间段、或两者兼有之,则数据可以从记录器流程610被发送到服务器630。服务器630将从记录器流程610接收的数据存储在数据库640中。
92.服务器630包括ai/ml模型632。在一些实施例中,ai/ml模型632可以有执行各种功能的多个层,例如统计建模(例如,隐马尔科夫模型(hmm)),并且利用深度学习技术(例如,长短期记忆(lstm)深度学习、先前隐状态的编码等),来标识用户交互的序列。ai/ml模型632可以执行各种任务,例如从记录器流程610中提取用户交互、确定所提取的用户交互的序列、生成rpa机器人等。在一些实施例中,可以为用于确定用户交互的序列的ai/ml模型提供已被另一ai/ml模型识别的交互、以及用户交互发生的时间、屏幕上的位置等。
93.在一些实施例中,可以为用于识别任务序列的ai/ml模型632提供已被另一ai/ml模型识别的用户交互。然而,在某些实施例中,ai/ml模型632经历了使用来自用户交互的数据作为输入的训练阶段,并且ai/ml模型632被训练直到ai/ml模型632足够准确,但不会过拟合于训练数据。可接受的准确性可以取决于应用。人工审查者可以高亮标识误差(例如,通过在错误标识的元素周围绘制方框并且包括正确的标识),并且可以使用这些附加的标注的数据再次训练ai/ml模型632。一旦被充分训练,ai/ml模型632能够提供预测作为输出,
例如哪个(哪些)应用和哪个(哪些)图形元素被识别为呈现在屏幕中。
94.然而,尽管该级别的训练提供了关于什么被呈现的信息,为了确定用户交互可能需要进一步的信息,例如比较两个或更多个连续屏幕以确定键入的字符从一个到另一个出现、按下按钮、菜单选择出现等。因此,在ai/ml模型632能够识别屏幕上的图形元素和应用之后,在一些实施例中,ai/ml模型632被进一步训练以识别标注的用户与ui中的应用的交互,以理解用户采取的这种递增动作。人工审阅者可以再次高亮标识误差(例如,通过在错误标识的元素周围绘制框并且包括正确的标识),并且ai/ml模型632可以被训练,直到其准确性足够高以至于能够被部署来理解与ui的粒度用户交互。
95.在一些实施例中,一旦被训练为识别用户交互,经训练的ai/ml模型632可以用于分析视频、先前标识的用户交互、和/或来自记录器流程610的其他信息。这些所记录的信息可以包括多个/很多用户倾向于执行的交互。然后,可以分析这些交互的以用于后续自动化的公共序列。
96.在一些实施例中,ai/ml模型632(无论是标识用户交互的相同ai/ml模型或将用于序列识别的单独的ai/ml模型)需要被训练以将交互的序列识别为任务。这可以通过应用多个大小的n元语法在数据中搜索匹配序列来实现。ai/ml模型632可以被训练为使用倾向于标识有意义的序列(例如,基于频率、重要性度量等)的n的大小的范围。在一些实施例中,在滑动窗口上将n元语法应用于用户交互的序列,以标识匹配序列。
97.ai/ml模型632也可以被训练以将序列中的用户交互与rpa活动相关联。这可以通过人工审查员首先标识针对给定用户交互的rpa活动来完成。ai/ml模型632可以随着时间的推移学习预测针对某些新交互的活动。例如,如果针对菜单项的先前活动涉及在屏幕上寻找“提交”按钮图像、移动鼠标以位于按钮区域上方并点击按钮,ai/ml模型632可以学习针对“确定”按钮、“下一步”按钮等执行类似的流程。
98.在ai/ml模型632可以将交互与相应活动相关联之后,ai/ml模型632或另一流程可以被训练以生成rpa工作流,其具有完成用户交互的序列的任务的活动序列。然后,所生成的rpa工作流可以用于生成和部署rpa机器人,或者该工作流可以被发送给rpa开发者以供审核,例如通过允许rpa开发者查看和修改rpa工作流的计算系统650的应用652(例如,rpa设计器应用)。在一些实施例中,ai/ml模型632可以首先将工作流发送给rpa开发者,在rpa开发者已接受某个数目的rpa工作流而没有修改之后,在没有人工交互的情况下切换至自动生成并部署实现工作流逻辑的rpa机器人。
99.在一些实施例中,ai/ml模型632可被训练以识别完成相同任务但至少略有不同的用户交互的序列。ai/ml模型632可以生成包括用户交互之间的松散关联的概率图。然后概率图可以被“剪枝”以确定哪些序列是相关的。例如,交互可以被移除并且ai/ml模型632可以检查相同的任务是否被完成。在不偏离本发明范围的情况下,可以使用levenshtein距离、模糊匹配和/或任意其他合适的技术来确定相关序列。
100.在一些实施例中,ai/ml模型632可被训练以确定多个相关序列中最高效的路径。这可以基于交互/步骤的数目、与每个步骤相关联的时间(例如,从与用户交互相关的时间顺序的数据中的时间戳获得)等来确定。然后,可基于完成该任务的最高效的序列生成rpa工作流。
101.在一些实施例中,ai/ml模型632可被训练以在没有首先分析用户交互的序列的情
况下识别期望的结果。例如,ai/ml模型632可以被训练以识别账户创建、新用户添加、收入生成、问题解决等。然后,ai/ml模型632可以回溯与用户交互相关的数据或用户交互本身,以重新创建导致期望的结果的序列。ai/ml 632模型或另一流程可以将交互与活动相关联,并生成实现该序列的rpa工作流。
102.现代网络本质上是大型概率图。在一些实施例中,一旦确定了期望的结果,ai/ml模型632可以回溯先验,并针对实现期望的结果起最重要作用的事情进行评级。如果收入增加被确定为结果,则导致该结果的信号可被分解为子信号,并且可以确定哪个(哪些)子信号导致收入提高。
103.在一些实施例中,序列可以完全不需要被标识。例如,ai/ml模型632可以被训练为识别和跟踪交互和其重复之间的关联。例如,如果ai/ml模型632是神经网络,基于关联图,ai/ml模型632可以增强神经网络中的节点,以便倾向于选择导致期望的结果的交互。
104.根据上述内容,在一些实施例中,ai可用于端到端地执行整个流程。例如,(多个)ai/ml模型632可用于确定用户正在使用哪些应用、它们的图形元素、以及用户交互,确定用户交互的公共序列,并在没有设计时开发的情况下自动地构建和部署在运行时实现交互序列的rpa机器人。然后,可以从计算系统602、604、606的用户获得关于自动开发的机器人工作或遇到异常的场景的训练数据,这些训练数据可以被提供给服务器630并用于重训练ai/ml模型632。训练数据可包括图像中出现错误标识或元素丢失的区域、标签校正、输入校正等。该过程可重复进行,以反复改进rpa机器人。
105.ai层
106.在一些实施例中,可以使用多个ai层。每个ai层都是在数据上运行的算法(或模型),并且ai模型本身可以是在训练数据中训练的经训练的人工“神经元”的深度学习神经网络(dlnn)。各层可以串联运行、并联运行或其组合运行。
107.ai层可包括但不限于序列提取层、聚类检测层、可视化组件检测层、文本识别层(例如ocr)、音频到文本转换层、或其任意组合。然而,在不偏离本发明范围的情况下,可以使用任意期望的数目和(多个)类型的层。使用多个层可以允许系统开发屏幕上正在发生的情况的全局图像。例如,一个ai层可以执行ocr,另一ai层可以检测按钮,另一ai层可以比较序列等。模式可以由ai层单独确定,也可以由多个ai层共同确定。
108.图7是图示了根据本发明实施例的使用ai/ml模型以确定与计算系统的用户交互的序列、提取公共流程以及生成rpa机器人的流程700的流程图。在710,该流程开始于向ai/ml模型提供包括多个用户与相应用户计算系统的时间顺序的交互的数据。然后在720,ai/ml模型被训练以识别数据中的相关序列。在一些实施例中,该训练包括训练ai/ml模型通过以下来识别与用户交互的时间顺序的序列中的与任务相关的用户交互的相关序列:通过在滑动窗口上比较来自计算系统的所记录的数据中的用户交互的n元语法的序列以找到相关序列。n元语法可以包括两个或更多n值。
109.在一些实施例中,训练包括训练ai/ml模型以在确定在相关序列中是否找到任务时使用一个或多个重要性度量。在某些实施例中,一个或多个重要性度量包括动作的相关序列是否产生至少一定量的收入、节省至少一定量的收入、将任务的效率和/或速度提高至少一定量、加快客户获取流程、减少所需的通信数目、或其组合。在一些实施例中,训练包括训练ai/ml模型来确定n的最小值,使得至少大小为n的大多数序列与由用户执行的任务相
关。在某些实施例中,训练包括训练ai/ml模型以确定n的最大值,使得大于n的最大值的n元语法不被考虑。在一些实施例中,训练包括训练ai/ml模型或rpa设计器应用以将用户交互关联于rpa活动。在某些实施例中,ai/ml模型要求最小数目的相关序列来确定序列与任务相关。
110.然后在730,经训练的ai/ml模型被部署。在一些实施例中,所部署的ai/ml模型被配置为由一个或多个rpa机器人调用。在740,由经训练的ai/ml模型分析多个用户与相应计算系统的所记录的真实用户交互并确定所记录的真实用户交互中的匹配序列集合。在一些实施例中,确定匹配序列集合包括由ai/ml模型生成包括用户交互的序列之间关联的概率图,由ai/ml模型对概率图进行剪枝,以移除不相关的用户交互和序列,以及由ai/ml模型基于经剪枝的概率图确定用户交互的序列匹配作为序列集合中的集合的一部分。在某些实施例中,序列是否匹配的确定使用levenshtein距离、模糊匹配或其组合而被执行。
111.在750,每个匹配序列集合中最高效的序列被确定。在一些实施例中,最高效的序列的确定基于序列中用户交互的数目、与序列中的用户交互关联的时间、或其组合。然后在760生成实现最高效的序列的rpa工作流。rpa工作流包括实现用户交互的序列的活动。在某些实施例中,如果期望的话,在770,使一个或多个生成的rpa工作流能够被一个或多个rpa设计器应用访问,因此rpa开发者可以编辑工作流。附加地或者备选地,在780,使用最高效的序列生成相应rpa机器人。然后在790,一个或多个所生成的rpa机器人可被部署到一个或多个用户计算系统。
112.图8是图示了根据本发明实施例的使用ai/ml模型基于期望结束状态执行流程提取并生成rpa机器人的流程800的流程图。在810,该流程开始于向ai/ml模型提供包括多个用户与相应用户计算系统的时间顺序的交互的数据。然后在820,ai/ml模型被训练以识别期望的结果,并在830确定导致期望的结果的(多个)流程。例如,ai/ml模型可以被训练以识别各种期望的状态,例如账户创建、新用户添加、收入产生、问题解决等。然后ai/ml模型可以回溯与用户交互相关的数据或用户交互本身,以重新创建导致期望的结果的序列。在一些实施例中,一旦确定了期望的结果,ai/ml模型可以回溯先验,并针对实现期望的结果的最重要因素进行评级。导致该结果的信号可以被分解为子信号,并且可以确定哪个(哪些)子信号导致了该期望的结果。然后在840该ai/ml模型被部署。
113.然后在850,该ai/ml模型确定所记录的真实用户交互数据中的期望的结果。随后在860,该ai/ml模型确定导致期望的结果的用户交互(例如,在得到期望的结果之前通过尝试时间顺序的交互以试图再现期望的结果)或通过神经网络先验中的增强节点进行实验,直至期望的结果可以被再现。然后在870生成导致期望的结果的rpa工作流(例如,通过在rpa工作流中添加与用户交互相关联的活动,添加调用已经由反向传播被训练以执行任务的一个或多个ai/ml模型的一个或多个活动等)。在880,使一个或多个所生成的rpa工作流能够被一个或多个rpa设计器应用访问、相应rpa机器人被生成/部署、或两者兼有之。
114.图9图示了根据本发明实施例的表示用户交互的序列的n元语法的比较。在该示例中,序列900表示针对第一用户的时间顺序的一系列交互,序列910表示针对第二用户的时间顺序的一系列交互,序列920表示针对第三用户的时间顺序的一系列交互。在不脱离本发明范围的情况下,可以比较任意数目用户的交互。这里,用于比较的n元语法大小为5。
115.首先,将第一用户的前五次交互(a1、a2、aa3、a4、a5)的5元语法902与序列910和
920中时间顺序的5元语法进行比较。在不偏离本发明范围的情况下,可以标识和比较任意数目的不同交互。在该示例中,序列910和序列920二者在前12次交互中均包括相应匹配的5元语法912、922。由于找到了三个匹配的5元语法序列902、912、922,这可以表明该5元语法是流程自动化的潜在候选者。在一些实施例中,匹配的数目也可以被存储。
116.在为第一用户标识出5元语法的匹配序列后,可以将针对第二用户的5元语法与第三用户和任意后续用户进行比较以找到新的匹配,可能移除已经被找到的匹配序列(例如,通过将交互存储在队列数据结构中,并在找到匹配时将其从队列中移除)。该流程可以对所有用户重复进行,直至倒数第二个用户的交互被分析完成。如果考虑n的值的范围,则n可以是递增的,并且该流程可以重复直到该范围内的所有n元语法大小均已被分析完成。
117.根据本发明的实施例,图7和图8中执行的流程步骤可以由计算机程序执行,为(多个)处理器进行指令编码以执行图7和图8中描述的至少部分的流程。该计算机程序可以具体体现于非暂态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、ram、磁带和/或用于存储数据的任意其他这种介质或介质组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)以实现图7和图8中描述的全部或部分流程步骤的编码指令,其也可以被存储在计算机可读介质上。
118.计算机程序可以以硬件、软件或混合实现的方式实现。计算机程序可以由相互之间可通信的模块组成,其被设计为传递信息或指令以进行显示。计算机程序可以被配置为在通用计算机、asic或任意其他合适的设备上运行。
119.容易理解的是,本发明的各种实施例的组件,如在本文的附图中总体描述和图示的,可以以各种各样不同的配置被布置和设计。因此,本发明实施例的详细描述,如附图所示,不是旨在限制所主张的本发明的范围,而仅代表本发明的选定实施例。
120.贯穿本说明书中描述的本发明的特征、结构或特性可以以任意合适的方式在一个或多个实施例中结合。例如,贯穿本说明书中对“某些实施例”、“一些实施例”或类似的语言的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书中出现的短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言不一定都指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任意合适的方式组合。
121.应当注意的是,贯穿整个说明书中对特征、优点或类似语言的引用并不意味着本发明可以实现的所有特征和所有优点都应当在或者在本发明的任意单个实施例中。相反,提及特征和优点的语言被理解为意味着结合实施例描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的对特征和优点以及类似语言的讨论可以但不一定指同一实施例。
122.此外,所描述的特征、优点和特性可以以任意合适的方式组合于一个或多个实施例中。相关领域的技术人员将认识到,本发明可以在没有特定实施例的一个或多个特定特征或优点的情况下实施。在其他实例中,在某些实施例中可以认识到未呈现于本发明的所有实施例中的附加特征和优点。
123.本领域普通技术人员将容易理解的是,上文描述的本发明可以以不同顺序的步骤和/或不同于所公开配置的硬件元件来实施。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域技术人员而言,在保持在本发明的精神和范围内的情况下,某些修
改、变型和备选结构将是显而易见的。因此,为了确定本发明的边界和界限,应当参考所附权利要求。

技术特征:
1.一种计算机实现的方法,包括:由计算系统向人工智能(ai)/机器学习(ml)模型提供数据,所述数据包括多个用户与相应用户计算系统的时间顺序的交互;由所述计算系统训练所述ai/ml模型通过以下来识别与用户交互的所述时间顺序的序列中的与任务相关的用户交互的相关序列:通过在滑动窗口上比较来自所述计算系统的所记录的数据中的用户交互的n元语法的序列以找到所述相关序列,所述n元语法包括两个或更多个n值;以及部署经训练的所述ai/ml模型。2.根据权利要求1所述的计算机实现的方法,其中所部署的所述的ai/ml模型被配置为由一个或多个机器人流程自动化(rpa)机器人调用。3.根据权利要求1所述的计算机实现的方法,其中所述训练还包括:训练所述ai/ml模型来确定n的最小值,使得至少大小为n的大多数序列与由所述用户执行的任务相关。4.根据权利要求1所述的计算机实现的方法,其中所述ai/ml模型需要最小数目的相关序列来确定所述序列与任务相关。5.根据权利要求1所述的计算机实现的方法,其中所述训练还包括:训练所述ai/ml模型来确定n的最大值,使得大于所述n的所述最大值的n元语法不被考虑。6.根据权利要求1所述的计算机实现的方法,还包括:由所述计算系统训练所述ai/ml模型来在确定任务是否在所述相关序列中被找到时使用一个或多个重要性度量。7.根据权利要求6所述的计算机实现的方法,其中所述一个或多个重要性度量包括动作的相关序列是否产生至少一定量的收入、节省至少一定量的收入、将任务的效率和/或速度提高至少一定量、加快客户获取流程、减少所需的通信数目、或其组合。8.根据权利要求1所述的计算机实现的方法,还包括:训练所述ai/ml模型或机器人流程自动化(rpa)设计器应用来将用户交互与rpa活动相关联。9.根据权利要求8所述的计算机实现的方法,还包括:由所述ai/ml模型分析多个用户与相应计算系统的所记录的真实用户交互并且确定所述所记录的真实用户交互中的匹配序列集合;以及生成一个或多个相应机器人流程自动化(rpa)工作流,所述相应机器人流程自动化(rpa)工作流包括实现所确定的所述匹配序列集合中的用户交互的活动。10.根据权利要求9所述的计算机实现的方法,还包括:生成实现所生成的所述一个或多个rpa工作流的相应rpa机器人;以及将一个或多个所生成的所述rpa机器人部署到一个或多个用户计算系统。11.根据权利要求9所述的计算机实现的方法,还包括:使所生成的所述一个或多个rpa工作流对一个或多个rpa设计器应用可访问。12.根据权利要求9所述的计算机实现的方法,其中所述匹配序列集合的所述确定包括:由所述ai/ml模型生成包括用户交互的序列之间的关联的概率图;由所述ai/ml模型对所述概率图进行剪枝,以移除不相关的用户交互和序列;以及
由所述ai/ml模型基于经剪枝的所述概率图确定用户交互的序列匹配作为所述匹配序列集合中的集合的一部分。13.根据权利要求12所述的计算机实现的方法,其中所述序列是否匹配的所述确定使用levenshtein距离、模糊匹配、或其组合而被执行。14.根据权利要求9所述的计算机实现的方法,还包括:确定匹配序列集合中的最高效的序列;以及使用所述最高效的序列生成所述相应rpa工作流。15.根据权利要求14所述的计算机实现的方法,其中所述最高效的序列的所述确定基于所述序列中的用户交互的数目、与所述序列中的用户交互相关联的时间、或其组合。16.一种非暂态计算机可读介质,存储计算机程序,所述计算机程序被配置为使至少一个处理器:由人工智能(ai)/机器学习(ml)模型分析多个用户与相应计算系统的所记录的真实用户交互并且确定所述所记录的真实用户交互中的匹配序列集合;以及生成一个或多个相应机器人流程自动化(rpa)工作流,所述相应机器人流程自动化(rpa)工作流包括实现所确定的所述匹配序列集合中的用户交互的活动。17.根据权利要求16所述的非暂态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:生成实现所生成的所述一个或多个rpa工作流的相应rpa机器人;以及将一个或多个所生成的所述rpa机器人部署到一个或多个用户计算系统。18.根据权利要求16所述的非暂态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:使所生成的所述一个或多个rpa工作流对一个或多个rpa设计器应用可访问。19.根据权利要求16所述的非暂态计算机可读介质,其中所述匹配序列集合的所述确定包括:由所述ai/ml模型生成包括用户交互的序列之间的关联的概率图;由所述ai/ml模型对所述概率图进行剪枝,以移除不相关的用户交互和序列;以及由所述ai/ml模型基于经剪枝的所述概率图确定用户交互的序列匹配作为所述匹配序列集合中的集合的一部分。20.根据权利要求19所述的非暂态计算机可读介质,其中所述序列是否匹配的所述确定使用levenshtein距离、模糊匹配或其组合而被执行。21.根据权利要求16所述的非暂态计算机可读介质,其中所述计算机程序还被配置为使所述至少一个处理器:确定匹配序列集合中的最高效的序列;以及使用所述最高效的序列生成所述相应rpa工作流。22.根据权利要求21所述的非暂态计算机可读介质,其中所述最高效的序列的所述确定基于所述序列中的用户交互的数目、与所述序列中的用户交互相关联的时间、或其组合。23.根据权利要求16所述的非暂态计算机可读介质,其中所述所记录的真实用户交互中的所述匹配序列集合的所述确定包括使用一个或多个重要性度量,以及
所述一个或多个重要性度量包括动作的相关序列是否产生至少一定量的收入、节省至少一定量的收入、将任务的效率和/或速度提高至少一定量、加快客户获取流程、减少所需的通信数目、或其组合。24.根据权利要求16所述的非暂态计算机可读介质,其中相应rpa工作流的生成需要最小数目的匹配序列。25.一种系统,包括:存储器,存储计算机程序指令;以及至少一个处理器,被配置为执行所述计算机程序指令,其中所述计算机程序指令被配置为使所述至少一个处理器:由人工智能(ai)/机器学习(ml)模型分析多个用户与相应计算系统的所记录的真实用户交互并且确定所述所记录的真实用户交互中的匹配序列集合;确定所述匹配序列中的最高效的序列;以及生成一个或多个相应机器人流程自动化(rpa)工作流,所述相应机器人流程自动化(rpa)工作流包括实现所确定的所述最高效的匹配序列中的用户交互的活动。26.根据权利要求25所述的系统,其中所述计算机程序指令还被配置为使所述至少一个处理器:生成实现所生成的所述rpa工作流的rpa机器人;以及将所生成的所述rpa机器人部署到一个或多个用户计算系统。27.根据权利要求25所述的系统,其中所述计算机程序指令还被配置为使所述至少一个处理器:使所生成的所述rpa工作流对一个或多个rpa设计器应用可访问。28.根据权利要求25所述的系统,其中所述最高效的序列的所述确定基于所述序列中的用户交互的数目、与所述序列中的用户交互关联的时间、或其组合。29.根据权利要求25所述的系统,其中,所述所记录的真实用户交互中的所述匹配序列的所述确定包括使用一个或多个重要性度量,以及所述一个或多个重要性度量包括动作的相关序列是否产生至少一定量的收入、节省至少一定量的收入、将任务的效率和/或速度提高至少一定量、加快客户获取过程、减少所需的通信数目、或其组合。30.根据权利要求25所述的系统,其中相应rpa工作流的生成需要最小数目的匹配序列。

技术总结
公开了使用人工智能(AI)/机器学习(ML)模型以确定与计算系统的用户交互的序列、提取公共流程并生成机器人流程自动化(RPA)机器人。AI/ML模型可以被训练以识别用户交互的匹配n元语法和/或有利的结束状态。所记录的真实用户交互可以被分析,并且匹配序列可以被实现为RPA工作流中的对应的活动。RPA工作流中的对应的活动。RPA工作流中的对应的活动。


技术研发人员:P
受保护的技术使用者:尤帕斯公司
技术研发日:2021.10.05
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐