【Microsoft Power Platform】Power Virtual Agentsについて

#はじめに
前回は[こちら](https://qiita.com/kento_gm/items/7eb95ef89c70a14d177f)の記事で、`Power Apps`、`Power Automate`、`Power BI`を用いてアプリケーションを作成しました。
しかし、Power Platformには上記の他もう1つノーコード・ローコードのサービスがあります。これまでの記事でそのサービスである`Power Virtual Agents`について説明していませんでしたので今回の記事でどのようなことができるのか概要等を書きたいと思います。 
記事でコメント等いただけると嬉しいです❗❗

#Power Platform
`Porwer PlatForm`や`Power Apps`、`Power Automate`、`Power BI`については以下の記事を確認してください。 

- [ノーコード・ローコードのあれこれ](https://qiita.com/kento_gm/items/34c46a9bc6b3017c9345)
- [【Microsoft Power Platform】Power AppsでNoCodeでアプリ作成](https://qiita.com/kento_gm/items/b912e72f344b950afda7)
- [【Microsoft Power Platform】ノーコーディングでオンプレミス環境を自動監視・通知・管理するアプリケーションを作成](https://qiita.com/kento_gm/items/7eb95ef89c70a14d177f)

##Power Virtual Agentとは
[概要](https://docs.microsoft.com/ja-jp/power-virtual-agents/fundamentals-what-is-power-virtual-agents) 
`Power Virtual Agent`は開発者等を必要とせずコードなしのグラフィカルなインターフェイスでBotを簡単に作成できるSaaSのサービスです。また、維持するインフラストラクチャや展開する複雑なシステムは必要ないとなっています。
###使用する利点
使用する利点としては以下を挙げられています。

- 仲介者やコーディングやAIの専門知識を必要とせずに、Bot自体を簡単に構築できるようにすることで、**チームに力**を与えます。
- 一般的な問い合わせを簡単に自動化し、より複雑な問題に対処するために人間のエージェントの時間を解放することにより、**コストを削減**します。
- 豊富なパーソナライズされたBot会話を使用して、24時間年中無休でセルフヘルプおよび問題解決を顧客に許可することにより、**顧客満足度を向上**させます。

###ポイントとしては
1. 簡単にスタートできWebの埋め込みまで(デプロイ)できる
2. コードフリー(ノーコード)で作成可能  
開発チームなど必要なく主題の専門家が直接作成可能できる利点があります
3. 豊かな会話シナリオを作成できる  
以下の機能等が準備されています。  
・マイクロソフトの強力な会話型AI機能  
・Botで処理するトピックの短い例をいくつか提供  
・グラフィカルエディターを使用して会話を構築  
・テストペインでリアルタイムに変更を試すこともできます   
4. Botがアクションを実行できるようにします。  
Power Automateを使用することで、会話だけではなく作業等も自動化できる  
Power Automateにより何百ものカスタムコネクタと簡単に連携できるBotを作成可能である。  
また、Power BIやPower Appsとも連携可能である(データの受け渡しができる)
5. Botのパフォーマンスを監視して改善  
強力なメトリックとAI駆動のダッシュボードで監視して分析を行うことができる

###環境
サポートされているブラウザはMicrosoft Edge、Chrome、Firefoxです
アカウントは仕事用のメールアドレス(個人用メールアドレスは不可)のみとなっています。
Botは、サインアップ時に作成されたデフォルトのPower Apps環境で作成されます。基本はデフォルトのPower Apps環境で十分です。また、Power Virtual AgentsにカスタムされたPower Apps環境を指定することも可能となっています。

###ライセンス
作成、管理をする場合は以下のライセンスが必要となります。

- 各ユーザーのライセンス。「ユーザーごとのライセンス」とも呼ばれます。  
https://docs.microsoft.com/ja-jp/power-virtual-agents/requirements-licensing#buy-a-tenant-license
- 組織のライセンス。「テナントライセンス」とも呼ばれます。  
https://docs.microsoft.com/ja-jp/power-virtual-agents/requirements-licensing#acquire-user-licenses  
Power Virtual Agents アプリケーションでは、テナント単位でライセンスが提供されます。管理者は、Power Virtual Agents アプリケーションにアクセスするユーザーに対して、管理ポータルからユーザー ライセンスを割り当てる必要があります。Power Virtual Agents の料金は「セッション」1単位で請求されます(セッションの定義については以下を参照)。  

**※セッションの定義** 
セッションとは、ユーザーとBotのやり取りを指し、消費量の単位として使用されます。セッションは
ユーザー トピックがトリガーされたときに開始し、条件の 1 つ (ユーザーの質問に回答した、60 分を超
過した、やり取りが 100 回を超えた場合のいずれか) が満たされたときに終了します。これらのセッショ
ンは、製品内では「請求対象セッション」と呼ばれます。


####Power Virtual Agentsの権利の概要
| プランと機能        |                   |権利                |
|:-----------------|:------------------|:------------------:|
| フローの作成|ワークフロー|無制限 (Power Virtual Agentsからトリガーされるフローのみが対象)|
|インテリジェントなチャットBotの作成と保持|Bot|1000|
|チャットセッション|セッション回数/テナント/月 |2000|
|データの保存と管理|Common Data Service の使用権|●|


###Power Virtual Agentsトライアル
個人としてPower Virtual Agentsにサインアップする方法(無料試用版)を試すことができます。
Power Virtual Agentsは最大90日間使用できます。
詳細とSign Up方法については以下を参照してください。
[Power Virtual Agentsトライアルにサインアップする](https://docs.microsoft.com/ja-jp/power-virtual-agents/sign-up-individual)

###料金
[公式サイト](https://powervirtualagents.microsoft.com/en-us/)
1テナントあたり2000セッションまで月1000ドル

Office365のPowerPlatformサービスが利用できるプラン(AzureActive Directoryのアカウントがある場合)であれば、そのまま使えるようです。また、サブスクリプションとしてのサービスですのでサービスのみを購入でも利用が可能です。
※Office365を契約するとAzureActive Directoryのアカウントが勝手に作られます。

勉強のみで試したい場合は、無料試用版で無料で体験できます。
###デプロイ
MS以外の15個のチャネルにデプロイ可能となっています。
Slack、Lineなどで公開が可能となっています。

また、以下の内容でデプロイが可能です。

- DemoWebサイト  
【利用用途】  
Botを試してみたいチームメイトや他の利害関係者と共有する場合で利用する
- カスタムアプリやモバイルアプリに追加する  
【利用用途】  
Webアプリケーションに追加できる
- Azure Bot Serviceチャネルに追加
- Azure Bot Serviceチャネルのエンドユーザーに接続することができる
- Power Virtual AgentsでMicrosoft Bot Frameworkを使用する  
Microsoft Bot Frameworkで作成した既存のBotをPower Virtual Agentsで使用することができます。
ただ、コードを書く必要がありますので、統合開発環境（IDE）を十分に理解しているIT管理者や開発者向けとなっています。

###Power Virtual AgentsによるBotの構成
以下の内容でPower Virtual AgentsによるBotは構成されています。
作成するBotには`Topic`と`Entity`というものがあります。

- `Topic`  
  特定の内容に沿った会話フロー  
- `Entity`  
Topicのなかで使えるユーザ辞書で選択肢等で使います。  
ユーザ辞書とはEntity内で単語の揺れを補うために作成する辞書です。  
**例)  以下の様に`おはようございます`の他の言い方を設定することで揺れを補う**  
`おはようございます`  
→ `おはよう`、`おはよー`、`おはよーう`、`グッドモーニング`、`Goodmoning`  
Entityは標準で設定済みのEntityがあるが、英語のみの対応となっているので日本語はユーザ辞書(カスタマイズEntity)が必須となっている。
- 1つのBotの中で複数の`Topic`、`Entity`を持つことが可能
- `Topic`からは複数の`Entity`を呼び出すことが可能
- `Topic`から`Power Automate`のフローを呼び出すことが可能  

以下が一例としてのBot構成図となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222088/6986a60e-8b52-9a62-90fd-cc7febf13fb0.png)

#まとめ
今回は、Power Virtual Agentsの概要や何ができるのかを調べてみました。
調べて思ったことは、まだ日本語は得意ではない感じでした。
「$100」とユーザがBotへ会話すると標準のEntityが良しなにお金だと認識できますが日本語(100ドル)だとユーザ辞書(Entity)で設定しないと認識されないので日本語に関してはEntityの作成が必須となっています。
Power Virutal Agentsは2019年に発表されたばかりなので、今後日本語対応されるかもです。今後に期待するところだと思います。
また、Power Platformの第4のサービスということでPower Automateと連携することができ、自動化したい作業等もノーコードで実装できるので幅広いことができるのではないかと思いました。