【UiPath】Excelファイルを置くだけ！Autopilotで社内チャットボット構築

# はじめに
- 本記事では2024年10月22日に一般利用が可能となりました **UiPath Autopilot for Everyone** のコンテキストグラウンディング機能を利用して、簡易的な社内チャットボットをノーコードで構築してみます。
- 構築手順を今すぐ知りたいというお急ぎの方は [こちら](#autopilot-for-everyone%E5%88%A9%E7%94%A8%E3%81%AE%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6) にジャンプしてください。

## UiPath Autopilotとは？
- UiPath Autopilotとは、AIを活用して日々のタスクを効率化するための機能群です。以下の特徴があります。
    -  **コンテキスト理解**: ドキュメント、画面、プロセスのコンテキストを理解し、適切なアクションを実行します。
    -  **ワークフロー設計の統合**: UiPath Studio、StudioX、Studio Webでのワークフロー設計にシームレスに統合され、開発を加速・効率化します。
    -  **自然言語対応**: 自然言語を使用して要件を伝え、複雑なタスクを実行できます。
    -  **データ処理と分析**: 大量のデータを処理し、洞察を生み出す能力があります。
    -  **データガバナンス**: データのプライバシーと企業ポリシーに準拠しています。
- Autopilotは、ユーザーの自動化ニーズに応じて幅広いタスクを処理します。詳細は [Autopilotのドキュメント](https://docs.uipath.com/ja/autopilot/other/latest/overview/about-autopilot) をご覧ください。

![uipath-autopilot-bot-3d-R-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/2b39cdef-75c4-5d3e-3235-4d23114aafca.png)

## Autopilot for Everyoneとは？
- Autopilotの機能群のうち、UiPath Assistantのユーザーインターフェースを利用し **文字通り誰でも生成AIを活用して自身の業務を自動化し生産性向上に貢献できる機能** です。
- ワークフロー作成やコーディングは不要で、すべて自然言語のやり取りで処理されます。また組み込みの **Clipboard AI** を利用してファイルからのデータ抽出や文字入力をより効率的に行うこともできます。

# Autopilotによる社内チャットボット構築のメリット
- 一般的な社内チャットボットは **RAG (Retrieval-Augmented Generation: 検索拡張生成)** アーキテクチャによって実装されるケースが多いですが、Autopilotを使って構築する場合と比較してみます。

|比較項目|RAG|Autopilot for Everyone|
|---|---|---|
|インフラ構築・管理|LLM(大規模言語モデル)・ベクトルDB・オブジェクトストレージなどのインフラをユーザー側で構築し、運用する必要があります。|Autopilotでは、UiPath Automation Cloudの一部としてLLM・ベクトルDB・オブジェクトストレージなどのインフラも提供されるため、ユーザー側での構築・運用は不要となります。|
|アプリケーション開発・保守|関連文書(ナレッジ)のインデックス化やユーザープロンプトに応じたナレッジの類似検索などアプリケーションレイヤーの実装にはPythonなどによるコーディングが必要となります。|Autopilotではノーコードでインデックス化とナレッジの問い合わせが可能になります。ワークフロー作成も不要です。|
|フロントエンド開発・保守|ユーザーからプロンプトを受け取り、後続のアプリケーションレイヤーに渡すためのフロントエンドの開発・保守が別途必要となります。ユーザーの利便性を考慮して、通常のWebアプリにするかSlackやTeamsなどのチャットシステムと連携するのか検討し、要件に合わせた実装・保守が必要となります。|AutopilotではUiPath AssistantにチャットUIがあらかじめ組み込まれているためフロントエンドを別途開発・保守する必要はありません。UiPath Studio 2024.10.5以降をインストールするだけですぐに使い始めることができます。|
|インデックス更新作業|インデックス更新作業の負担軽減も要検討です。一人の担当者に作業負荷が集中してしまうと持続できず、インデックス更新されないチャットボットはやがて使われなくなってしまいます。|Autopilotではインデックス更新作業を複数の担当者で分担して容易に行うことができます。具体的な方法は後述しますが、本記事ではExcelファイルをOneDriveに配置し、編集するだけでインデックスを更新する手順を紹介します。|

- これらを構成図で比較すると次のようになります。

![General_RAG.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/d1103a0f-e1bd-e183-cab7-d9cbdd58206e.png)

![Autopilot_RAG.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/3aaf5716-d164-c285-6abd-c83f9b4bf847.png)

# Autopilot for Everyone利用の前提条件
- Autopilot for Everyoneを利用するにはUiPath Automation Cloud (Enterprise版) とNamed Userライセンスが必要となります。残念ながらAutomation CloudのCommunity版では継続的にご利用いただけませんのでご注意ください。
- 詳細は [Autopilotライセンス](https://docs.uipath.com/ja/autopilot/other/latest/overview/licensing) をご参照ください。

# Autopilot for Everyoneによる社内チャットボット構築手順

## 1. Autopilot for Everyoneのインストール
- Automation CloudにてAutopilot for Everyoneをインストールします。詳細は↓の記事をご参照ください。

https://qiita.com/MUCHIUCHI_OJISAN/items/cafa42cb368927b492a3

## 2. 社内ナレッジのデータ準備
- 次に社内ナレッジのデータを準備します。
- Autopilotのコンテキストグラウンディングでサポートされるデータ形式は現在 `pdf,csv,json,docx,xlsx,txt` となっています。今回はシンプルに次の3つのフィールドを持つ表形式でデータを準備します。
    - **Title**: ナレッジのタイトル
    - **Description**: ナレッジの概要
    - **URL**: ナレッジ本体のURL
- サンプルとして、下記のUiPathのお役立ちリンク集をExcelにコピーし `uipath_links.xlsx` というファイル名で保存します。一旦メモ帳に貼り付けてCSVファイルとして保存し、Excelで開きなおすと良いでしょう。

```
Title,Description,URL
UiPath製品ドキュメントポータル,UiPath製品の公式ドキュメント,https://docs.uipath.com/ja
UiPathプロダクトライフサイクル,UiPath製品のサポート期間,https://docs.uipath.com/ja/overview/other/latest/overview/product-lifecycle
UiPath非推奨化のタイムライン,将来サポートが終了し、削除が予定されている機能の一覧,https://docs.uipath.com/ja/overview/other/latest/overview/deprecation-timeline
UiPath Forum 日本語ナレッジベース,UiPath製品で問い合わせの多い質問(FAQ)に対する回答を多く掲載しているサイト,https://forum.uipath.com/c/japan/japanfaq/101
Orchestrator導入ステップバイステップガイド,Orchestratorインストール手順,https://www.uipath.com/ja/community-blog/knowledge-base/orchestrator-installation-guide
Orchestratorバージョンアップガイド,Orchestratorバージョンアップガイド,https://www.uipath.com/ja/community-blog/knowledge-base/uipath-orchestrator-version-up-guide
VDI環境でのUiPath製品の展開方法,様々なVDI環境にてStudio/Robotを展開する手順,https://www.uipath.com/ja/community-blog/knowledge-base/install-step-for-vdi
Orchestratorトラブルシューティング,Orchestratorトラブルシューティング手法の紹介,https://www.uipath.com/ja/community-blog/knowledge-base/uipath-orchestrator-trouble-shooting-guide
Middlewareガイド,ミドルウェア (IIS/SQL Server) の推奨設定項目,https://www.uipath.com/ja/community-blog/knowledge-base/middleware-config-maintenance-guide
Kibanaダッシュボード,ESログ分析用Kibanaダッシュボード (Elasticsearch 6.x-8.x対応),https://www.uipath.com/ja/community-blog/knowledge-base/kibana-dashboard-template-guide
外部アプリケーション機能,外部アプリケーション機能によるOrchestrator API連携の実装手順,https://www.uipath.com/ja/community-blog/knowledge-base/implementing-orchestrator-api-with-oauth
Orchestrator サーバー証明書入れ替え手順,Orchestratorにおけるサーバー証明書の役割、有効期限切れによる影響、および入れ替えの手順,https://www.uipath.com/ja/community-blog/knowledge-base/uipath-orchestrator-change-certificate
Robot→Orchestrator 接続時のプロキシ設定,Robot→Orchestrator接続時のプロキシ設定・プロキシ認証の設定手順,https://www.uipath.com/ja/community-blog/knowledge-base/robot-orchestrator-proxy-configuration-v202210
```

![Excel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/5d34a25f-9d02-734f-f3b1-213968f630c8.png)

- `uipath_links.xlsx` ファイルをOneDriveにアップロードします。
    ![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/1103906c-1846-c2db-8bac-43f3b67ecaf5.png)

- 実際の業務においては、部署ごとのナレッジ(人事であれば就業規則などの規定集、経理であれば経費精算のルールなど)でそれぞれファイルを作成すると良いでしょう。

### ストレージバケットの準備(任意)
- OneDriveを準備できない場合にはOrhcestratorのストレージバケットに置くこともできます。
- Orchestrator管理画面にてSharedフォルダーを選択します。
- **ストレージバケット** タブにて **ストレージバケットを追加** > 新しいストレージバケットを作成 をクリックします。
    ![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/52cbf325-ac33-c749-5365-292f1fffc1f5.png)

- 任意の名前を入力して **追加** をクリックします。
    ![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/fb57f64d-b154-a85a-0279-e4fb44bd578d.png)

- `uipath_links.xlsx` ファイルをストレージバケットにアップロードします。
    ![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/7e5003c0-6fc3-6edf-0d2e-b0ae0f7a7b72.png)

## 3. AI Trust Layer ~ コンテキストグラウンディング設定
- Automation Cloudにてコンテキストグラウンディングの設定を行います。
- [Automation Cloud](https://cloud.uipath.com) に組織管理者としてログインし、管理 > AI Trust Layerをクリックします。
    ![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/68a9ef0f-ae2c-873b-45a2-571f88650eb2.png)

- **コンテキストグラウンディング** タブを選択し、テナントを選択します。
    ![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/9b0fd251-a11b-67c5-6cf5-24a8e1f14ed4.png)

- **Add new** をクリックし、次のようにインデックスを設定します。
    - **インデックス名**: 任意の名前 (例: OneDrive_Index)
    - **説明**: 任意の説明 (空白も可)
    - **Data source**:
        - OneDriveを準備できない場合には `Storage bucket` を選択し、先ほど作成したストレージバケットを選択して **Sync now** をクリックします。
            ![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/6b030dd9-9ca5-bba1-5c83-f5d7f229f871.png)

        - OneDriveを準備できる場合には `IS Connection` (以降はこの場合の設定) を選択
    - **Orchestrator folder**: `Shared` を選択
    - **Select connector**: `Microsoft OneDrive & SharePoint` を選択
        - **Add new** をクリックして新たにIntegration Serviceのコネクタを作成します。

        ![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/54caaff2-e647-9c9f-a66c-0fcd20ccd672.png)

        ![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/041063ba-d0c0-fee3-2590-4dff58ee12c0.png)

    - **Data source location**: フォルダーアイコンをクリックしてOneDriveを選択します。先ほど `uipath_links.xlsx` をアップロードしたフォルダーを選択し **Select folder** をクリックします。
        ![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/c84e4fa0-0cab-80e7-7b95-084e359f53a3.png)
    
    - **File type**: `xlsx` を選択します。
- **Sync now** をクリックします。
    ![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/e8a3d415-1dda-14b5-92d9-bb2dea585147.png)

- しばらくして最終更新日の日付が更新されていることを確認します。
    ![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/d7991458-b06f-ca84-023c-924ac8840c91.png)

## 4. AI Trust Layer ~ Autopilot for Everyoneの設定
- インデックスが作成できましたら、次にAutopilot for Everyoneの設定を行います。
- **Autopilot for Everyone** タブをクリックし、テナントを選択します。
    ![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/5e18f8bf-2e93-382e-eba0-e9f7e123dc46.png)

- **コンテキストグラウンディング** セクションを展開し、 **Enable Index** をクリックします。
    ![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/877bb5c5-be80-f21c-7c28-8a348d4aea93.png)
    
    - 先ほど作成したインデックスを指定し、説明 (例: `UiPath関連で役立つWebサイト・リンク・URL集`)を入力し、**有効化** をクリックします。
        ![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/6b7ef8a9-fc0a-d6be-efde-1446130824cc.png)

## 5. Assistantの設定
- AssistantのAutopilotタブにて歯車アイコンをクリックします。
    ![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/019ec6aa-d7e4-517f-22ba-2cfcd3a87ca8.png)

- 詳細設定のデータソースをクリックします。
    ![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/f2d5c6ea-87ce-bbde-4094-1ec9b966a1aa.png)

- 一覧に `コンテキストグラウンディング - {インデックス名}` のトグルがあり、オンになっていることを確認して設定画面を閉じます。
    ![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/9096f5de-67ef-188a-959e-f26915e372a0.png)

    - もし存在しない場合には設定画面下の**更新** ボタンをクリックします。
    - それでも表示されない場合には一度Assistantを終了して、再度起動します。

以上で社内チャットボットを利用する準備が整いました！

## 6. 社内チャットボットの利用
- Autopilotに「UiPath Forumの日本語ナレッジベースのURLを教えて」とプロンプトを入力してみましょう！
- そうすると説明文と共に [UiPath Forum 日本語ナレッジベース](https://forum.uipath.com/c/japan/japanfaq/101) へのリンクを教えてくれます。
    ![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/a6357ee0-b8a5-1bad-244a-c3798cfd40a5.png)

## 7. インデックス再更新
- ExcelファイルはOneDriveであれば権限設定により共同編集が可能です。たとえばカスタマーサポートへのURL(`https://www.uipath.com/ja/company/contact-us/contact-technical-support`)を追加してみます。
    ![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/ad23f3fa-e58a-43ed-cd95-af53eee22fba.png)

- データ更新した後は AI Trust Layer のコンテキストグラウンディング画面にて **Sync now** をクリックしてインデックスを更新します。
    ![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/cd09e903-0a21-9d4a-dab7-9258ef1821b7.png)

- しばらくしてからAssistantを再起動し、「UiPathカスタマーサポートのURLを教えて」と問い合わせると先ほど追加したURLが返されます。
    ![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/824d6e70-cb8f-75eb-5685-a764be4eff65.png)

# おわりに
本記事では新しくリリースされたUiPath Autopilot for Everyoneのコンテキストグラウンディング機能を利用して、ノーコードで社内チャットボットを作成する手順について説明しました。是非皆さまもお試しいただき日常業務の生産性向上にお役立てください！