(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-15
(54)【発明の名称】ロボティックプロセスオートメーションのための人工知能層ベースのプロセス抽出
(51)【国際特許分類】
G06N 3/08 20060101AFI20221208BHJP
【FI】
G06N3/08
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022520177
(86)(22)【出願日】2020-08-13
(85)【翻訳文提出日】2022-05-19
(86)【国際出願番号】 US2020046075
(87)【国際公開番号】W WO2021076207
(87)【国際公開日】2021-04-22
(32)【優先日】2019-10-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-12-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】シング,プラブディープ
(72)【発明者】
【氏名】バーグ,クリスチャン
(57)【要約】
ロボティックプロセスオートメーション(RPA)のための人工知能(AI)層ベースのプロセス抽出が開示される。RPAロボットおよび/または他のソースによって収集されたデータを解析して、RPAワークフローを提案または自動的に生成するために使用できるパターンを識別することができる。これらのAI層は、その中に含まれるユーザーまたはビジネスシステムプロセスのパターンを認識するために使用され得る。各AI層は、データ内の異なる特性を「検出」し、個別に、または他のAI層と協調して使用して、RPAワークフローを提案することができる。
【特許請求の範囲】
【請求項1】
複数のAI層を使用してロボティックプロセスオートメーション(RPA)のための人工知能(AI)ベースのプロセス抽出を実行するための、コンピュータにより実施される方法であって、
コンピューティングシステムによって、リスナーにより収集されたデータを検索するステップと、
前記収集されたデータを処理し、信頼度しきい値を超える前記収集されたデータ内の1つまたは複数のRPAプロセスを識別するために、前記コンピューティングシステムによって、前記複数のAI層を通して前記リスナーによって収集された前記データを実行するステップと、
前記信頼度しきい値を超えるRPAプロセスが識別された場合に、
前記コンピューティングシステムによって、前記識別されたRPAプロセスのためのRPAワークフローを生成するステップと、
前記コンピューティングシステムによって、前記識別されたRPAプロセスのための前記生成されたRPAワークフローを遂行するように構成されたロボットを生成するステップと、を含む、コンピュータにより実施される方法。
【請求項2】
前記リスナーによって収集された前記データは、それぞれのユーザーコンピューティングシステム、オーディオ、ビデオ、光、熱、動き、加速度、放射、またはこれらの任意の組み合わせとのユーザーインタラクションを含む、請求項1に記載のコンピュータにより実施される方法。
【請求項3】
前記複数のAI層は、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層、音声テキスト変換層、またはそれらの任意の組み合わせを含む、請求項1に記載のコンピュータにより実施される方法。
【請求項4】
各個々のAI層は、その推定精度に基づいて関連する修飾子を有する、請求項1に記載のコンピュータにより実施される方法。
【請求項5】
RPAワークフローは、すべてのAI層についての集合的な信頼度しきい値が超えられた場合にのみ生成される、請求項1に記載のコンピュータにより実施される方法。
【請求項6】
前記複数のAI層は、統計的モデリングを実行し、深層学習技術を利用して、信頼度しきい値を超える前記収集された前記1つまたは複数のRPAプロセスを識別するように構成される、請求項1に記載のコンピュータにより実施される方法。
【請求項7】
前記コンピューティングシステムによって、前記信頼度しきい値を超える前記識別されたRPAプロセスと類似する既存のRPAプロセスを識別するステップと、
前記コンピューティングシステムによって、前記既存のRPAプロセスが前記識別されたRPAプロセスよりも最適に機能しないと判定するステップと、
前記コンピューティングシステムによって、前記既存のRPAプロセスを遂行する既存のロボットを前記生成されたロボットと置き換えることによって、前記既存のRPAプロセスを前記識別されたRPAプロセスと置き換えるステップと、
をさらに含む、請求項1に記載のコンピュータにより実施される方法。
【請求項8】
前記既存のプロセスと前記識別されたRPAプロセスとの間の類似性は、エントロピー、プロセス検出目的関数の最小化、またはこれらの組み合わせによって判定される、請求項7に記載のコンピュータにより実施される方法。
【請求項9】
前記収集されたデータは、直列の前記複数のAI層を通して実行される、請求項1に記載のコンピュータにより実施される方法。
【請求項10】
前記収集されたデータは、並列の前記複数のAI層を通して実行される、請求項1に記載のコンピュータにより実施される方法。
【請求項11】
前記収集されたデータは、直列のAI層と並列のAI層の両方の組み合わせを通して供給される、請求項1に記載のコンピュータにより実施される方法。
【請求項12】
非一時的コンピュータ可読媒体上で具現化されたコンピュータプログラムであって、前記プログラムは、少なくとも1つのプロセッサに、
複数の人工知能(AI)層を通して複数のリスナーによって収集された前記データを実行させて、前記収集されたデータを処理させ、信頼度しきい値を超える前記収集されたデータ内の1つまたは複数のロボティックプロセスオートメーション(RPA)プロセスを識別させ、
前記識別されたRPAプロセスが前記信頼性しきい値を超える場合に、前記識別されたRPAプロセスのためのRPAワークフローを生成させるように構成される、コンピュータプログラム。
【請求項13】
前記プログラムは、前記少なくとも1つのプロセッサに、
前記識別されたRPAプロセスのための前記生成されたRPAワークフローを遂行するように構成されたロボットを生成させるようにさらに構成される、請求項12に記載のコンピュータプログラム。
【請求項14】
前記プログラムは、前記少なくとも1つのプロセッサに、
前記信頼度しきい値を超える前記識別されたRPAプロセスと類似する既存のRPAプロセスを識別させ、
前記既存のRPAプロセスが前記識別されたRPAプロセスよりも最適に機能しないと判定させ、
前記既存のRPAプロセスを遂行する既存のロボットを前記生成されたロボットと置き換えることによって、前記既存のRPAプロセスを前記識別されたRPAプロセスと置き換えさせるようにさらに構成される、請求項13に記載のコンピュータプログラム。
【請求項15】
前記既存のプロセスと前記識別されたRPAプロセスとの間の類似性は、エントロピー、プロセス検出目的関数の最小化、またはこれらの組み合わせによって判定される、請求項14に記載のコンピュータプログラム。
【請求項16】
前記複数のリスナーによって収集された前記データは、それぞれのユーザーコンピューティングシステム、オーディオ、ビデオ、光、熱、動き、加速度、放射、またはこれらの任意の組み合わせとのユーザーインタラクションを含む、請求項12に記載のコンピュータプログラム。
【請求項17】
前記収集されたデータは、直列の前記複数のAI層を通して実行されるか、または前記収集されたデータは、並列の前記複数のAI層を通して実行される、請求項12に記載のコンピュータプログラム。
【請求項18】
前記収集されたデータは、直列のAI層と並列のAI層の両方の組み合わせを通して供給される、請求項12に記載のコンピュータプログラム。
【請求項19】
装置であって、
複数のAI層を使用してロボティックプロセスオートメーション(RPA)のための人工知能(AI)ベースのプロセス抽出を実行するためのコンピュータプログラム命令を格納するメモリと、
前記メモリに通信可能に結合され、前記コンピュータプログラム命令を実行するように構成された少なくとも1つのプロセッサと、を含み、前記命令は、前記少なくとも1つのプロセッサに、
複数のAI層を通して複数のリスナーによって収集された前記データを実行させて、前記収集されたデータを処理させ、信頼度しきい値を超える前記収集されたデータ内の1つまたは複数のRPAプロセスを識別させ、
識別されたRPAプロセスが前記信頼性しきい値を超える場合に、前記識別されたRPAプロセスのためのRPAワークフローを生成させるように構成され、
前記収集されたデータは、直列、並列、または直列と並列の両方の組み合わせで前記複数のAI層を通して実行される、装置。
【請求項20】
前記命令は、前記少なくとも1つのプロセッサに、
前記識別されたRPAプロセスのための前記生成されたRPAワークフローを遂行するように構成されたロボットを生成させ、
前記信頼度しきい値を超える前記識別されたRPAプロセスと類似する既存のRPAプロセスを識別させ、
前記既存のRPAプロセスが前記識別されたRPAプロセスよりも最適に機能しないと判定させ、
前記既存のRPAプロセスを遂行する既存のロボットを前記生成されたロボットと置き換えることによって、前記既存のRPAプロセスを前記識別されたRPAプロセスと置き換えさせるようにさらに構成される、請求項19に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2019年12月9日に出願された米国非仮特許出願第16/707,705号および2019年10月15日に出願された米国仮特許出願第62/915,351号の利益を主張する。これらの先願の主題は、その全体が参照により本明細書に組み込まれる。
【0002】
本発明は、一般に、ロボティックプロセスオートメーション(RPA)に関し、より具体的には、RPAのための人工知能(AI)層ベースのプロセス抽出に関する。
【背景技術】
【0003】
RPAロボットを使用して、ビジネスコンピューティングシステムから大量のデータを収集することができる。しかしながら、このデータは、それ自体ではRPAまたはそれに対する改善を促進しない。実際、企業は、RPAから利益を得ることができるプロセスを認識している場合も、認識していない場合もある。したがって、RPA用のデータを解析し、そこからプロセスを抽出するための改善された機構が有益であり得る。
【発明の概要】
【0004】
本発明の特定の実施形態は、現在のRPA技術によってまだ完全に識別、認識、または解決されていない当技術分野の問題および必要性に対するソリューションを提供することができる。例えば、本発明のいくつかの実施形態は、RPAのAI層ベースのプロセス抽出に関する。
【0005】
一実施形態では、複数のAI層を使用してRPAのためのAIベースのプロセス抽出を実行するためのコンピュータにより実施される方法は、コンピューティングシステムによって、リスナーによって収集されたデータを検索するステップを含む。コンピュータにより実施される方法はまた、コンピューティングシステムによって、複数のAI層を通してリスナーによって収集されたデータを実行して、収集されたデータを処理するステップを含む。信頼度しきい値を超える潜在的なRPAプロセスが識別されると、コンピュータにより実施される方法は、コンピューティングシステムによって、識別されたRPAプロセスのためのRPAワークフローを生成するステップと、コンピューティングシステムによって、識別されたRPAプロセスのために生成されたRPAワークフローを遂行するように構成されたロボットを生成するステップと、をさらに含む。
【0006】
別の実施形態では、コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化される。プログラムは、少なくとも1つのプロセッサに、複数のAI層を通して複数のリスナーによって収集されたデータを実行させて、収集されたデータを処理させ、信頼度しきい値を超える収集されたデータ内の1つまたは複数の潜在的なRPAプロセスを識別させるように構成される。プログラムはまた、識別されたRPAプロセスが信頼度しきい値を超える場合に、少なくとも1つのプロセッサに、識別されたRPAプロセスのためのRPAワークフローを生成させるように構成される。
【0007】
さらに別の実施形態では、装置は、複数のAI層を使用してRPAのAIベースのプロセス抽出を実行するためのコンピュータプログラム命令を格納するメモリと、メモリに通信可能に結合され、コンピュータプログラム命令を実行するように構成された少なくとも1つのプロセッサと、を含む。命令は、少なくとも1つのプロセッサに、複数のAI層を通して複数のリスナーによって収集されたデータを実行させて、収集されたデータを処理させ、信頼度しきい値を超える収集されたデータ内の1つまたは複数のRPAプロセスを識別させるように構成される。命令はまた、識別されたRPAプロセスが信頼度しきい値を超えた場合に、少なくとも1つのプロセッサに、識別されたRPAプロセスのためのRPAワークフローを生成させるように構成される。収集されたデータは、直列、並列、または直列と並列の両方の組み合わせで複数のAI層を通して実行される。
【図面の簡単な説明】
【0008】
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより具体的な説明は、添付の図面に示されている特定の実施形態を参照することによって提供される。これらの図面は、本発明の典型的な実施形態のみを示しており、したがってその範囲を限定するものと見なされるべきではないことを理解されたいが、本発明は、添付の図面を使用することによって追加の具体性および詳細を伴って説明および説明される。
【0009】
【
図1】本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
【0010】
【
図2】本発明の一実施形態による、展開されたRPAシステムを示すアーキテクチャ図である。
【0011】
【
図3】本発明の一実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
【0012】
【
図4】本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
【0013】
【
図5】本発明の一実施形態による、RPAのための複数のAI層ベースのプロセス抽出を実行するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
【0014】
【
図6】本発明の一実施形態による、複数のAI層を使用してRPAのためのAIベースのプロセス抽出を実行するように構成されたシステムを示すアーキテクチャ図である。
【0015】
【
図7】本発明の一実施形態による、AI層を使用したRPAのためのAIベースのプロセス抽出のためのプロセスを示すフローチャートである。
【0016】
【
図8】本発明の一実施形態による、AI層を使用したRPAのためのAIベースのプロセス抽出のためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【0017】
いくつかの実施形態は、RPAのAI層ベースのプロセス抽出に関する。そのような実施形態は、RPAロボットおよび/または他のソースによって収集されたデータを解析して、RPAワークフローを提案または自動的に生成するために使用できるパターンを識別することができる。これらのAI層は、その中に含まれるユーザーまたはビジネスシステムプロセスのパターンを認識するために使用され得る。各AI層は、データ内の異なる特性を「検出」し、個別に、または他のAI層と協調して使用して、RPAワークフローを提案することができる。
【0018】
図1は、本発明の一実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計および実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合、ならびに第三者アプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化するためのソリューションを提供することができる。デザイナ110は、ビジネスプロセスのグラフィカル表現である自動化プロジェクトの開発を容易にすることができる。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発およびデプロイメントを容易にする。
【0019】
自動化プロジェクトは、本明細書で「アクティビティ」と定義される、ワークフローで開発されたステップのカスタムセット間の遂行順序および関係の制御を開発者に与えることによって、ルールベースのプロセスの自動化を可能にする。デザイナ110の一実施形態の一商用例は、UiPath Studio(商標)である。各アクティビティは、ボタンのクリック、ファイルの読み取り、ログパネルへの書き込みなどのアクションを含むことができる。いくつかの実施形態では、ワークフローはネストまたは埋め込みされてもよい。
【0020】
いくつかのタイプのワークフローは、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラを含むことができるが、これらに限定されない。シーケンスは、ワークフローを乱すことなく1つのアクティビティから別のアクティビティへの流れを可能にする線形プロセスに特に適することができる。フローチャートは、より複雑なビジネスロジックに特に適しており、複数の分岐論理演算子を通してより多様な方法で決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している場合がある。FSMは、条件(すなわち、遷移)またはアクティビティによってトリガされる有限数の状態をそれらの遂行において使用することができる。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を判定し、プロセスをデバッグするのに特に適することができる。
【0021】
ワークフローがデザイナ110で開発されると、ビジネスプロセスの遂行は、デザイナ110で開発されたワークフローを遂行する1つまたは複数のロボット130を編成するコンダクタ120によって編成される。コンダクタ120の一実施形態の一商用例は、UiPathオーケストレータ(商標)である。コンダクタ120は、環境内のリソースの作成、監視、およびデプロイメントの管理を容易にする。コンダクタ120は、第三者のソリューションおよびアプリケーションとの統合ポイントとして機能することができる。
【0022】
コンダクタ120は、集中ポイントからロボット130を接続し遂行するすべてのロボット130を管理することができる。管理され得るロボット130のタイプは、これらに限定されないが、アテンディッドロボット132、アンアテンディッドロボット134、開発ロボット(アンアテンディッドロボット134と同様であるが、開発および試験の目的で使用される)、および非生産ロボット(アテンディッドロボット132と同様であるが、開発および試験の目的で使用される)を含む。アテンディッドロボット132は、ユーザーイベントによってトリガされ、同じコンピューティングシステム上で人間と一緒に動作する。アテンディッドロボット132は、集中プロセスデプロイメントおよび記録媒体のためのコンダクタ120と共に使用することができる。アテンディッドロボット132は、人間のユーザーが様々なタスクを達成するのを助けることができ、ユーザーイベントによってトリガすることができる。いくつかの実施形態では、プロセスは、このタイプのロボットのコンダクタ120から開始することができず、および/またはロックされた画面の下で実行することができない。特定の実施形態では、アテンディッドロボット132は、ロボットトレイまたはコマンドプロンプトからのみ起動することができる。いくつかの実施形態では、アテンディッドロボット132は人間の監督下で動作するべきである。
【0023】
アンアテンディッドロボット134は、仮想環境で無人で動作し、多くのプロセスを自動化することができる。アンアテンディッドロボット134は、リモート遂行、監視、スケジューリング、および作業待ち行列のサポートの提供を担当することができる。いくつかの実施形態では、すべてのロボットタイプのデバッグを、デザイナ110で実行することができる。アテンディッドロボットおよびアンアテンディッドロボットの両方は、メインフレーム、ウェブアプリケーション、VM、エンタープライズアプリケーション(例えば、SAP(登録商標)、SalesForce(登録商標)、Oracle(登録商標)などによって製造されたもの)、およびコンピューティングシステムアプリケーション(例えば、デスクトップおよびラップトップアプリケーション、モバイルデバイスアプリケーション、ウェアラブルコンピュータアプリケーションなど)を含むがこれらに限定されない様々なシステムおよびアプリケーションを自動化することができる。
【0024】
コンダクタ120は、プロビジョニング、デプロイメント、構成、キューイング、監視、ロギング、および/または相互接続性の提供を含むがこれらに限定されない様々な機能を有することができる。プロビジョニングは、ロボット130とコンダクタ120(例えば、ウェブアプリケーション)との間の接続の作成および保守を含むことができる。デプロイメントは、遂行のために割り当てられたロボット130へのパッケージバージョンの正しい配信を保証することを含むことができる。構成は、ロボット環境およびプロセス構成の維持および配信を含むことができる。キューイングは、キューおよびキュー項目の管理を提供することを含むことができる。監視は、ロボット識別データを追跡し、ユーザー権限を維持することを含むことができる。ロギングは、データベース(例えば、SQLデータベース)および/または別のストレージ機構(例えば、大規模なデータセットを格納し、迅速にクエリする能力を提供するElasticSearch(登録商標))へのログの格納およびインデックス付けを含むことができる。コンダクタ120は、第三者のソリューションおよび/またはアプリケーションのための通信の集中ポイントとして作用することによって相互接続性を提供することができる。
【0025】
ロボット130は、デザイナ110に構築されたワークフローを実行する遂行エージェントである。ロボット130のいくつかの実施形態の一商用例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトでMicrosoft Windows(登録商標)Service Control Manager(SCM)管理サービスをインストールする。結果として、そのようなロボット130は、ローカルシステムアカウントの下でインタラクティブなWindows(登録商標)セッションを開き、Windows(登録商標)サービスの権利を有することができる。
【0026】
いくつかの実施形態では、ロボット130は、ユーザーモードで設置することができる。このようなロボット130の場合、これは、所与のロボット130が設置されているユーザーと同じ権利を有することを意味する。この特徴は、その最大の可能性で各機械の完全な利用を保証する高密度(HD)ロボットにも利用可能であり得る。いくつかの実施形態では、任意のタイプのロボット130をHD環境で構成することができる。
【0027】
いくつかの実施形態におけるロボット130は、各々が特定の自動化タスク専用であるいくつかのコンポーネントに分割される。いくつかの実施形態におけるロボットコンポーネントは、SCM管理ロボットサービス、ユーザーモードロボットサービス、エグゼキュータ、エージェント、およびコマンドラインを含むが、これらに限定されない。SCM管理ロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホスト(すなわち、ロボット130が遂行されるコンピューティングシステム)との間のプロキシとして機能する。これらのサービスは、ロボット130の資格情報で信頼され、管理する。コンソールアプリケーションは、ローカルシステムの下でSCMによって起動される。
【0028】
いくつかの実施形態におけるユーザーモードロボットサービスは、Windows(登録商標)セッションを管理および監視し、コンダクタ120と遂行ホストとの間のプロキシとして機能する。ユーザーモードロボットサービスは、ロボット130のための資格情報を信頼し管理することができる。SCM管理ロボットサービスがインストールされていない場合、Windows(登録商標)アプリケーションを自動的に起動することができる。
【0029】
エグゼキュータは、Windows(登録商標)セッション下で所与のジョブを実行することができる(すなわち、エグゼキュータはワークフローを遂行することができる)。エグゼキュータは、モニターごとのドット/インチ(DPI)設定を認識することができる。エージェントは、システムトレイウィンドウに利用可能なジョブを表示するWindows(登録商標)Presentation Foundation(WPF)アプリケーションであってもよい。エージェントは、サービスのクライアントであってもよい。エージェントは、ジョブの開始または停止および設定の変更を要求することができる。コマンドラインは、サービスのクライアントである。コマンドラインは、ジョブの開始を要求し、その出力を待つことができるコンソールアプリケーションである。
【0030】
上記で説明したようにロボット130のコンポーネントを分割することは、開発者、サポートユーザー、およびコンピューティングシステムが各コンポーネントが遂行しているものをより容易に実行、識別、および追跡するのに役立つ。このようにして、エグゼキュータおよびサービスに対して異なるファイアウォールルールを設定するなど、特別な挙動をコンポーネントごとに構成することができる。エグゼキュータは、いくつかの実施形態では、モニターごとにDPI設定を常に認識することができる。結果として、ワークフローは、それらが作成されたコンピューティングシステムの構成にかかわらず、任意のDPIで遂行され得る。いくつかの実施形態では、デザイナ110からのプロジェクトは、ブラウザのズームレベルとは無関係であってもよい。DPIを認識していない、または意図的に認識していないとマークされたアプリケーションの場合、いくつかの実施形態ではDPIを無効にすることができる。
【0031】
図2は、本発明の一実施形態による、展開されたRPAシステム200を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム200は、
図1のRPAシステム100であってもよいし、その一部であってもよい。クライアント側、サーバー側、またはその両方は、本発明の範囲から逸脱することなく、任意の所望の数のコンピューティングシステムを含むことができることに留意されたい。クライアント側では、ロボットアプリケーション210は、エグゼキュータ212と、エージェント214と、デザイナ216と、を含む。しかしながら、いくつかの実施形態では、デザイナ216は、コンピューティングシステム210上で実行されていなくてもよい。エグゼキュータ212は、実行中のプロセスである。
図2に示すように、いくつかのビジネスプロジェクトが同時に実行されてもよい。エージェント214(例えば、Windows(登録商標)サービス)は、この実施形態ではすべてのエグゼキュータ212に対する単一の接続ポイントである。この実施形態におけるすべてのメッセージは、データベースサーバー240、インデクササーバー250、またはその両方を介してそれらをさらに処理するコンダクタ230にログされる。
図1に関して上述したように、エグゼキュータ212はロボットコンポーネントであってもよい。
【0032】
いくつかの実施形態では、ロボットは、機械名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理することができる。同時に実行される複数のインタラクティブなセッション(例えば、Windows(登録商標)Server 2012)をサポートするコンピューティングシステムでは、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで同時に実行される複数のロボットが存在してもよい。これは、上記ではHDロボットと呼ばれる。
【0033】
エージェント214はまた、ロボットのステータス(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)を送信し、遂行されるパッケージの必要なバージョンをダウンロードする役割も担う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では常にエージェント214によって開始される。通知シナリオでは、エージェント214は、ロボットにコマンド(例えば、始動、停止など)を送信するためにコンダクタ230によって後で使用されるWebSocketチャネルを開くことができる。
【0034】
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーション・プログラミング・インターフェース(API)エンドポイント234、ならびに通知および監視236)、サービス層(API実装/ビジネスロジック238)、永続層(データベースサーバー240、インデクササーバー250)が含まれる。コンダクタ230は、ウェブアプリケーション232、OData REST APIエンドポイント234、通知および監視236、ならびにAPI実装/ビジネスロジック238を含む。いくつかの実施形態では、ユーザーがコンダクタ220のインターフェース内で(例えば、ブラウザ220を介して)実行するほとんどのアクションは、様々なAPIを呼び出すことによって実行される。そのようなアクションは、本発明の範囲から逸脱することなく、ロボット上のジョブの開始、キュー内のデータの追加/削除、無人で実行するためのジョブのスケジューリングなどを含むことができるが、これらに限定されない。ウェブアプリケーション232は、サーバープラットフォームのビジュアル層である。この実施形態では、ウェブアプリケーション232は、ハイパーテキストマークアップ言語(HTML)およびJavaScript(JS)を使用する。しかしながら、本発明の範囲から逸脱することなく、任意の所望のマークアップ言語、スクリプト言語、または任意の他のフォーマットを使用することができる。ユーザーは、コンダクタ230を制御するための様々なアクションを実行するために、この実施形態ではブラウザ220を介してウェブアプリケーション232からのウェブページとインタラクトする。例えば、ユーザーは、ロボットグループを作成し、ロボットにパッケージを割り当て、ロボットごとおよび/またはプロセスごとにログを解析し、ロボットを起動および停止することなどができる。
【0035】
ウェブアプリケーション232に加えて、コンダクタ230はまた、OData REST APIエンドポイント234を公開するサービス層を含む。しかしながら、本発明の範囲から逸脱することなく、他のエンドポイントが含まれてもよい。REST APIは、ウェブアプリケーション232とエージェント214の両方によって消費される。エージェント214は、この実施形態ではクライアントコンピュータ上の1つまたは複数のロボットの管理者である。
【0036】
この実施形態におけるREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションユーザー、権限、ロボット、アセット、リリース、および環境を定義および構成するために使用され得る。例えば、エラー、ロボットによって送信された明示的なメッセージ、および他の環境固有の情報などの様々な情報をログに記録するために、RESTエンドポイントをロギングすることができる。開始ジョブコマンドがコンダクタ230内で使用される場合に遂行されるべきパッケージバージョンをクエリするために、デプロイメントRESTエンドポイントがロボットによって使用されてもよい。RESTエンドポイントをキューイングすることは、キューにデータを追加すること、キューからトランザクションを取得すること、トランザクションの状態を設定することなど、キューおよびキュー項目管理を担当することができる。
【0037】
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視することができる。通知監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送信/受信に使用されるRESTエンドポイントであってもよい。通知監視API236はまた、いくつかの実施形態では、WebSocket通信を使用してもよい。
【0038】
永続層は、この実施形態におけるサーバーのペア、すなわちデータベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。この実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態ではウェブアプリケーション232を通して管理される。データベースサーバー240は、キューおよびキュー項目を管理することができる。いくつかの実施形態では、データベースサーバー240は、(インデクササーバー250に加えて、またはその代わりに)ロボットによって記録されたメッセージを格納することができる。
【0039】
インデクササーバー250は、いくつかの実施形態ではオプションであり、ロボットによって記録された情報を格納し、インデックス付けする。特定の実施形態では、インデクササーバー250は、構成設定を通じて無効にすることができる。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトのフルテキスト検索エンジンであるElasticSearch(登録商標)を使用する。ロボット(例えば、ログメッセージまたは行書き込みのようなアクティビティを使用する)によってログされたメッセージは、ロギングRESTエンドポイントを通してインデクササーバー250に送信されてもよく、そこでそれらは将来の利用のためにインデックス付けされる。
【0040】
図3は、本発明の一実施形態による、デザイナ310、アクティビティ320、330、およびドライバ340の間の関係300を示すアーキテクチャ図である。上記により、開発者は、デザイナ310を使用して、ロボットによって遂行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUI自動化アクティビティ330を含むことができる。いくつかの実施形態は、本明細書ではコンピュータビジョン(CV)と呼ばれる、画像内の非テキスト視覚成分を識別することができる。そのようなコンポーネントに関係するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素存在、リフレッシュ範囲、ハイライトなどを含み得るが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学文字認識(OCR)、ファジー文字マッチング、およびマルチアンカーを使用して要素を識別し、それをクリックする。タイプは、上記および要素内のタイプを使用して要素を識別することができる。テキストを取得し、OCRを使用して特定のテキストの位置を識別し、それをスキャンすることができる。ホバーは、要素を識別し、それをホバーすることができる。要素が存在することは、上述した技術を使用して、画面上に要素が存在するかどうかをチェックすることができる。いくつかの実施形態では、デザイナ310に実装することができるアクティビティは、数百または数千であってもよい。しかしながら、本発明の範囲から逸脱することなく、任意の数および/またはタイプのアクティビティが利用可能であり得る。
【0041】
UI自動化アクティビティ330は、下位レベルコード(例えば、CVアクティビティ)に書き込まれ、画面とのインタラクションを容易にする特別な低レベルのアクティビティのサブセットである。UI自動化アクティビティ330は、ロボットが所望のソフトウェアとインタラクトすることを可能にするドライバ340を介したこれらのインタラクションを容易にする。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含んでもよい。
【0042】
ドライバ340は、フックを探し、キーを監視するなど、低レベルでOSとインタラクトすることができる。それらは、Chrome(登録商標)、IE(登録商標)、Citrix(登録商標)、SAP(登録商標)などとの統合を容易にすることができる。例えば、「クリック」アクティビティは、ドライバ340を介してこれらの異なるアプリケーションで同じ役割を実行する。
【0043】
図4は、本発明の一実施形態による、RPAシステム400を示すアーキテクチャ図である。いくつかの実施形態では、RPAシステム400は、
図1および/または
図2のRPAシステム100および/または200であり得るか、それらを含み得る。RPAシステム400は、ロボットを実行する複数のクライアントコンピューティングシステム410を含む。コンピューティングシステム410は、その上で実行されるウェブアプリケーションを介してコンダクタコンピューティングシステム420と通信することができる。次に、コンダクタコンピューティングシステム420は、データベースサーバー430および任意選択のインデクササーバー440と通信することができる。
【0044】
図1および
図3に関して、これらの実施形態ではウェブアプリケーションが使用されているが、本発明の範囲から逸脱することなく、任意の適切なクライアント/サーバーソフトウェアを使用できることに留意されたい。例えば、コンダクタは、クライアントコンピューティングシステム上の非ウェブベースのクライアントソフトウェアアプリケーションと通信するサーバー側アプリケーションを実行することができる。
【0045】
図5は、本発明の一実施形態による、RPAのための複数のAI層ベースのプロセス抽出を実行するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に図示および/または記載されたコンピューティングシステムのうちの1つまたは複数であってもよい。コンピューティングシステム500は、情報を通信するためのバス505または他の通信機構と、情報を処理するためにバス505に結合されたプロセッサ510と、を含む。プロセッサ510は、中央プロセッシングユニット(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらの任意の組み合わせを含む、任意のタイプの汎用または専用プロセッサであってもよい。プロセッサ510はまた、複数の処理コアを有してもよく、コアの少なくともいくつかは、特定の機能を実行するように構成されてもよい。いくつかの実施形態では、複数並列処理が使用されてもよい。特定の実施形態では、プロセッサ510の少なくとも一方は、生体ニューロンを模倣する処理要素を含むニューロモーフィック回路であってもよい。いくつかの実施形態では、ニューロモーフィック回路は、フォンノイマンコンピューティングアーキテクチャの典型的なコンポーネントを必要としない場合がある。
【0046】
コンピューティングシステム500は、プロセッサ510によって遂行される情報および命令を格納するためのメモリ515をさらに含む。メモリ515は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気もしくは光ディスクなどの静的ストレージ、または任意の他のタイプの非一時的コンピュータ可読媒体、またはそれらの組み合わせの任意の組み合わせで構成することができる。非一時的コンピュータ可読媒体は、プロセッサ510によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、またはその両方を含んでもよい。媒体はまた、取り外し可能、取り外し不能、またはその両方であってもよい。
【0047】
さらに、コンピューティングシステム500は、無線接続および/または有線接続を介して通信ネットワークへのアクセスを提供するためのトランシーバなどの通信デバイス520を含む。いくつかの実施形態では、通信デバイス520は、周波数分割多元接続(FDMA)、シングルキャリアFDMA(SC-FDMA)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、直交周波数分割多重方式(OFDM)、直交周波数分割多元接続(OFDMA)、移動体用グローバルシステム(GSM)通信、汎用パケット無線サービス(GPRS)、ユニバーサル移動体通信システム(UMTS)、cdma2000、広帯域CDMA(W-CDMA)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、高速パケットアクセス(HSPA)、ロングタームエボリューション(LTE)、LTEアドバンスト(LTE-A)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB)、802.16x、802.15、ホームノードB(HnB)、Bluetooth、無線周波数識別(RFID)、赤外線データ結合(IrDA)、近距離通信(NFC)、第5世代(5G)、新無線(NR)、それらの任意の組み合わせ、ならびに/あるいは本発明の範囲から逸脱することなく、任意の他の現在存在する、または将来実施される通信規格および/またはプロトコルを使用するように構成されてもよい。いくつかの実施形態では、通信デバイス520は、本発明の範囲から逸脱することなく、単一、アレイ、位相、切り替え、ビームフォーミング、ビームステア、それらの組み合わせ、および/または任意の他のアンテナ構成である1つまたは複数のアンテナを含むことができる。
【0048】
プロセッサ510はさらに、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、またはユーザーに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ525にさらに結合される。ディスプレイ525は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ(触覚)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成され得る。本発明の範囲から逸脱することなく、任意の適切なディスプレイデバイスおよび触覚I/Oが使用され得る。
【0049】
キーボード530およびコンピュータマウス、タッチパッドなどのカーソル制御デバイス535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするためにバス505にさらに結合される。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しなくてもよく、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを通してデバイスとインタラクトすることができる。入力デバイスの任意のタイプおよび組み合わせを、設計上の選択事項として使用することができる。特定の実施形態では、物理的入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、それと通信する別のコンピューティングシステムを介してコンピューティングシステム500と遠隔でインタラクトすることができ、またはコンピューティングシステム500は自律的に動作することができる。
【0050】
メモリ515は、プロセッサ510によって遂行されると機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールは、本明細書に記載のプロセスまたはその派生物の全部または一部を実行するように構成されたプロセス抽出モジュール545をさらに含む。コンピューティングシステム500は、追加の機能を含む1つまたは複数の追加の機能モジュール550を含むことができる。
【0051】
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバー、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、もしくは任意の他の適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして提示することは、本発明の範囲を決して限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図している。実際、本明細書に開示する方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と一致する局所化された形態および分散された形態で実装されてもよい。
【0052】
本明細書に記載されたシステム特徴のいくつかは、それらの実施態様の独立性をより具体的に強調するために、モジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリートコンポーネントなどの既製の半導体を含むハードウェア回路として実装されてもよい。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。
【0053】
モジュールはまた、様々なタイプのプロセッサによって遂行するためのソフトウェアに少なくとも部分的に実装されてもよい。遂行可能コードの識別されたユニットは、例えば、オブジェクト、プロシージャ、または関数として編成することができるコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの遂行可能ファイルは、物理的に共に配置される必要はないが、論理的に共に結合されたときにモジュールを含み、モジュールの記載された目的を達成する異なる場所に格納された異なる命令を含むことができる。さらに、モジュールは、コンピュータ可読媒体に格納されてもよく、それは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/または本発明の範囲から逸脱することなくデータを格納するために使用される任意の他のそのような非一時的コンピュータ可読媒体であってもよい。
【0054】
実際、遂行可能コードのモジュールは、単一の命令、または多くの命令であってもよく、いくつかの異なるコードセグメント、異なるプログラム、およびいくつかのメモリデバイスに分散されてもよい。同様に、操作データは、本明細書ではモジュール内で識別および図示されてもよく、任意の適切な形態で具現化され、任意の適切なタイプのデータ構造内に編成されてもよい。操作データは、単一のデータセットとして収集されてもよく、または異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、システムまたはネットワーク上の電子信号としてのみ存在してもよい。
【0055】
図6は、本発明の一実施形態による、複数のAI層を使用してRPAのためのAIベースのプロセス抽出を実行するように構成されたシステム600を示すアーキテクチャ図である。システム600は、デスクトップコンピュータ602、タブレット604、スマートフォン606、およびビデオカメラ608などの任意の所望のデータソースを含むことができる。しかしながら、これらに限られるわけではないがスマートウォッチ、ラップトップコンピュータ、モノのインターネット(IoT)デバイス、車両コンピューティングシステム、マイクロフォンを備えた聴取デバイス、電子センサなどを含む任意の所望のコンピューティングシステムを、本発明の範囲から逸脱することなく使用することができる。
【0056】
各コンピューティングシステム602、604、606、608は、この実施形態ではその上にインストールされたリスナー610を有する。リスナー610は、本発明の範囲から逸脱することなく、RPAデザイナアプリケーション、オペレーティングシステムの一部、パーソナルコンピュータ(PC)もしくはスマートフォン用のダウンロード可能なアプリケーション、または任意の他のソフトウェアおよび/もしくはハードウェアを介して生成されたロボットであってもよい。実際、いくつかの実施形態では、リスナー610の1つまたは複数の論理は、物理ハードウェアを介して部分的または完全に実装される。
【0057】
リスナー610は、ネットワーク620(例えば、ローカルエリアネットワーク(LAN)、移動通信ネットワーク、衛星通信ネットワーク、インターネット、それらの任意の組み合わせなど)を介してサーバー630に送信するデータを生成する。ログされるデータは、クリックされたボタン、マウスが移動された場所、フィールドに入力されたテキスト、1つのウィンドウが最小化され、別のウィンドウが開かれたこと、ウィンドウに関連するアプリケーションなどを含み得るが、これらに限定されない。リスナー610によって生成されたデータは、コンピューティングシステム、オーディオ、ビデオ、光、熱、動き、加速度、放射などとのユーザーインタラクションに関係することができるが、これらに限定されない。いくつかの実施形態では、サーバー630は、コンダクタアプリケーションを実行することができ、データは、ハートビートメッセージの一部として定期的に送信されてもよい。特定の実施形態では、所定量のデータが収集された後に、または所定の期間が経過した後に、またはその両方で、データをサーバー630に送信することができる。サーバー630は、リスナー610から受信したデータをデータベース640に格納する。
【0058】
人間のユーザー(例えば、RPAエンジニアまたはデータサイエンティスト)によって指示されると、所定量のデータが収集されたとき、最後の解析から所定量の時間が経過したときなどに、サーバー630は、データベース640に格納されたデータにアクセスし、複数のAI層632を通してデータを実行する。AI層632は、ログデータを処理し、潜在的にいくつかの実施形態では関連する信頼度で、その中の1つまたは複数の潜在的なプロセスを識別する。特定の実施形態では、各個々のAI層632は、肯定的なプロセス識別を提供するために、関連する信頼度しきい値を有することができる。いくつかの実施形態では、AI層632が異なる精度を有する場合などに、各AI層632に重みを割り当てることができる。次いで、AI層632の集合的な信頼度レベルが特定のしきい値を超える場合には、ワークフローを生成することができる。
【0059】
AI層632は、統計的モデリング(例えば、隠れマルコフモデル(HMM))を実行し、深層学習技術(例えば、長期短期記憶(LSTM)深層学習、以前の隠れ状態の符号化など)を利用し、事例識別を実行してプロセスのアトミックインスタンスを識別することができる。請求書処理は、例えば、1つの請求書が完成した事例であってもよい。したがって、システムは、1つの事例が終了し、次の事例が開始する場所を決定する。電子メールを開くことは、例えば、事例の始まりであってもよく、事例のパターンは、変動および共通性を判定するために解析されてもよい。
【0060】
いくつかの実施形態では、識別されたプロセスは、ユーザーが精査するために列挙されてもよく、限定はしないが、所与のプロセスがRPAに対してどれだけ適切であるかを示すRPAスコア(例えば、自動化の複雑度、遂行時間、生成された収益、節約された収益、節約された時間などの重要業績評価指標に対する認識された利益に基づく)、プロセス名、総記録時間、プロセスを遂行したユーザーの数、プロセス遂行時間(例えば、少なくともまたはほとんどの時間)などを含む様々な要因によってソートされてもよい。プロセスワークフローは、ステップ、パラメータ、および相互接続を含む所与のプロセスをユーザーがクリックすると表示され得る。特定の実施形態では、クラスタリングの観点から重要であると思われるプロセスアクティビティのみが使用されてもよい。
【0061】
類似のプロセスが既に存在する場合、サーバー630は、この類似性を識別し、識別されたプロセスがあまり最適に機能しない既存のプロセスを置き換えるべきであることを知ることができる。例えば、プロセス間の類似性は、共通の開始および終了、ならびに間に入るステップにおけるある程度の統計的共通性によって決定され得る。共通性は、エントロピー、プロセス検出目的関数の最小化などによって決定され得る。
【0062】
エントロピーは、処理されている情報のランダム性の尺度であり、エントロピーが高いほど、その情報から何らかの結論を引き出すことが困難である。したがって、エントロピーが低いほど、共通性が高いことを示す。目的関数は、AIアルゴリズムが所与の目的を達成する「勝利状態」に達するのを助ける。目的関数しきい値は、いくつかの実施形態では自動的に設定されてもよく、これは、システムによって非類似であると識別されたプロセスがユーザーによって類似していると示される場合には、訓練中に修正されてもよい。次いで、サーバー630は、識別されたプロセスを含むワークフローを自動的に生成し、ワークフローを実装するロボット(または交換ロボット)を生成し、生成されたロボットをコンピューティングシステム602、604、606、608にプッシュして遂行することができる。
【0063】
あるいは、特定の実施形態では、AI層632からの提案されたプロセスは、コンピューティングシステム650上のデザイナアプリケーション652を介してRPAエンジニアに提示されてもよい。次いで、RPAエンジニアは、ワークフローをレビューし、任意の所望の変更を行い、次いで、ロボットを介してコンピューティングシステム602、604、606、608にワークフローを展開するか、またはロボットを展開させることができる。例えば、デプロイメントは、サーバー630または別のサーバー上で実行されているコンダクタアプリケーションを介して行われてもよく、これはプロセスを実施するロボットをコンピューティングシステム602、604、606、608にプッシュすることができる。いくつかの実施形態では、このワークフローデプロイメントは、デザイナアプリケーションの自動化マネージャ機能を介して実現することができ、RPAエンジニアは、単にボタンをクリックしてロボットにプロセスを実装することができる。
【0064】
AI層
【0065】
いくつかの実施形態では、複数のAI層を使用することができる。各AI層は、ログデータ上で実行されるアルゴリズム(またはモデル)であり、AIモデル自体は、訓練データで訓練された訓練済人工「ニューロン」の深層学習ニューラルネットワーク(DLNN)であってもよい。層は、直列、並列、またはそれらの組み合わせで実行されてもよい。例えば、4つのAI層を有する実施形態を考える。直列実装では、データは層1を通して実行され、その出力は層2を通して実行され、その出力は層3を通して実行され、その出力は層4を通して実行され得る。並列実装では、データは、個別に層1~4を通して実行されてもよい。組み合わせの実施態様では、データは層1および層2を通して直列に供給されてもよく、次いで出力は層3および層4を通して並列に実行され、データは層1および層2を通して並列に実行されてもよく、層1および層2の各々からの出力は、層3および層4を通して直列に供給されてもよい、などである。
【0066】
AI層は、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層(例えば、OCR)、音声テキスト変換層などを含むことができるが、これらに限定されない。しかしながら、本発明の範囲から逸脱することなく、任意の所望の数の層を使用することができる。複数の層を使用することにより、システムは画面またはプロセス内で何が起こっているかの全体像を作成することができる。例えば、1つのAI層はOCRを実行することができ、別のAI層はボタンなどを検出することができる。
【0067】
パターンは、AI層によって個別に決定されてもよいし、複数のAI層によって集合的に決定されてもよい。ユーザーアクションに関する確率または出力を使用することができる。例えば、ボタンの詳細、そのテキスト、ユーザーがクリックした場所などを判定するために、システムは、ボタンがどこにあるか、そのテキスト、画面上の位置などを知る必要があり得る。
【0068】
シーケンス抽出層は、コンピューティングシステムまたはそのユーザー(適用可能な場合)が収集されたデータから得る傾向がある同じまたは類似のアクションシーケンスを識別することができる。例えば、通話後にユーザーが特定のソフトウェアアプリケーションを開き、通話から要約を入力し、次いで要約を含む電子メールを生成する傾向がある場合には、シーケンス抽出層はこのパターンを認識し、通話を自動的に記録し、通話音声をテキストに変換し、アプリケーションを開き、テキストをアプリケーションに入力し、その内容を精査するようにユーザーに促すロジックを含むワークフローシーケンスを提案することができる。確認された場合には、ワークフローは、コンテンツと共に電子メールを自動的に生成および送信するためのロジックを含むことができる。
【0069】
クラスタリング層は、特定のタイプまたはクラスのデータ点が、類似性または非類似性に基づいてデータセット内の特定の構造およびグループ化で現れる傾向があることを検出することができる。これは、いくつかの実施形態では教師なし機械学習技術であってもよい。例は、クラスに明確に配置され得る。あるいは、確率分布がクラスにわたって使用されてもよい。
【0070】
視覚成分検出層は、画像内の視覚成分を検出し、コンピューティングシステム(または特定のタイプのコンピューティングシステム)からのデータ内の検出された成分内の共通パターンを探すことができる。いくつかの実施形態では、これは、視覚成分およびそれらの間の関係を探しているCVモデルであってもよい。
【0071】
テキスト認識層は、画像内のテキストを認識し、コンピューティングシステム(または特定のタイプのコンピューティングシステム)からのデータ内の検出されたテキスト内の共通パターンを探すことができる。例えば、画像が特定のフィールドを有する文書を含み、ユーザーがそのフィールドに特定の名前、単語、またはフレーズを入力する傾向がある場合、テキスト認識層は、このエントリがワークフローで自動化されるべきであると判断することができる。自動化は、例えば、座標内の画面位置に基づいてテキストフィールドをクリックし、テキスト「UiPath」を入力するワークフローステップを含むことができる。
【0072】
音声テキスト変換層は、データ内の音声ファイルをコンピューティングシステムが理解できる形式のデジタルテキスト(例えば、ASCII、ユニコードなど)に変換することができる。次いで、この層は、特定の単語またはフレーズが出現する傾向があると判定することができる。特定のユーザーアクティビティのコンテキストが与えられると、これは、ユーザーがソフトウェアアプリケーションの特定の部分に不満を持っていることを示すことができる。次いで、フレーズの周波数パターンを認識し、ユーザーがフレーズを話すときにヘルプウィンドウを開く自動化が提案されてもよい。例えば、ユーザーが悪態をついている場合には、それは、ユーザーがソフトウェアに不満を感じていることを示すことができる。
【0073】
AI層632によって実行される解析は、抽出プロセスの「検出側」と考えることができる。AI層632によって解析が実行された後に、ロボットの形態でこの解析から生成された自動化をコンピューティングシステム602、604、606、608にプッシュすることができる。いくつかの実施形態では、ロボットは、単一のコンピューティングシステム、または特定のタイプもしくはハードウェア能力を有するコンピューティングシステムにのみプッシュされてもよい。次いで、ロボットは、抽出プロセスを実施することによって抽出プロセスの「作動側」を実行することができる。
【0074】
図7は、本発明の一実施形態による、AI層を使用するRPAのためのAIベースのプロセス抽出のためのプロセス700を示すフローチャートである。プロセスは、710において、コンピューティングシステムリスナーによって収集されたデータを検索することから始まる。いくつかの実施形態では、リスナーからのデータは、コンピューティングシステム、オーディオ、ビデオ、光、熱、動き、加速度、放射、またはそれらの任意の組み合わせとのユーザーインタラクションを含む。720において、データは、複数のAI層を通って実行され、データのグローバルピクチャを展開する。AI層は、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層、音声テキスト変換層、またはそれらの任意の組み合わせを含む。AI層は、データを処理し、730で信頼度しきい値を超えるその中の1つまたは複数の潜在的なプロセスを識別する。いくつかの実施形態では、各個々のAI層は、その推定精度に基づいて関連する修飾子を有する。特定の実施形態では、ワークフローは、すべての層の集合的な信頼度しきい値を超えた場合にのみ生成される。740で信頼度しきい値を超えるプロセスについてワークフローが生成され、750でロボットがワークフローから生成される。
【0075】
図8は、本発明の一実施形態による、AI層を使用するRPAのためのAIベースのプロセス抽出のためのプロセス800を示すフローチャートである。プロセスは、810において、複数のコンピューティングシステムからリスナーによって収集されたデータを検索することから始まる。いくつかの実施形態では、リスナーによって収集されたデータは、それぞれのユーザーコンピューティングシステム、オーディオ、ビデオ、光、熱、動き、加速度、放射、またはそれらの任意の組み合わせとのユーザーインタラクションを含む。
【0076】
リスナーによって収集されたデータは、820で複数のAI層を通って実行され、収集されたデータを処理し、信頼度しきい値を超える収集されたデータ内の1つまたは複数のRPAプロセスを識別する。いくつかの実施形態では、複数のAI層は、シーケンス抽出層、クラスタリング検出層、視覚成分検出層、テキスト認識層、音声テキスト変換層、またはそれらの任意の組み合わせを含む。特定の実施形態では、各個々のAI層は、その推定精度に基づいて関連する修飾子を有する。いくつかの実施形態では、RPAワークフローは、すべてのAI層の集合的な信頼度しきい値を超えた場合にのみ生成される。特定の実施形態では、複数のAI層は、統計的モデリングを実行し、深層学習技術を利用して、信頼度しきい値を超える収集された1つまたは複数の潜在的なRPAプロセスを識別するように構成される。いくつかの実施形態では、収集されたデータは、直列、並列、または直列と並列の両方のAI層の組み合わせで複数のAI層を通して実行される。
【0077】
830で信頼度しきい値を超えるRPAプロセスが識別されると、840で識別されたRPAプロセスについてRPAワークフローが生成され、850で識別されたRPAプロセスについて生成されたRPAワークフローを遂行するように構成されたロボットが生成される。860において、識別された潜在的RPAプロセスと類似の既存のRPAプロセスが識別されると、870において、既存のRPAプロセスが識別された潜在的RPAプロセスよりも最適に機能しないかどうか(すなわち、識別されたプロセスがより最適であるかどうか)が判定される。そうである場合には、既存のRPAプロセスは、880において、既存のRPAプロセスを遂行する既存のロボットを生成されたロボットと置き換えることによって、識別された潜在的なRPAプロセスと置き換えられる。いくつかの実施形態では、既存のプロセスと識別された潜在的なRPAプロセスとの間の類似性は、エントロピー、プロセス検出目的関数の最小化、またはそれらの組み合わせによって決定される。
【0078】
図7および
図8で実行されるプロセスステップは、本発明の実施形態に従って、プロセッサが
図7および
図8で説明したプロセスの少なくとも一部を実行するための命令を符号化するコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化されてもよい。コンピュータ可読媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される任意の他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、コンピュータ可読媒体に格納することもできる、
図7および
図8で説明したプロセスステップの全部または一部を実施するようにコンピューティングシステムのプロセッサ(例えば、
図5のコンピューティングシステム500のプロセッサ510)を制御するための符号化命令を含むことができる。
【0079】
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実施することができる。コンピュータプログラムは、互いに動作可能に通信し、表示するために情報または命令を渡すように設計されたモジュールから構成することができる。コンピュータプログラムは、汎用コンピュータ、ASIC、または任意の他の適切なデバイス上で動作するように構成することができる。
【0080】
本発明の様々な実施形態のコンポーネントは、本明細書の図に一般的に記載および図示するように、多種多様な異なる構成で配置および設計されてもよいことが容易に理解されよう。したがって、添付の図面に表される本発明の実施形態の詳細な説明は、特許請求される本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を単に代表するものである。
【0081】
本明細書を通して説明される本発明の特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または同様の文言への言及は、実施形態に関連して説明される特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して、「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」というフレーズ、または同様の文言の出現は、必ずしもすべてが同じ実施形態のグループを指すわけではなく、記載された特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。
【0082】
本明細書を通して特徴、利点、または同様の文言を参照することは、本発明で実現され得る特徴および利点のすべてが本発明の任意の単一の実施形態であるべきであること、または本発明の任意の単一の実施形態であることを意味するものではないことに留意されたい。むしろ、特徴および利点に言及する文言は、一実施形態に関連して説明される特定の特徴、利点、または特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書を通して、特徴および利点、ならびに同様の文言の説明は、必ずしもそうとは限らないが、同じ実施形態を参照することができる。
【0083】
さらに、本発明の記載された特徴、利点、および特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。当業者は、特定の実施形態の特定の特徴または利点の1つまたは複数なしで本発明を実施できることを認識するであろう。他の例では、本発明のすべての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴および利点が認識され得る。
【0084】
当業者は、上述の本発明が、異なる順序のステップ、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施され得ることを容易に理解するであろう。したがって、本発明をこれらの好ましい実施形態に基づいて説明してきたが、本発明の趣旨および範囲内に留まりながら、特定の修正、変形、および代替構築が明らかであることは、当業者には明らかであろう。したがって、本発明の範囲を決定するために、添付の特許請求の範囲を参照すべきである。
【国際調査報告】