Power Virtual Agents で翻訳ボットを作成する

#はじめに
業務でTeamsを利用し、Teamsアプリを常時起動されている方は多いと思います。
Teamsに他言語を翻訳するチャットボットが常駐しているとなかなかに便利と思い、Teams版Power Virtual Agetnsで翻訳チャットボットを作成してみます。
手軽に作成可能かと思いきや、ハマりポイントが数点ありましたので共有いたします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/46479cb8-2da0-0f8d-2b62-169332bdf4ad.png)

#本記事で記載すること
下記の手順を記載します

- Teams版Power Virtual Agetns の簡単な使い方
- Power Virtual Agetns から Power Automate の呼び出し方
- Cognirive Service の設定方法と、Power Automate での利用方法

#Cognirive Service 翻訳 の作成

[Azureポータル](https://portal.azure.com/)で、「翻訳」を起動選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/b1f182dd-012d-83fd-2abc-e055838dedd0.png)

[作成]を選択し
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/00570f4e-5f2e-e81b-234f-0c6a345c1f39.png)

Translateサービスを作成します。

:::note alert
[リージョン]には「グローバル」を設定してください</span>
:::

他は任意です。「価格レベル」は[F0]を設定すると追加料金なしで利用可能です（利用制限はあります）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/375780cb-f30f-49aa-f9e6-c93e61be80e1.png)

デプロイが完了したら、リソースに移動し、[キーとエンドポイント]で[キー 1]をコピーしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/b9b9f212-8bd6-1873-a0ba-f140894c7304.png)


#Power Platform 作成 の作成

[Power Appsポータル](https://make.powerapps.com/)で[Dataverse]-[接続]を選択します。

:::note warn
Power Automate ポータルから接続を作成した場合、後述のPower Automateにて[Microsoft Translator V2]が正常に接続されない事があります
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/36593861-5151-942b-b21d-6bb6e8319c38.png)

[新しい接続]をクリックし
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/6bcf0640-8067-947b-866d-1868e8f8fb16.png)

[Microsoft Translator V2]を選択します。
※「Microsoft Translator」ではありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/e0ed6330-2441-ec75-c3ff-4ffb0456c577.png)

[Subscription Key]には、上記のCognirive Service 翻訳 の作成でコピーした、[キー 1]を貼り付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/6d1e939e-7cde-ef1b-58fa-fcd4615d5ec6.png)

翻訳への接続が作成されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/b9f98f82-e12f-f279-1d30-08613a45a23f.png)

#Power Virtual Agetns チャットボットの作成

Teams を起動し、左ペインの[…]より[Power Virtual Agetns]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/9b44645d-e9aa-6421-d50c-8d85be2b9cbc.png)

[チャットボット]－[新しいチャットボット]の順にクリックし、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/9d608703-ed42-ee65-22ae-8e24066d195f.png)

チャットボットを作成するチームを選択します。
作成したチャットボットは、チームに関係なく常時Teamsに表示できるため、利用可能なチームという概念は必要ありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/e717bfbb-bd46-0403-8bef-1390d3c3164b.png)

任意の名前を入力し、[作成]します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/58f780ec-3e82-f9cd-e8d7-f8edd1c878c1.png)

チャットボットのデプロイが完了したら、[トピック]－[新しいトピック]の順に選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/30633460-c401-c15c-9a78-66158f9daeb2.png)

[名前]と[トリガーフレーズ]を入力し、[追加]⇒[キャンパスの作成に移動]の順にボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/b43dfdc9-d713-2915-5333-49851f31f66e.png)

[トリガーフレーズ]の下部にカーソルを合わせると、アクションの追加ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/19b122a3-b9ed-eb6e-89c2-a5ac2a4c1ced.png)

先ずは、翻訳対象のテキストを利用者に入力してもらうために、[質問する]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/a05244fc-252e-f1e6-d5b2-02ab33673219.png)

[質問する]に質問を、[特定]には利用者が入力した本文すべてを取得したいので[ユーザーの応答全体]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/1e6bf9d6-5dcd-11de-6394-64663ac8df23.png)

ここで一度[保存]します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/a67b89b4-9d2e-2ac9-35e9-7601597888e1.png)


質問するの下に、[アクションを呼びだす]をクリックし、[フローの作成]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/5cf9c04b-0c85-53e9-adf7-b78307826642.png)

Power Automate　が起動したら、[Power Virtual Agetns フローテンプレート]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/6c566b37-6e62-b712-f5ca-46086791b450.png)

[入力の追加]を選択し、チャットボットから受け取る引数を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/8e7c03b6-a5aa-ca71-7c53-50b100234238.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/e32afb7c-feed-c1d4-f010-5177c1bc18f2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/a94a51f1-ad94-c96e-b682-2ed393916bcf.png)

翻訳アクションを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/acd2af5b-5b10-9fc7-c268-967b14ae87f3.png)

「trans」などで検索し、[Microsoft Translator V2]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/696d2b71-7234-5793-b68f-c0c3780967a1.png)

[Translate text]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/4415c62c-6ed6-fd03-2146-f66d0b9ca312.png)

[Target Language]には翻訳語の言語：「日本語」、[Text]には上記の[入力の追加]で設定した[入力]をセットします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/2e1614af-b471-5ee7-e7dc-15589e97fb0f.png)

Power Virtual Agetns への戻り値として、上記[Translate text]の出力を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/07b5f1e4-fa01-c0e0-2467-70d838b106d5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/3f43f1af-465b-58ff-5e7d-ada66126d1d1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/aad7c61a-e3d6-9c76-a2a6-839f647d0d2f.png)

最後に、フローの名前を変更し、[保存]します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/4731cbe5-788f-fcf4-be18-3383be9a4297.png)

もう一度[アクションを呼びだす]から、作成したフローを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/5a0f678b-87bd-a318-93b1-8ed006bc4664.png)

[入力]には、上記で作成した[質問]で生成された変数を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/cb468cb9-b209-9e0d-0d90-1dd6473ae04c.png)

最後に、最初からずっと存在していた[メッセージ]に、Power Automateからの戻り値をセットして完了です。[保存]してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/0e588ce6-8efb-ddb0-6fa7-095b913e9c0c.png)

#チャットボットの公開
作成したチャットボットを公開しましょう。
[公開]－[公開]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/0a03b749-0074-a46f-cf30-60ec9282fe96.png)

個人で利用するなら[ボットを開く]です。
チームメンバーや、セキュリティグループ、テナント全体に公開する場合は、
[「Power Virtual Agents for Teams の公開範囲と設定方法」](https://qiita.com/MiyakeMito/items/1b7ea16a16ddc9363cc4)
を参照してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/c51f3c55-8816-ee83-39d7-b8a1ebd93084.png)

[追加]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/e30cede9-5f61-dca6-4818-2644cba20e8a.png)

チャットボットが開いたら、左ペインのチャットボットを右クリックし、[固定]しておくとチャットボットのリンクがTeams上に常駐します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/8a1e7e0d-5540-9f77-fc79-d43dc5379e76.png)

#まとめ

いくつか注意するポイントがありますが、「とても手軽」に「ちょっぴり便利なツール」としてチャットボットを作成すると面白いと思います。
Teams上でなら Power Virtual Agetns は追加利用金なしで利用できますので、どんどん活用してください。