
Azure OpenAI x Pinecone x TeamsでFAQ検索ボットを作成する~Power Virtual Agents編
この記事について
この記事では以前、Teams連携にLogic Appを使用していたものをPower Virtual Agentsに置き換えた連携方法について説明しています。
概要
前のバージョンとの差はLogicApp部分にPowerAutomateが入り、TeamsのフロントにPower Virtual Agentsが入っています。

手順
Power Virtual AgentsをTeamsにインストール(?)
やり方は色々あるようですが、power virtual agentsを検索して開くだけと言えばそれだけです。


チャットボットを作成
新しいチャットボットをクリックして新規作成します。

チームを選択
自分がテストで使えるチームを選択しました。

名前を決める
今回は「samplebot」にしてあります。

トピックへ移動
出来上がったらトピックへ移動します。トピックというのは会話のフローになります。

トピック新規作成
早速トピックを作成します。このトピックからPowerAutomateを呼び出します。
トリガーフレーズは何でもいいのですが、説明を読む限り、このbotのトピックが反応できるように複数のトリガーフレーズが必要です。

質問する
このあたりの挙動はお好みですが、後でやりやすくするため、ここで質問することにしました。質問はVarという変数に入ってきます。ここで保存しましょう。特定のところはエンティティを選択しますが、今回は質問しか入ってこない想定なので、ユーザーの応答全体を選択します。

アクションを呼び出す
次のノードでいよいよアクション(Power Automate)を呼び出します。「アクションを呼び出す」→「フローの作成」です。

フローの作成
「Power Virtual Agents フローテンプレート」を選びます。

入力の追加
入力はPower Virtual AgentsからPower Automateへ渡されてくるパラーメーターを受け取る変数名になります。テキストを選んで変数名を「質問」としましょう。「入力を指定してください」は無視します。

httpを追加
新しいステップの挿入をして、HTTPを検索します。埋め込みで絞り込むとすぐに見つかります。「Premium」なので、追加料金がいるようです。追加したら、次のような感じで、先日作成したApp Serviceにリクエストを投げつける準備をします。「動的なコンテンツの追加」にPower Virtual Agentsの質問というのがありますので、そのままそれをApp Serviceに投げております。

変数を追加
変数にしないとhttpの本文が取れなかったので、図のようにしました。

戻り値の設定
Power Virtual Agentsに返す値を設定してPower Automateは終了です。この辺りは作り方の好みが分かれますね。私はRPA系の手のかかるものが好きではないので、極力App Serviceに寄せましたが。

Power Virtual Agetnsに戻り、もう一度フローを開く
もう一度、「アクションを呼び出す」から今度は先ほど作成したフローを選択します。と言いたいのですが、一旦、「フローの詳細の表示」を開いて設定を修正します。また、この時、フローがグレーアウトしている場合はフローを「オン」にする必要があります。

フローに名前を付ける
詳細の右の「編集」をクリックして名前を付けましょう

Power Virtual Agentから呼び出す
ようやっと呼び出しです。フローを選んだら、フロー側のパラメーター、「質問」にはVarを渡してあげます。

返信する
フローから戻ってきたanswerをそのままメッセージとして表示します。

これで一通りの設定が終わりました。一度テストしてみます。
テストする
「ボットのテスト」をクリックすると、左側に「メッセージを入力してください」という入力欄が出てきますので、そこにトリガーフレーズを入れてbotを起動します。起動したら、質問を入力してみます。テスト結果が満足できれば、次はユーザーに公開します。Power Automateの実行履歴などは入力された値も見られるので、ログをクリックしてデバックしてみてください。
公開する
詳しくは他のサイトに譲ります。
公式は
チャットボットを Microsoft Teams に追加
あまりにもわかりずらいので。。。
Power Virtual Agents ボットの作り方
Power Virtual Agents for Teams の公開範囲と設定方法
こちらを参考にして下さい。
簡単に言うと、
左側の公開をクリックして公開画面を出します。


公開をクリックしますが、ここではまだ共有先は1つもありません。

ひとつ前の画面で「他のユーザーがボットを利用可能にする」を押すか、公開が終わった直後に次のような画面になります。

可用性オプションなどというわかりにくい名前になっておりますが、これが公開先を設定する機能です。

簡単ですが以上がPower Virtual Agentを使った照会になります。