LT風味

一口アウトプット

Azure Bot ServiceでQnA Maker APIを使う。

追記

Build 2018前に書いた記事なんですが、未だにアクセスしていただいてるみたいなので、最新版の記事へのリンクを貼っておきます。

qiita.com

f:id:tantal73:20180408154447p:plain

Cognitive Service入門を読んで、気になったので試して見た。QnA Maler APIは現在プレビュー版なので、今後仕様変更がされる可能性があるので注意。

QnA APIとは ?

FAQページやファイルを指定するだけで、お問い合わせ対応REST APIが爆速で作成できる。現在は英語しか正式対応していないが、日本語でも(他の言語でも)動く。 作ったAPIは、Bot Frameworkを通してslackやskypeと連携したbotにできる。

公式の概要図

どのくらいの精度なのかは、把握してないけど、公式デモを動かしたところ、かなり良さげ。

QnA APIでの設定

QnA Maker公式サイトにアクセスして、Microsoft アカウントにサインインする。

Create new serviceを選択して新しいサービスを作成する。

f:id:tantal73:20180408161327p:plain

サービス化したいFAQページのURLを指定するか、ファイルをアップロードする。ここではQnAのFAQページを指定した。

azure.microsoft.com

ページ下部のCreateを押すと数秒秒程度で作成が完了する。 めっちゃ早くて正直感動した。 FAQの量が多くなると処理時間は伸びそうだが、それでも数分で終わるらしい。

f:id:tantal73:20180408162455p:plain

作成が完了すると以下のような画面になる。

f:id:tantal73:20180408162707p:plain

FAQの追加

新しく質問・回答のペアを追加することもできる。

右上のAdd new QnA Pairからペアを追加できる f:id:tantal73:20180408163148p:plain

追加したらSave and retrainでモデルを更新する。

モデルのテスト

学習させたモデルはTestタブからすぐにテストができる。

f:id:tantal73:20180408163517p:plain

APIの発行

設定が完了したらPublichからAPIを公開する。

f:id:tantal73:20180408164225p:plain

後々QnAKnowledgebaseIdとQnASubscriptionKeyが必要になるので、メモしておく。

/knowledgebases/QnAKnowledgebaseId/generateAnswer

Ocp-Apim-Subscription-Key: QnASubscriptionKey

Azure Bot Serviceの設定

f:id:tantal73:20180408164757p:plain

新規追加からWeb App Bot もしくはFunctions Botを選択する。 違いは料金体系だけ。 お試しレベルならどちらでも問題ない。

以下ではWeb App Botを使用する。

f:id:tantal73:20180408165532p:plain

ボットテンプレートからQuestion and Answerを指定する。

Azure Bot ServiceがGAになってからは、アプリIDとパスワードは自動生成してくれるようになった。地味に楽。

作成ボタンを押してデプロイ。しばらく待つ。

作成されたリソースに移動し、 アプリケーション設定タブのQnAKnowledgebaseIdとQnASubscriptionKeyを設定して保存する

f:id:tantal73:20180408170614p:plain

Botのテスト

Web チャットでテストタブで、アプリの動作テストができる。

f:id:tantal73:20180408172747p:plain

まとめ

QnA Maker APIを利用すると問い合わせ対応botが素早く作れる。Azure Bot Serviceとの連携もカンタン。 GAが今から楽しみ。

次は作成したアプリをslackと連携させる