【UiPath】Azure AI Servicesと連携して画像分析・感情分析・翻訳サービスを利用する手順

# はじめに
- 本記事ではUiPath Automation CloudとAzure AI Servicesの下記サービスを連携する手順について説明します。
    - **Computer Visionサービス**: 画像を分析して説明文の生成や文字の抽出などを行います。
    - **言語サービス**: 文章を分析して書き手の感情が肯定的か否定的か判断します。
    - **翻訳サービス**: ある言語の文章を他の言語に翻訳します。

- これらの連携によってAzure AI Servicesによる画像分析・感情分析・翻訳処理を自動化ワークフローに組み込むことが可能になります。

# 構成図とIntegration Service概要
- 本記事での構成図を示します。

    ![00a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/6d89955b-82f4-5889-5c71-fddbe047a9e5.png)

- Azure AI Servicesを利用するクライアントとしてUiPath StudioまたはUiPath Studio Webを使用します。
- [Integration Service](https://docs.uipath.com/ja/integration-service/automation-cloud/latest/user-guide/introduction) はUiPathがAutomation Cloud上で提供するiPaaS(Integration Platform as a Service)です。さまざまなサードパーティアプリケーションやSaaSの認証と認可を標準化してAPI接続の管理を行い、容易に連携することが可能になります。
- Integration Serviceを利用するメリットは下記の通りです。
    - Azure AI Servicesの認証情報となるAPIキーをサーバー側で保管するため、クライアント側にAPIキーを保存することによって生じる漏洩リスクを軽減できます。またこのAPIキーはAutomation Cloudに接続しているクライアントのみ利用可能となるため、管理者によって利用ユーザーを制御することができます。
    - クライアントからのAzure AI Serviceの利用要求はIntegration Serviceによってプロキシされるため、それぞれのAzure AI Servicesのネットワーク設定ではIntegration Serviceからのアクセスのみを許可(IPフィルター)することによって安全性を高められます。

    :::note warn
    ただし翻訳サービスではIntegration Serviceの送信IPが動的になってしまうようなのでIPフィルターは使用しません。
        :::

# Azure AI Servicesの設定
- まずAzure AI Servicesを利用するための準備を行います。利用したいサービスのみをデプロイします。なお既にAzureサブスクリプションが準備されていることが前提となります。

## Computer Visionサービス (画像分析) のインスタンス作成
1. ブラウザーで [Azureポータル](https://portal.azure.com/) にサインインします。
2. Azure AI Servicesにアクセスします。 (上部の検索フィールドに `azure ai` と入力してジャンプします)

    ![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/5138d91a-8c02-926f-f8c4-ca1236252e69.png)

3. 左メニューにて **Computer Vision** をクリックし、**作成** をクリックします。

    ![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/93f8f46b-49f3-f4e2-1c12-b8d153d5aa34.png)

    :::note warn
    単独のComputer Visionサービスではない [マルチサービスリソース](https://learn.microsoft.com/ja-jp/azure/ai-services/multi-service-resource) や画像認識をカスタマイズするCustom Visionは現時点ではIntegration Serviceと連携できないためご注意ください。
        :::

4. 各設定項目を入力します。

    ![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/b94df2c4-1f62-443b-4b32-e5608ae8e1a7.png)

    - 既存の **リソースグループ** を選択するか、新規で作成します。
    - Computer Visionインスタンスの **リージョン** を選択します。一般的にはクライアントマシンに近いリージョンとして `Japan East` などを選択します。
    - **名前** はグローバルで一意な名前を入力します。
    - **価格レベル** として `Free F0` または `Standard S1` を選択します。詳細は [Azure AI Vision の価格](https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/computer-vision/) をご参照ください。

    - **「このボックスをオンにすることで、上記すべての条項を承認し、同意したことを確認します」** のチェックボックスをオンにし、**確認と作成** をクリックします。

5. 入力項目のチェックが走ります。エラーが発生した場合には内容を確認して修正します。問題なければ **作成** をクリックしてインスタンスを作成します。

6. デプロイが成功することを確認します。**リソースに移動** をクリックします。

7. 左メニューの **キーとエンドポイント** をクリックし、**キー 1** と **場所/地域**(リージョン) をそれぞれクリップボードにコピーしてメモします。

    ![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/60d98705-db0a-efed-7ce9-7057d8e1653a.png)

## 言語サービス (感情分析) のインスタンス作成
1. ブラウザーで [Azureポータル](https://portal.azure.com/) にサインインします。
2. Azure AI Servicesにアクセスします。 (上部の検索フィールドに `azure ai` と入力してジャンプします)
3. 左メニューにて **言語サービス** をクリックし、**作成** をクリックします。

    ![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/67afc4b7-317f-62e4-9b84-1b0bdcf4ad06.png)

    :::note warn
    単独の言語サービスではない [マルチサービスリソース](https://learn.microsoft.com/ja-jp/azure/ai-services/multi-service-resource) は現時点ではIntegration Serviceと連携できないためご注意ください。
        :::

4. 追加機能の選択画面では既定値のまま **リソースの作成を続行する** をクリックします。

    ![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/4bd77424-85b8-0f91-8c8d-211f94170d64.png)

5. 各設定項目を入力します。

    ![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/b85852f8-a6f5-7372-ea58-8747beb50276.png)

    - 既存の **リソースグループ** を選択するか、新規で作成します。
    - 言語サービスの **リージョン** を選択します。一般的にはクライアントマシンに近いリージョンとして `Japan East` などを選択します。
    - **名前** はグローバルで一意な名前を入力します。
    - **価格レベル** として `Free F0` または `S` を選択します。詳細は [Azure AI Language の価格](https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/language-service/) をご参照ください。
    - **「このボックスをオンにすることで、責任ある AI 通知の条項を承認し、同意したことを確認します」** のチェックボックスをオンにし、**確認と作成** をクリックします。

6. 入力項目のチェックが走ります。エラーが発生した場合には内容を確認して修正します。問題なければ **作成** をクリックしてインスタンスを作成します。
7. デプロイが成功することを確認します。リソースグループに移動し、作成された言語サービスのインスタンスをクリックします。
8. 左メニューの **キーとエンドポイント** をクリックし、**キー 1** と **エンドポイント** をそれぞれクリップボードにコピーしてメモします。

    ![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/2eede7f3-1d75-623f-69c2-423a74ff02ca.png)

## 翻訳サービスのインスタンス作成
1. ブラウザーで [Azureポータル](https://portal.azure.com/) にサインインします。
2. Azure AI Servicesにアクセスします。 (上部の検索フィールドに `azure ai` と入力してジャンプします)
3. 左メニューにて **翻訳** をクリックし、**作成** をクリックします。
    
    ![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/2b488019-12a9-795f-1d8d-b16c425cfc13.png)

    :::note warn
    単独の翻訳サービスではない [マルチサービスリソース](https://learn.microsoft.com/ja-jp/azure/ai-services/multi-service-resource) は現時点ではIntegration Serviceと連携できないためご注意ください。
        :::

4. 各設定項目を入力します。

    ![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/261e7e0a-e451-4505-79c6-9dc18bdf19da.png)

    - 既存の **リソースグループ** を選択するか、新規で作成します。
    - 言語サービスの **リージョン** を選択します。一般的にはクライアントマシンに近いリージョンとして `Japan East` などを選択します。
    - **名前** はグローバルで一意な名前を入力します。
    - **価格レベル** として `Free F0` または `Standard S1` などを選択します。詳細は [Azure AI 翻訳 の価格](https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/translator/) をご参照ください。
    - **確認と作成** をクリックします。

5. 入力項目のチェックが走ります。エラーが発生した場合には内容を確認して修正します。問題なければ　**作成** をクリックしてインスタンスを作成します。
6. デプロイが成功することを確認します。**リソースに移動** をクリックします。
7. 左メニューの **キーとエンドポイント** をクリックし、**キー 1** と **場所/地域**(リージョン) をそれぞれクリップボードにコピーしてメモします。

    ![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/6d964318-8ae4-7e98-026d-c233b1d61145.png)

# Automation Cloudの設定
- Automation CloudにてAzure AI Servicesと連携する設定を行います。
1. ブラウザーで [Automation Cloud](https://cloud.uipath.com) にサインインします。
2. 左メニューにて **Integration Service** のアイコンをクリックします。

    ![11b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/c4be5e38-e602-181c-2702-a5c0073f94cf.png)

3. 作業対象のOrchestratorフォルダーを選択します。以降は利用するAzure AI Servicesごとにコネクタの設定を行います。

## Computer Visionサービスとの連携
1. Integration Serviceのコネクタとして **Microsoft Vision** をクリックします。
    
    ![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/b5afd2e3-a324-1c08-4a6f-9e297e5ea6c8.png)

2. **Microsoft Vision に接続** をクリックします。
3. 先ほどメモしたComputer Visionのリージョンとキーを入力して、**接続** をクリックし、正常に接続できることを確認します。

    ![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/ad7f1b69-49f7-8b36-b628-11870d1fe4a0.png)

4. コネクションの名前は既定値では時刻になってしまうため、編集アイコンをクリックし識別しやすい名前(例: `MS-Vision01`)を入力しEnterキーを押下してリネームします。

    ![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/275f8aa9-6298-d169-7dd4-a553e60f52f8.png)

5. Computer Visionの既定値ではすべてのネットワークからアクセスが許可されていますので、セキュリティ強化のためIntegration Serviceからのアクセスのみに制限します。
    -  [オンプレミス アプリケーション コネクタのサポート](https://docs.uipath.com/ja/integration-service/automation-cloud/latest/user-guide/whitelisting) にて該当するAutomation CloudテナントのリージョンのIPアドレスを確認し、メモします。コミュニティユーザーの場合には欧州のIPアドレスが使用されます。
    - Azureポータル > 作成したComputer Visionのインスタンス > **ネットワーク** をクリックし、**選択したネットワークとプライベートエンドポイント** を選択します。

    ![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/649f9b63-3f51-40e1-75c9-cb525dca9736.png)

6. 先ほどメモしたIPアドレスをすべて入力し **Save** をクリックして保存します。

    ![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/744af090-8fd4-08a7-95cb-4e61665c8183.png)

7. 設定変更が反映されるまで数分ほど待ちます。Automation Cloudにて先ほどコネクションを作成したフォルダーを選択し、コネクションの縦三点リーダー > **コネクションを確認** をクリックし、正常に接続できることを確認します。

    ![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/d1b74c31-3e00-280e-0627-461599a2e8c7.png)

## 言語サービスとの連携
1. Integration Serviceのコネクタとして **Microsoft Sentiment** をクリックします。
    
    ![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/d05e9f23-50c9-9922-f842-e8ac4908ee65.png)

2. **Microsoft Sentiment に接続** をクリックします。
3. 先ほどメモした言語サービスのエンドポイントとキーを入力して、**接続** をクリックし、正常に接続できることを確認します。

    ![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/c850cfd1-47e4-d771-de12-afdbb305cde7.png)

4. コネクションの名前は既定値では時刻になってしまうため、編集アイコンをクリックし識別しやすい名前(例: `MS-Sentiment01`)を入力しEnterキーを押下してリネームします。

    ![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/c41494e8-1253-d07b-fef4-682088ae4c7e.png)

5. 言語サービスの既定値ではすべてのネットワークからアクセスが許可されていますので、セキュリティ強化のためIntegration Serviceからのアクセスのみに制限します。
    -  [オンプレミス アプリケーション コネクタのサポート](https://docs.uipath.com/ja/integration-service/automation-cloud/latest/user-guide/whitelisting) にて該当するAutomation CloudテナントのリージョンのIPアドレスを確認し、メモします。コミュニティユーザーの場合には欧州のIPアドレスが使用されます。
    - Azureポータル > 作成したComputer Visionのインスタンス > **ネットワーク** をクリックし、**選択したネットワークとプライベートエンドポイント** を選択します。

    ![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/cba1f238-cba6-affd-db0d-cbf5eccfa711.png)

6. 先ほどメモしたIPアドレスをすべて入力し **Save** をクリックして保存します。

    ![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/2afd0326-d66c-879c-d5bf-91f061e20dc5.png)

7. 設定変更が反映されるまで数分ほど待ちます。Automation Cloudにて先ほどコネクションを作成したフォルダーを選択し、コネクションの縦三点リーダー > **コネクションを確認** をクリックし、正常に接続できることを確認します。

    ![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/91f14e1c-7cd9-0bf0-9a1b-a6486952e21b.png)

## 翻訳サービスとの連携
1. Integration Serviceのコネクタとして **Microsoft Translator** をクリックします。
    
    ![24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/8226c4fd-0ac2-2eca-6e8e-09e8f3563aea.png)

2. **Microsoft Translator に接続** をクリックします。
3. 先ほどメモした翻訳サービスのキーとリージョンを入力して、**接続** をクリックし、正常に接続できることを確認します。

    ![25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/37ae4d56-47da-091c-5a1a-5af1e9af47cd.png)

4. コネクションの名前は既定値では時刻になってしまうため、編集アイコンをクリックし識別しやすい名前(例: `MS-Translator01`)を入力しEnterキーを押下してリネームします。

    ![26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/f4307f42-3138-1c2a-e649-cbfcd8e63c39.png)

- 前述の通り翻訳サービスとの連携においてはIntegration Serviceの送信IPが固定されないためネットワーク設定は既定値を使用します。

# Studio WebからのAzure AI Services利用
- ここまでで準備が整いましたのでUiPath Studio WebからAzure AI Servicesを利用してみましょう！

    :::note warn
    現時点ではMicrosoft SentimentとMicrosoft TranslatorはStudio Webから利用可能ですが、Microsoft Visionは利用できないようです。Microsoft Visionは [後述のStudioを利用する手順](#microsoft-vision-%E7%94%BB%E5%83%8F%E5%88%86%E6%9E%90-%E3%81%AE%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%93%E3%83%86%E3%82%A3) をご参照ください。
        :::

1. Automation Cloud の左メニューにて **Studio** のアイコンをクリックします。

    ![21a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/8d4abb27-064c-49a2-f6aa-7676ce2dd933.png)

2. プロジェクト > [新しいプロジェクト] をクリックします。

    ![22a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/1c911dfc-e40e-09ea-0607-527f40c9ed53.png)

3. プロジェクト名と説明を入力して [作成] をクリックします。

    ![31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/78160d51-843c-29ca-bdd0-54554b5857f4.png)

4. プロジェクトが作成されましたら (+) をクリックしてアクティビティを追加します。以降は利用するAzure AI Servicesに応じてアクティビティを選択します。

## 言語サービス (感情分析) のアクティビティ
1. **センチメント分析** アクティビティを追加します。

    ![32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/81436ac8-9c5b-fd85-09a8-2e046c68eea3.png)

2. 先ほど作成したコネクションが表示されることを確認します。
3. **テキスト** には感情分析を行うための文章を入力します。

    ![47a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/99d3601a-58da-489b-67a0-579356704aff.png)

4. **その他のオプションを表示** をクリックし、分析に使用する **言語** として `japanese - ja` を指定します。

    ![48a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/52f1bad3-bf57-6bb2-885e-6a9275369521.png)

5. 言語サービスの応答を出力するために (+) をクリックし、**メッセージをログ** アクティビティを追加します。

    ![35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/39f60a2b-c543-bef7-da1a-54937ba90c4a.png)

6. **センチメント分析** の出力変数 `センチメント` を選択します。ログレベルは `Info` を選択します。

    ![36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/6775c5ea-3d48-6b95-2984-e67a9d1e15e2.png)

7. **テスト** をクリックし、ワークフローをテストします。

    ![37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/64a1684e-c6dd-c848-0e56-b89971a79082.png)
  
8. 分析対象のテキストの感情分析の結果が、positive(肯定的), negative(否定的)またはneutral(中立的)が返されることを確認します。

    ![49a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/a371342c-9186-99ff-b088-f3020e97806e.png)

9. さらに細かく分析したい場合はそれぞれの感情を数値として取得することもできます。ログアクティビティに下記のメッセージを指定します。それぞれの信頼度スコアはセンチメント分析アクティビティの出力変数を使用します。
    ```
    positive: <[ポジティブ信頼度スコア]>
    negative: <[ネガティブ信頼度スコア]>
    neutral: <[ニュートラル信頼度スコア]>
    ```

10. 出力結果としてpositive, negativeおよびneutralのそれぞれの度合いが0~1の数値で返されることを確認します。

    ![51a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/5c926697-1223-b2e4-15de-2b08383c61c4.png)
  
## 翻訳サービスのアクティビティ
1. **言語を翻訳** アクティビティを追加します。

    ![41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/910776d7-e86c-9349-7f3f-810b2c276db4.png)

2. 先ほど作成したコネクションが表示されることを確認します。
3. **テキスト** には翻訳対象となる原文を入力し、**宛先** には訳語となる言語を選択します。今回は日本語訳にするために `japanese - ja` を指定します。

    ![42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/c87ceb89-2759-4e4a-d268-e3bb0e74fcea.png)

4. **その他のオプションを表示** をクリックすると原文の言語を明示的に選択することができます。既定値では自動検出となります。

5. 翻訳サービスの応答を出力するために (+) をクリックし、**メッセージをログ** アクティビティを追加します。

    ![43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/0a044610-cfc5-9eff-121d-9d43281b5899.png)

6. **言語を翻訳** の出力変数 `テキスト` を選択します。ログレベルは `Info` を選択します。

    ![44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/fb36e889-f20c-9dc9-8920-a3842f5de694.png)

7. **テスト** をクリックし、ワークフローをテストします。

    ![45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/54ccd945-6161-ce00-d098-14913e69cc1a.png)

8. テキストの訳語が正しく表示されることを確認します。

    ![46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/58f00edb-5ba6-6cc6-f6a8-ad420a15309e.png)

# StudioからのAzure AI Services利用
- 次にUiPath StudioからAzure AI Servicesを利用してみます。あらかじめStudioをAutomation Cloudに接続しておきます。
1. Studioを起動しプロジェクトを作成します。対応OSは `Windows` または `クロスプラットフォーム` を選択します。

    ![56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/16b85f8b-3919-1c14-9112-b988184a3204.png)

2. アクティビティの依存関係を右クリック > **管理** をクリックします。利用するAzure AI Servicesに応じてアクティビティを追加します。

    ![80.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/f9367f23-60ae-8d46-dfd5-529a5d676a17.png)

## Microsoft Vision (画像分析) のアクティビティ
1. Studioのアクティビティ管理画面にて **Microsoft Vision** バージョン `5.0.2-preview` 以降をインストールします。表示されない場合にはフィルタアイコンをクリックして **プレリリースを含む** を選択します。

    ![53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/7abac6f8-c31b-69c5-cb5e-8d79b0d3f749.png)

2. Studioの [アクティビティ] パネル > Integration Service > Microsoft > Microsoft Vision が表示されることを確認します。
3. 利用可能なアクティビティの一覧は [Microsoft Vision アクティビティガイド](https://docs.uipath.com/ja/activities/other/latest/integration-service/uipath-microsoft-vision-activities) をご覧ください。
    - 今回は `Describe Image` (画像の説明文を生成) アクティビティと `Read Text` (画像内の文字抽出) アクティビティを試してみます。
    - 検証用の画像として [Microsoft Learn: AI エンジニア演習](https://microsoftlearning.github.io/AI-102-AIEngineer.ja-jp/) のサンプル画像を利用します。[こちらのサイト](https://github.com/MicrosoftLearning/AI-102-AIEngineer/tree/master/20-ocr/Python/read-text/images) から **Lincoln.jpg** をダウンロードしてStudioプロジェクト配下の `image` というフォルダーに配置します。

    ![81.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/31ffba89-f0f8-44ff-3a86-c4820967cdae.png)

### Describe Image (画像の説明文を生成)
1. **Describe Image** アクティビティを追加し、既定のMicrosoft Visionコネクションが表示されることを確認します。

    ![58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/40a7d808-c69e-3efa-024e-52b062815625.png)
   
2. アクティビティの各項目を設定します。

    ![61a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/41e9c352-572f-38ae-ae0c-def388748c56.png)

    - **File Resource** は分析対象の画像を選択します。
    - **Language** は説明文の言語を選択します。今回は `ja` (日本語) を指定します。
    - Output > **Captions** に変数(例: `caption`)を設定します。

3. **メッセージをログ** アクティビティを追加し、 `caption(0).Text` を指定し説明文を出力します。

    ![62a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/d4f32c6e-a5d2-74d7-4bf8-a0e155eaad6c.png)

4. デバッグ実行して画像の関する説明文が正常に表示されることを確認します。

    ![63a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/4d805786-8adb-c141-03e1-81bac37000e3.png)

5. ログ出力値として `String.Format("[Confidence: {0:F2}] ", caption(0).Confidence) + caption(0).Text` のように指定すると信頼度も合わせて表示することができます。

    ![64a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/07db9063-7d68-c31a-bdf6-b6d9c2cd9a6d.png)

### Read Text (画像内の文字抽出)
1. **Read Text** アクティビティを追加し、既定のMicrosoft Visionコネクションが表示されることを確認します。 
2. アクティビティの各項目を設定します。

    ![66a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/e298e05f-df60-e3eb-2b0b-e7178390a368.png)

    - **File Resource** は分析対象の画像を選択します。
    - **Language** は画像内の言語を選択します。今回は `en` (英語) を指定します。
    - Output > **Operation ID** に変数(例: `operationId`)を設定します。

3. **Get Read Result** アクティビティを追加します。
    
    ![67a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/82f17b50-4f58-cbf0-1e06-95887222ef1a.png)

    - Operation IDに先ほどの出力変数 `operationId` を指定します。
    - Output > **Full Text** に変数(例: `resultText`)を設定します。

4. **メッセージをログ** アクティビティを追加し、先ほどの出力変数 `resultText` を指定し説明文を出力します。

    ![68a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/beaebe0d-dff4-6031-aae8-6b9e96ec1370.png)

5. デバッグ実行して画像内の文字列が正常に抽出されることを確認します。

    ![82.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/7131d34f-9953-f0d3-5496-de427040d871.png)

## Microsoft Sentiment (感情分析) のアクティビティ
1. Studioのアクティビティ管理画面にて **Microsoft Sentiment** バージョン `5.0.5-preview` 以降をインストールします。表示されない場合にはフィルタアイコンをクリックして **プレリリースを含む** を選択します。

    ![70.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/6c7507b3-39f7-ae78-5e9f-6e8ee75c05d6.png)

2. Studioの [アクティビティ] パネル > Integration Service > Microsoft > Microsoft Sentiment が表示されることを確認します。

3. **Sentiment Analysis** アクティビティを追加し、既定のMicrosoft Sentimentコネクションが表示されることを確認します。 

    ![71.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/1ffefba4-5e23-0960-d478-5eea1386f878.png)

4. アクティビティの各項目を設定します。

    ![73a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/d3e9e4a2-cc22-61bd-6928-1c2036074b2a.png)

    - **Text** には感情分析の対象となる文章を指定します。
    - **ID** には感情分析の結果のGUIDを指定します。今回は `Guid.NewGuid().ToString` と指定して新しいGUIDを割り当てます。
    - **Language** には文章の言語を指定します。
    - Output > **Sentiment** には感情分析の結果を変数(例 `sentiment`)として指定します。
    - Output > **Neutral confidence score** には分析結果の中立的な信頼度を変数(例: `neutral`)として指定します。
    - Output > **Negative confidence score** には分析結果の否定的な信頼度を変数(例: `negative`)として指定します。
    - Output > **Positive confidence score** には分析結果の肯定的な信頼度を変数(例: `positive`) として指定します。

5. **メッセージをログ** アクティビティを追加し、下記のようにメッセージを指定して結果を出力します。

    ```
    "Sentiment: " + sentiment + Environment.NewLine _
    	+ String.Format("Positive: {0:F2}", positive) + Environment.NewLine _
    	+ String.Format("Negative: {0:F2}", negative) + Environment.NewLine _
    	+ String.Format("Neutral: {0:F2}", neutral)
    ```

6. デバッグ実行し、感情分析の結果が出力されることを確認します。

    ![74a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/02d66280-b7a3-7b0e-af3e-479ac21c055c.png)

## Microsoft Translator (翻訳) のアクティビティ
1. Studioのアクティビティ管理画面にて **Microsoft Translator** バージョン `5.0.5-preview` 以降をインストールします。表示されない場合にはフィルタアイコンをクリックして **プレリリースを含む** を選択します。

    ![75.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/3c123875-0bee-f634-5ef6-75d75e74af01.png)

2. Studioの [アクティビティ] パネル > Integration Service > Microsoft > Microsoft Translator が表示されることを確認します。

3. **Translate Languages** アクティビティを追加し、既定のMicrosoft Translatorコネクションが表示されることを確認します。 

    ![76.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/f21c5abf-6d1c-efa5-b27d-13135c440760.png)

4. アクティビティの各項目を設定します。

    ![77.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/d344835a-b04c-c819-df1f-91524cb9bad5.png)

    - **To** には訳語の言語を指定します。
    - **Text** には翻訳対象の原文を指定します。
    - **From** には原文の言語を指定します。
    - Output > **Translated text** には訳語を変数(例: `translatedText`)として指定します。

5. **メッセージをログ** アクティビティを追加し、メッセージに出力変数 `translatedText` を指定して結果を出力します。

    ![78.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/db452b77-d26b-02d4-0fbb-2a460480699e.png)

6. デバッグ実行し、翻訳の結果が出力されることを確認します。

    ![79.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/100b2049-7d91-1ba4-1b7e-de093e6bef82.png)

# おわりに
- このようにAzure AI ServicesとUiPath Automation Cloudを組み合わせて使用することによって、画像分析・感情分析・翻訳サービスを自動化処理に容易に組み込みできるようになります。ぜひお試しください！