10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Power Virtual Agents と QnA Maker を利用したシンプルな FAQ 対応ボットの作成方法

Last updated at Posted at 2019-11-20

※本記事は2019年11月20日現在の情報です。
※本記事は2020年2月3日に編集されました。

はじめに

本記事ではIgnite 2019で発表されたPower Virtual Agentsを用いたシンプルなFAQ対応ボットの作成方法をご紹介します。FAQ対応ボットのナレッジベース(KB)として、今回はAzure QnA Makerを利用します。現時点で、Power Virtual AgentsとQnA Makerはネイティブで統合されていないようなので、今回はPower Automate(旧名:Flow)を飛び道具として使います。

前提条件

・Azure QnA MakerでKBが作成されていること

Power Automateを用いたフローの作成

1.はじめに、以下のリンクからPower Automateにアクセスをしてください。
https://flow.microsoft.com

2.「ソリューション」タブから「Common Data Services Default Solution」を選択してください。
image.png

3.「+新規」から「フロー」を選択してください。
image.png

4.「HTTP要求の受信時」トリガーを選択します。スキーマは以下としてください。作成後、「+新しいステップ」をクリックしてください。

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

image.png

5.QnA Makerの「Generate Answer」コネクタを選択します。接続名は任意の文字列、Site URLとAPI KeyはAzureポータルを開き、QnA Makerリソースのクイックスタートタブから取得できます。入力できたら、「作成」をクリックしてください。
image.png

6.QnA MakerでKBをPublish後に出力される3つの情報を入力してください。Questionには、flow_input_stringを指定します。必須項目を全て入力後、「+新しいステップ」をクリックしてください。
image.png

7.「応答」コネクタを選択します。本文は、以下のように設定します。string(body..の部分は、「式」を使って変数化しておきます。
参照: https://stackoverflow.com/questions/58843297/how-do-i-return-an-answer-from-qna-maker-connector-to-power-virtual-agent

{"output": body('Generate_answer')['answers'][0]['answer']}

Bodyは以下のように設定します。

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

image.png

8.最後に保存をクリックして、フローの準備は完了です。

Power Virtual Agentsからフローを呼び出す

1.以下のリンクからPower Virtual Agentsにアクセスしてください。
https://powerva.microsoft.com/

2.サインアップが正常に完了したら任意のボット名を決め、「Create」します。
image.png

※現状、Createをクリックすると、サンプルのチャットボットができあがった状態になります。空の状態から作ることはできないので、今回は既存のものを改良していく形で作っていきます。

3.「Track between topics」をオンにし、「Hello」と入力してみてください。すると、画面右側にデザイナーが現れます。今回はこの「Greeting」トピックからPower Automateで作成したフローを呼び出します。
image.png

4.不要なコネクタは削除し、お好みのカスタマイズをしていきます。今回は、「Add a question」コネクタを使って、ユーザーに対して質問を投げてみます。
image.png

5.この時点で一旦「Save」をしてテストしてみましょう。ボタンが現れたかと思います。
image.png

6.「天気に関しての質問」ボタンがユーザーから選択されたときのアクションを決めていきます。再度「Add a question」コネクタを使います。ここで、Identifyは「User's entire response」とします。こちらを選択することににより、Var2にユーザーからの質問(文字列)を格納することができます。
image.png

7.ユーザーからの質問をPower Automateに投げます。「Call an action」メニューから先ほど作成したフローを選択してください。(フローが複数個ある場合にはお間違えないように)
image.png

8.「Select a variable」から「Var2」を選択します。最終的にQnA MakerにこのVar2(ユーザーからの質問)が投げられて、返ってきた値がoutputに格納されます。
image.png

9.「Show a message」を選択します。QnA Makerが出力した答えを表示するために、変数としてoutputを選択します。
image.png

10.「Save」をクリックして完成です。
image.png

テスト

質問に対しての回答が返ってくれば成功です!
image.png

さいごに

まだPreview中で動作が不安定なところもありますが、UXは素晴らしいですし、このスピード感でチャットボットを作ってすぐにチャットクライアントに接続できてしまうのは画期的だと思います。今後QnA Makerがネイティブ統合されることを期待しています!内容に関して、フィードバック等ありましたら是非ともコメント頂ければと思います。

10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?