はじめに
最近、UiPath製品を利用する方は、よく「セマンティック」という言葉を耳にしていると思います。セマンティック(Semantic)はもともと言語学や情報科学でよく使われる概念であったが、近年はだんだんAI領域で運用されてきて、IT結合し「セマンティックAI」や「セマンティック検索」といった言葉が登場しました。簡単に言うと、セマンティックは単なるキーワード一致、あるいは文面上のテキストそのままではなく、文脈や意味を理解する技術です。
UiPathも基本的にこの意味合いでセマンティックを運用し、「セマンティック ターゲット」「セマンティック セレクター」「セマンティック アクティビティ」といった機能を作りました。
UiPathのセマンティック関連機能
| 言葉 | 機能 |
|---|---|
| セマンティック アクティビティ | フォーム操作専用のアクティビティ群 |
| セマンティック ターゲット | Healing Agentの回復戦略 |
| セマンティック セレクター | UI操作における新しい統合ターゲット メソッド |
| Semantic similarity(意味的類似性) | Integration Serviceのアクティビティ |
※今回は、主にUIAutomation関連のセマンティック機能を説明しますので、Integration ServiceのSemantic similarityアクティビティの説明を割愛します。このアクティビティは生成AIで文字列を比較し、文字列間の類似性スコア、類似性説明、最も一致する文字列といった結果を出力するアクティビティです。UIAutomationのセマンティックとは、実現する機能が異なるものの、セマンティックという単語への理解が同じです。
セマンティック アクティビティ
後ほど紹介する、セマンティック ターゲットとセマンティック セレクターは、どちらもUI操作が失敗した際の回復機能に重点を置いています。一方で、セマンティック アクティビティはフォームを操作するための専用的なツールです。セマンティック アクティビティには、
●ポップアップを閉じる
●フォームに入力
●UI要素を更新
●フォーム データを抽出
という4つのアクティビティが含まれています。本記事はデモで以上4つのアクティビティの使い方について説明しようと思います。
ポップアップを閉じる
名前の通り、ウェブページの予期せぬポップアップを閉じるアクティビティです。ほかのUI系アクティビティと異なり、「ポップアップを閉じる」は[アプリケーション/ブラウザーを使用] アクティビティの内部と外部の両方で使用できます。
見た目は以下の通りです。非常にシンプルですね。
このアクティビティには、一般モードとAI強化モードがあります。一般モードでは、閉じるボタンのテキストを指定することで、実行の際に、ロボットはそのボタンを探しにいくというイメージとなります。例えば、以下のポップアップを閉じるには、OKボタンをクリックする必要があります。「OK」を「ボタンのラベルを入力」プロパティに入れるだけで、セレクターを取らなくても、実行の際にそのテキストが入ったボタンをクリックしてくれます。
一方で、テキスト認識がうまくいかない場合は、AI強化モードを利用してAgentに任せることもできます。ただし、このモードはAIユニットが消費されます。
以下は一般モードの動作の様子です。
フォームに入力
AIを利用し、指定したデータソースの情報を対象フォームに入力するアクティビティです。
今回は以下のデモサイトに、情報を入力してみました。
「ニックネーム」と「一番好きな映画」は入力ボックスであり、通常は「文字を入力」が対応します。「性別」と「映画のジャンル」はプルダウンメニューで、通常は「項目を選択」が対応します。「生年月日」は最も厄介な、「日付選択ツール」であり、従来のRPAでエラー頻繫の要素です。
このフォームに、予め用意した以下のDataTable型の情報を入れるのが目標です。サポートされているのデータソースのデータ型はDataTableのみならず、DocumentData、Dictionary、DataEntity、JSON、さらにはカスタム型もサポートされています。
デモワークフローの構成は以下の通りです。データが2行あるため、繰り返しアクティビティの中で、「フォームに入力」を配置し、DataRow型のデータソースを指定しました。このアクティビティでは、要素の指定が一切必要ないです。データテーブルのフィールドを自動的に識別し、サイト上のフィールドと照合しながら、データを入力します。
動作の様子です。
UI要素を更新
このアクティビティは、AIを利用して入力ボックス、ドロップダウン、チェックボックス、ラジオボタン、日付の選択ツールといった入力フィールドに値を変更することができます。
このアクティビティを使い、「一番好きな映画」を「オデッセイ」に変更してみましょう。
ワークフローの構成は以下の通りです。更新したい箇所を選択するだけで済みます。特に、対象要素が入力ボックスなのか、プルダウンメニューなのかを意識する必要がありません。
動作の様子です。
フォーム データを抽出
AIを利用してフォームデータをシームレスに抽出するアクティビティです。「画面からフィールドを検出」を押すと、自動的にフォーム上のフィールドを検索し、DOMを分析します。その後、抽出結果を「フォーム データ」に保存します。出力のデータ型は、構造化データのカスタム型なので、その後はニーズによって、Jsonなどさまざまな形式に変換することができます。
今回は、RPAChallengeの以下の情報を抽出するのが目標です。
デモワークフローの構成は以下の通りです。「画面からフィールドを検出」を押すと、RPAChallenge画面上のフィールドが自動的に識別されています。特に要素を選択する必要はありません。その後、Object型のデータ型をJsonStringに変換し、メッセージボックスで表示させます。
動作の様子です。
取得した結果ですが、ほかの形に変更することができますので、ニーズに応じて設計してください。
セマンティック ターゲット
Healing Agentの回復戦略です。Healing Agentがまだ初耳の方は、LiさんのUiPath AIエージェント活用ガイド ~ Healing Agentの魅力とは?をぜひ読んでください。
以下は、UiPathドキュメントにおけるセマンティックターゲットの説明です。
入力フィールド、チェックボックス、ドロップダウンに関連付けられているラベルは、意味的に同じ別の文言に書き換えられることがあります。
たとえば、自動化されたアプリケーションに、入力フィールドとして [名] と [姓] があるとします。アプリケーションの更新で、これら 2 つのフィールド名を [ファースト ネーム] と [ラスト ネーム] に変更します。Healing Agent は、セマンティック ターゲットの回復戦略を適用して、このオートメーションを修復します。
要するに、操作対象のアプリやウェブページにおいて、要素のaaname、innertext、idといった属性が変化した場合、もしこの変化は類語変換であれば、エージェントはちゃんと変化前後の単語を比較し、類似意味であれば同じ要素だと認識して要素の失敗を回復します。
Liさんの記事では、以下の例を挙げました。こちらで少し引用させてください。
従来のRPAでは、「確定」が「確認」に変わったら、ルールベースのセレクターが機能しなくなり、エラーが発生するのに対し、Healing Agentはテキストの完全一致ではなく、意味合いの類似性を考慮した上で、要素が同じだという判断を下ることができます。それにより、失敗した操作を救い、エラーを回避します。
セマンティック セレクター
セマンティック セレクターは、UIAutomation 25.10の新しいエクスペリエンスで提供された新しいターゲット メソッドです。この機能について、以前筆者が書いたUIAutomation 25.10の新しいエクスペリエンスでも少し触れていました。
以下は公式ドキュメントの記述です。
セマンティック セレクターはUI要素の位置や構造ではなく、意味に基づいて識別するように設計されています。UI 要素の役割、目的、コンテキストをAIドリブンで把握することにより、DOM情報に基づいて UI の変化に対するオートメーションの回復力を強化します。
下図の通り、UIAutomation 25.10の新しいエクスペリエンスを有効化すると、セマンティック セレクターが現れます。ここで、AIは自動的にUI要素の意味を理解し、そのUI要素の役割などを生成します。それにより、要素の属性が変更したとしても、要素が果たした役割さえ変わらなければ、依然としてその要素を捕捉することができます。
このセレクターは、統合ターゲットのメソッドとして使われるため、統合ターゲットのプロパティで確認、それに編集することができます。AI自動生成の表現がイマイチだったら、開発者が自由記述でより正しい表現に書き換えることができます。
以下は、公式ドキュメントによるセレクター機能の比較表です。メソッドを選択する際に、非常に有用な情報であるため、ぜひご参照ください。
終わりに
UiPathが言うセマンティックは、主に以上の内容だとご理解いただければ十分だと思っております。将来は、新しいセマンティック機能が提供される可能性もあるため、またその際にご紹介いたしますね。


















