Microsoft社のクラウドサービス Azure で提供されているQnA MakerとAzure Bot Serviceを利用してチャットボットを作成する手順を全3回でシェアします。QnA MakerとAzure Bot Serviceを組み合わせるとプログラミングなどを使わずにチャットボットを作成することができます。
チャットボット作成の流れ
チャットボットを実際に利用してもらえるようにするためには、3つのステップがあります。
- QnA Makerをデプロイする。
- QnA Makerにナレッジを登録する。
- チャットボットを公開する。
第1回をご覧になっていない方は下記リンクからご確認ください。
第2回:QnA Makerにナレッジを登録する。
今回は QnA Maker をデプロイしてナレッジベースが登録できる状態にするまでの手順をシェアします。
QnA Maker のポータルに接続します。前回手順から引き続き行う場合は、図中のQnA Makerと書かれたリンクをクリックします。
デプロイしたQnA Makerと knowledge baseを接続していきます。STEP2以降の欄に必要な情報を入力していきましょう。
最後に、「Create your KB」のボタンをクリックしてKBを作成します。
Knowledge baseのページにある「Add QnA pair」をクリックして Questionと Answer のペアを作成していきます。ペアを追加する際には、Add QnA pair をクリックして追加していきます。
Questionに設定されたワードが入力されると、Answerの内容を返す動きになります。QuestionとAnswerには派生しそうな複数の内容を設定することもできます。また、Questionには複数の単語を並べて設定することも出来ます。
ナレッジベースの登録ができたら、QnA MakerのKB登録画面の右上に表示されている Save and train のボタンクリックします。このボタンを押すことで登録したナレッジをQnA Makerに学習させることができます。
としゆき
Save and trainのボタンを押すとhang tight, this should only take a minute.のメッセージが表示されます。表示通り、少し待ちます。
学習が終わったら、QnA MakerのKB登録画面の右上に表示されている Test ボタンをクリックします。「Type your message here …」に登録したキーワードを入力するとAnswerに設定した内容が応答されることを確認してください。下の画像だと、 get と look は設定していますが、 over は未設定のため、KBに一致するものが見当たらなかったという内容のメッセージが表示されています。
英単語を入力すると例文を返すというシンプルな機能ですが、QuestionとAnswerのカスタマイズをすることで英語辞書としても利用できるチャットボットに成長させることもできます。
単語の例文と意味を教えてくれるチャットボットにカスタマイズする場合、「単語(変数) + 意味」、「単語(変数) + 例文」のQuestionを与える事で機能を追加できます。
- Question:know 意味 Answer:知っている
- Question:know 例文 Answer:know the boy
上記2つのパラメータを与えるだけで、「knowの意味を教えて」という入力に対して意味を教えてくれる機能を実装することが来ます。自然言語処理はQnA Maker(Cognitive Services)が行ってくれるので、日本語をフルフレーズで登録する必要はなく、キーワードだけ登録すればQnA Makerが適切なナレッジベースを参照してくれます。
ここまでで、チャットボットの中身については完成です。次回(第3回)は、作成したチャットボットを外部から利用するための設定方法を紹介していきます。