【Power Virtual Agents】BOTのアクションをPower Automateで作成する

こんにちは。
今回は前回の続きとなります。

【Power Virtual Agents】ノーコーディングでBOTを作成してTeamsに接続してみる

前回は割愛した、[Call an action]で利用できるActionをPower Automateで作成しようという内容になります。
これができると、Botをかなり自由にカスタマイズすることができます。
参考にする記事はMicrosoftのこの記事です。

それでは行きましょう。

天気予報を取得するフローを作成する

今回はサンプル用に自分のいる場所の
天気予報を取得するフローを作成していきます。
まずはフローを作成する環境を用意してください。
もし、まだ環境をお持ちでない場合は、この記事の前半部分を参考にしてみてください。

準備ができましたらMicrosoft Flowにアクセスし、
プロフィールアイコンからフローを作成する環境を選びましょう。

次に左ペインから、[ソリューション]を選択し、[Common Data Services Default Solution]をクリックします。
展開された画面上から[新規]-[フロー]と選択していきます。

以下の画面が表示されたら準備は完了です。

Power Virtual Agentsのトリガーを設定する

Power Virtual Agentsボットは、HTTP要求のインターフェースを持つフローしか呼び出すことができませんので、
HTTP要求を処理してくれるトリガーを利用します。
検索ボックスで「HTTP」と検索し、[HTTP要求の受信時]を選択しましょう。

スキーマに以下のとおり入力してください。

{  
    "type": "object",  
    "properties": {  
        "place": {  
            "type": "string"  
        }  
    }  
}

基本的には固定の式ですが、
このJSONの”place”というのは変数のようなもので、
Botの上流から渡される値の格納先になります。
今回は以下のような流れになるはずなので”place”と名付けています。

  1. Botでどこの天気が知りたいか質問する。
  2. ユーザーが地名を入力する。
  3. 入力された地域の天気情報を取得する。
  4. Botでユーザーに伝える。

3番で入力された地域を格納するのが”place”です。

続いて、[新しいステップ]をクリックして天気情報を取得するアクションを探します。
[今日の予報を取得する]というのがあるようなのでそれを使います。

[動的なコンテンツの追加]から、”place”を選びます。
上流から流れてきているオブジェクトですね。

再度[新しいステップ]をクリックして[応答]というActionを挿入します。
プロパティを以下のように埋めてください。

状態コード:200
ヘッダー:Content-Type,application/json
本文:{“weather”: “日 条件”}
⇒”日 条件”というのは動的コンテンツで、天気を返すコンテンツです。

[詳細オプションを表示する]をクリックし、以下の通り入力します。

{  
    "type": "object",  
    "properties": {  
        "weather": {  
            "type": "string"  
        }  
    }  
}

これでフローは完成です。
最後に保存ボタンをクリックしてください。

botで作成したアクションを利用する

ここまでで既にフローの作成は完了しました。
では実際にフローをbotで利用してみましょう。
https://powerva.microsoft.com/ にアクセスし、
右上のロボットマークから[New bot]をクリックします。

ポップアップで任意の名前、[More options]からフローを作成した環境を選択します。
準備ができたら[Create]を押下してください。
※ 作成した環境以外でフローを利用することはできません!

デプロイが完了するまで少々時間がかかります。
インフォメーションが完了になるまで待ちましょう。

完了したら、Topicsを作成してください。
作成方法は前回の記事を参考にしてください。

今回はQuestionを利用して、ユーザーから地名を受け取ります。
⇒Var1に格納されます。
次にActionで作成したActionを選択します。

Actionの設定は以下の通りです。
Var1をplacecとして取得し、結果をweatherで返します。

最後にメッセージとして返します。

これで作成は完了です。
テストbotで試してみましょう。

まだ日本語対応はしていないようですね・・・(笑)
もし対応させたい場合は、[Add a condition]で複数の条件を作成する必要がありますね。

終わりに

今回は以上です。
少々長くなってしまいましたが、
これができるようになると、botサービスの幅がとんでもなく広がると思います。
今までのbotとは大きく変わってくることでしょう。
非常に面白いサービスですので是非試してみてください。
そして僕に教えてください。(笑)

それではまた。