UiPath Autopilotを試す（Apps）

# はじめに
7月に正式にリリースされたAppsに搭載されたAutopilotについて試してみます。

StudioのAutopilotについては以下で解説しています。あわせてご覧ください。

https://qiita.com/shuy/items/2996761d592fc132464a


# 前提
Automation Cloud（Apps）　2024年7月時点　※Enterpriseライセンス


# Appsで使えるAutopilot
公式ガイドによると、AppsのAutopilotは以下の機能があります。
* テキストからアプリを生成する
* 画像またはPDFからアプリを生成する
* エンティティからアプリを生成する
* テキストから式を生成する

https://docs.uipath.com/ja/autopilot/other/latest/user-guide/autopilot-for-developers


## テキストからアプリを生成する
自然言語で書かれたプロンプトからアプリを生成する機能です。
Appsトップページのテキストエリアにプロンプトを入力します。
「エンティティを作成」にチェックすると、アプリ作成時、Data Serviceのエンティティも一緒に作成することも可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/7ca813ae-83d7-284e-b2f2-df9d53e04f0d.png)

例として以下のプロンプトを実行してみます。
`アンケートを作成する。質問は4問。第1問はテキスト入力、第2問はドロップダウンリスト、第3問はラジオボタンでYesまたはNoを選択、第4問は第3問がNoの場合のみ入力可能でテキストエリアとする。`

結果は多少修正が必要ですが、十分に合格点かなと思います。
質問1は必須にしてほしいと言っていないのに勝手に必須にされます。また質問4は質問3の回答次第で入力可能かどうかを制御してほしかったのですが、そこまでは実装してくれませんでした。

![スクリーンショット 2024-07-15 170916.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/7efe2f16-3bf3-e4a0-7ab7-d5e6a8a07e22.png)

次は以下のプロンプトを実行してみます。各入力項目については細かく指示せず、「問い合わせ」とだけ指示します。さらにセクションやボタンの色などデザインについても指示してみます。
`問い合わせのエントリーフォームを作成。問い合わせ内容セクションと連絡先セクションに分ける。送信ボタンとキャンセルボタンをページ下部に配置し、それぞれのボタンの色は別々にする。`

結果はギリギリ合格かなと思います。
「問い合わせ」に必要な項目をAutopilotが考えてくれました（名前やメールアドレスが連絡先セクションではなく問い合わせ内容セクションにあるなどおかしな部分はありますが）。また、デザインも指示通りに作ってくれました（セクションヘッダーに背景色をつけるとか、ボタンの色がビビットで見にくいので工夫してくれると尚良し）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/f9053568-fb49-3d89-d5dc-58104f548832.png)

プルダウンの中身もAutopilotがそれっぽいものを考えてくれました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/ed5effda-3b24-8485-1d33-7d4922093f5c.png)

見た目のデザインだけでなく、各コンポーネントのプロパティの設定も自動生成してくれるので、便利な機能だと思います。ただ、対話型UIではないので、作成されたアプリが全く期待したものに及ばなかった場合、アプリを消してからもう一度Autopilotで生成という風に結構手間がかかります。このあたりはアプリ作成前にプレビューするなど機能改善は必要かなと思います。
また、テンプレートみたいな見た目にこだわったおしゃれな画面は、現時点では生成できません。あくまでシンプルな画面構成のアプリです。今後のアップデートで、デザインにこだわった指示ができるようになるのでしょうか。


## 画像またはPDFからアプリを生成する
画像やPDFを読み取ってアプリを生成する機能です。
読み取りにはDocument Understandingを使用するため事前に有効化が必要です。

自然言語でのプロンプトの代わりに、PDFファイルや画像ファイルの帳票を添付すると、帳票の見た目を再現してくれます。

会社や役所などに山ほどある、おそらくExcelで作られた帳票を添付してみます。

![スクリーンショット 2024-07-18 090459.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/87b0fd19-3f19-d270-c578-140c63ebdf49.png)

結果は以下です（一部切り取り）。もちろん見た目を完全再現するわけではありませんが、アプリとして最低限成立できるレベルでは生成できます。

![スクリーンショット 2024-07-26 111448.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/203912ab-72f2-e5c3-26b2-75c83ae3e78e.png)

このようにExcelで帳票を作る文化は日本には根強いので、こういった機能を最大限に活用し、Webベースのアプリケーションに置き換わっていくことを期待したいです。


## エンティティからアプリを生成する
作成済みのData Serviceのエンティティに基づいたアプリを生成する機能です。

「app from entity」から既存のエンティティを選択するとプロンプトが自動作成されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/e42ee8af-2387-2a4d-f0aa-f2482dc1a16d.png)

ただし、自動で作成されたプロンプトが英語のため、このまま実行すると作成されるアプリも英語になります。日本語アプリを作成する場合は、プロンプトを日本語に訳します。

例えば、以下のようなエンティティ「Cases」を事前に作成しておき、このエンティティのエントリーフォームを作成してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/5216fafa-e087-16bb-fcac-ad19223e2dbc.png)

自動作成されるプロンプトは「Build App from 'Cases' to submit data」になるので、日本語に訳して`「Cases」からアプリを構築してデータを送信する`と入力します。

:::note warn
現状、プロンプトは直訳の方が無難です。ちょっと言葉をつけ足したりした途端、エンティティを認識しなくなります。
:::

結果は完璧です。データの型（リスト型とか）や必須項目など設定内容を反映させたアプリが作成されました。また、フィールドの表示名はいい感じに日本語翻訳された状態でアプリが作成されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/ee430190-92d3-91b0-9f56-59cbc9fe40fa.png)


## テキストから式を生成する
式エディタにおいて自然言語で書かれたプロンプトから式（VB）を生成する機能です。Studio、StudioX、StudioWebでも同様の機能があります。

先ほどのアンケートフォームで自動生成されなかった箇所（質問3の回答がNoの時だけ質問4は入力可能とする）をAutopilotで実装してみます。

![スクリーンショット 2024-07-15 171151.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89445/d23f928a-8134-a05b-113d-b6a2fa8ca266.png)

プロパティ名や変数名も考慮して式を生成してくれます。また、この機能は他のAutopilotでは見られない対話型UIになっているので、結果が良くなくてもやり直しが楽に行えます。
この機能は便利だと思うので、おそらく今後よく使うことになると思われます。


# おわりに
GAされたばかりなので、まだまだ改善の余地はありますが、現時点ではそれなりに有効な機能だと思います。
特にAppsはテンプレートなしにゼロからアプリを作成すると、結構な手間がかかるので、いい感じのテンプレートがなければ、Autopilotで自動生成するのが楽かと思います。自動生成されたアプリの見た目はシンプルなものになりますが、基本的にAppsは社内など狭い範囲で使うことが多いので、Autopilotで作成されたアプリでも十分かと思います。

一方、マイナスの部分はStudioと同様、全体的にプロンプトが改行できない点や、対話型UIではない点になるかと思います。
特に対話型UIではない機能の場合は、期待する結果を一発で得られなかった際、生成されたものを削除して、やり直すなど手間がかかってしまいます。これらは今後のアップデートで改善されることを期待したいと思います。