この記事はFIXER Advent Calendar 2020 (https://adventar.org/calendars/5587) 12 日目の記事です。
はじめに
Power Platform を好奇心でいじってるエンジニア歴 2 年目の、横田です!
今回は、Azure の「QnA Maker」でマルチターン(会話の往復)ができたので、その紹介です!
最初に「QnA Maker」でできるマルチターンを紹介した後に、ハンズオン形式にてWordファイルからマルチターンを作っていきたいと思います!
それではやっていきましょう!
「QnA Maker」でできるマルチターンの紹介
QnA Makerって一問一答だと思っていたんですが、マルチターン(会話の往復)ができるんです!
QnA Maker でできるマルチターンは選択肢を利用した会話になります。例えば、「経費申請のやり方を知りたい」という質問に対して「交通費ですか?」「食費ですか?」「イベント参加費ですか?」など選択肢を出して会話することができます。「何の経費申請ですか?」といった質問を投げかけて、その質問に答えてもらうという会話の流れはたぶん作れないです、、(できそうなら教えてください!)
また、マルチターンは .docx, .pdf, .xlsx などのファイルから作成できます!もちろん QnA Maker のポータルからも作成できます!
ハンズオン:QnA Maker でマルチターンを作る
今回は、経費申請のマニュアルファイルを想定して、Word ファイルから Knowledge Base を読み込んでマルチターンを作っていきたいと思います!
1. QnA Maker のリソースを作る
まず、リソースグループを作成します。
リソースグループの「リソースの作成」から「QnA Maker」を選択して、必要な情報を入力してリソースを作成します。
2. Word ファイルで Knowledge Base を作る
Microsoft ドキュメントに作り方やサンプルデータがあるので、詳しくは下記のサイトを参考にしてください!
・Microsoft ドキュメント 独自の複数ターンのドキュメントのビルド
https://docs.microsoft.com/ja-jp/azure/cognitive-services/qnamaker/how-to/multiturn-conversation#building-your-own-multi-turn-document
Word ファイルで Knowledge Base を作成する時に重要なのがフォントサイズです!フォントサイズの階層構造を元に選択肢を認識します。
仮に画像のような Word ファイルで Knowledge Base を作った場合を説明していきます。
この場合、「経費申請のやり方を知りたい」という質問に対して、「交通費の申請」「食費の申請」「イベント参加費の申請」の3つの選択肢を返します。
ここで「食費の申請」を選択すると「領収書を提出してください」と答えます。
「交通費の申請」を選択すると「Suicaを利用した場合」「現金を利用した場合」の2つの選択肢を返します。
ポイントは、見出し1とか見出し2で認識するのではなく、フォントサイズの違いで認識するところです!同じフォントサイズが選択肢として認識されます。
※ フォントサイズで階層構造が取れていればフォントサイズは何でも構いません。例えば、フォントサイズを以下のように変更しても、フォントサイズで階層構造が取れているので、先ほどと同じように認識してくれます。
3. Word ファイルからマルチターンを作る
QnA Maker の Portal(https://www.qnamaker.ai/)に移動します(必要に応じてSignInしてください)。「Create a knowledge base」をクリックします。
STEP2には、サブスクや先ほど作成した QnA Maker のリソースを選択します。
STEP3には、好きな名前を入力します。
STEP4には、マルチターンをアクティブ化、マルチターンのデフォルト文言の指定、先ほど作成したナレッジベースのファイルを指定します。
最後に「Create KB」をクリックして Knowledge Base を作成します。
※マルチターンのデフォルト文言は選択肢を表示する時に出るデフォルトの文言です。
完了すると Knowledge Base が出来上がってるかと思います。
「Save and train」してからテストで試してみると、選択肢付きのマルチターンが試せるかと思います!
まとめ
今回は「QnA Maker」のマルチターン(会話の往復)について、できること、できないこと、またマルチターンの作り方を紹介しました!QnA Maker のマルチターンは選択肢形式で会話する流れであること。マニュアルのファイルを少し整形して読み込ませるだけで、マルチターンの Knowledge Base が作成できること。この辺りがポイントでした!また Knowledge Base は Excel ファイルにエクスポート/インポートができるので、その辺りを使うと管理もできるかと思います。
今回作った QnA Maker を実際にWebアプリにチャットボットとして乗せるハンズオンは、こちらの「QnA Maker と Azure Bot Service でチャットボット作ってみた」を参考にしてください!
それでは!