QnA Maker はノンコーディングで FAQ チャットボット (Chatbot, 以下 Bot) のコア部分(FAQ DB +検索サービス)を作成できるサービスです。FAQ のリスト (Q と A のペア) をアップロードすると、DB と検索サービスが自動で作成され、質問を Post すると 検索結果から可能性の高い回答が Response として返される Web API が生成されます。
ブラウザーだけで&1ステップでチャットボットが作成できる Azure Bot Service には QnA Maker をつかうテンプレートが用意されています。Azure Bot Service + QnA Maker を使って、ノンコーディングで FAQ チャットボットを作成する手順を紹介します。
- Azure Bot Service について
- Azure Bot Service とは (※別のページに飛びます)
- Azure Bot Service の仕組み (※別のページに飛びます)
- 準備
- 手順
- (1) QnA Maker 編
- (2) Bot Service 編 (※別のページに飛びます)
- Azure Portal から Question and Answer テンプレートの 新規 Azure Bot Service アプリの作成
- Azure Bot Service アプリの QnA Maker 用設定
- Azure Bot Service からの動作確認
準備
Microsoft アカウント の取得
Azure サブスクリプション申し込みに必要です。
Azure サブスクリプション申し込み
無料試用版で充分です。上記↑で取得した Microsoft アカウントで申し込みを行います。(無料のプランがあるので、従量課金プランでも大丈夫ですが念のため。)
手順
(1) QnA Maker 編
Azure Portal から QnA Maker アプリの作成
Azure Portal をブラウザーで開きます。
左端ナビゲーションバーの [+]をクリックします。(リソースの新規作成)
検索欄に qna と入力して QnA Maker を検索、クリックして新規作成ペインを表示します。
以下の情報を入力したら、[作成] をクリックして QnA Maker アプリを作成します。
- Name
- 新規に作成する QnA Maker アプリの名前 (自分で識別しやすい名前) を入力
- サブスクリプション
- (デフォルトのまま)
- Management Pricing Tier
- ここでは F0 (無料プラン) を選択
- Resource Group
- ここでは新規で作成していますが、作成済みのリソースグループを選択してもOKです
- Search Pricing Tier
- ここでは F (無料プラン) を選択
- Search Location
- QnA Maker アプリの検索サービスをホストするデータセンターを選択 (日本国内なら「西日本」)
- App Name (※自動入力)
- 入力した Name から自動入力されます。QnA Maker アプリをホストする Web サーバーとしての名前になります。azurewebsites.net の中でユニークになる名前を設定します
- Web Site location
- QnA Maker アプリをホストする Web サーバーのデータセンターを選択 (Search Locationと一緒が良いですね)
「展開が成功しました」というメッセージが表示されたら作成完了です。
[リソースに移動] をクリックすると、作成した QnA Maker アプリの情報が表示されます。
QnA Maker アプリを作成したリソースグループを確認すると、QnA Maker、Web App (App Service と App Service プラン)、Azure Search が作成されていることが分かります。
QnA Maker Web サイトから QnA Maker アプリの設定、展開
QnA Maker Web サイト をブラウザーで開きます。
Create a knowledge base をクリックして、新規 Knowledge Base (KB) を作成します。
サインインを求められたら、QnA Maker アプリを作成したアカウントでサインインします。
Step 2 で作成した QnA Maker アプリを指定します。
Step 3 で KB の名前 (自分で識別しやすい名前) を入力します。
Step 4 で KB のデータソースを指定します。
構造化されているドキュメントや Web サイト、マニュアルなどをそのままアップロードすることができます。もちろん質問と答えがペアになったデータ (タブ区切り(*.tsv)) も利用できます。
Step 5 で [Create your KB] をクリックすると KB が生成されます。
利用できるファイル形式は *.tsv, *.pdf, *.doc, *.docx, *.xlsx です。
構造化されているドキュメント例については QnA Maker Document > Data Sources を確認してください。
今回は以下の Azure サポート FAQ を利用しました。
しばらくすると生成された KB が表示されます。
修正が必要な箇所はクリックするとセルが修整可能になります。
Add QnA Pair をクリックすると行が追加されて、質問と回答のペアを追加できます。
修正や追加が終わったら、[Save and Train] をクリックして、KB への保存と検索の Index を作成します。
[Text] をクリックするとテスト用のパネルが表示されます。
思ったような結果にならない場合は、KBの修正・追加 → Save and Train を実施します。
テストが終わったら、再度 [Test] をクリックしてテスト用パネルを閉じ、Publishをクリックします。Publish のページで [Publish] をクリックすると、KB が Azure 上に展開されて、Bot から利用可能になります。
展開が完了すると、KB へのアクセス情報が表示されます。
この [Sample HTTP request] の情報が必要になりますので、コピーしてローカルに保存しておきます。
保存しておく Sample HTTP request の情報 |
---|
POST /knowledgebases/KnowledgeBaseID情報/generateAnswer Host: https://yourQnAHost.azurewebsites.net/qnamaker Authorization: EndpointKey AuthKey情報 Content-Type: application/json {"question":""} |
補足: QnA Maker アプリを Web API として利用
[Sample HTTP request] の情報を利用して、QnA Maker アプリのサービス を Web API として利用でき、回答が Response で返されます。
- URL → https://yourQnAHost.azurewebsites.net/qnamaker
- Request Type → POST
- Headers
- Autorization : EndpointKey AuthKey情報
- Content-Type : application/json
- Body
- {"question":"質問内容"} のフォーマットで入力