はてなブログの片付けをしているとき、自分の昔の記事をみて「QnA Maker がGA(一般提供開始)したのを忘れていた」ことを思い出した。前回はまだまだというブログを残している。
testedquality-tech.hatenadiary.jp
実は別ブログにて全国各地の水産高校サイトを巡回し記録するということをしている。URL一覧があってもなかなか面倒だし、高校名など固有名詞がもう年で覚えられない。ということで、こういう時は自分以外の外部記憶を増やすしかない、すなわちクラウドを利用することにした。GAしているQnA Maker を使いさらにBot に答えてもらうように作成することにした。
Bot の作成方法を検討する
QnA Maker を利用する場合、通常はFAQ サイトなどから自動作成を行うのが多いと思う。今回のBot作成には以下を参考にしたが、ここでも仙台市のFAQ サイトを利用していた。
最初はFAQを作ることを検討し、「福岡県の水産高校は?」というような質問を複数考えた。がしかし、今回答えてほしいのは水産高校の名称とURLなので、事実上県名や名称だけ部分一致すればよい。「福岡」とか「福岡県」だけで水産高校は絞り込めるし、水産高校は県に最大4つなので回答可能であるはず。実際にテストしていると日本語表記が短いと単語とみなされるのかマッチしないことが多いことも判明した。
日本語で口語調のものは、まだちょっとQnA Maker には難しいことが分かったので、固定質問できる形とLUIS使うを基本にする。「無料ですか?」と「無料ですか」でmatchしないのは厳しい・・・
— testedquality@de:code2018 (@testedquality) 2018年5月10日
ここで選択肢としては
- Azure Bot Framework にてコードを書いてよしなに分岐する
- LUISを利用して定型質問を作ってみる
- QnA Maker 向けの単語を並べて、単一回答に結び付くようにする
1.は都道府県別で47個それぞれ対応するのかという面倒くさいことになるので最終手段。2.が常套手段かと思いながらLUIS画面を使いだしたが
「XXX県の水産高校は?」「◇◇水産高校のURLは?」
くらいしか思いつかず。これなら、県名や高校名だけ入力するほうが質問する自分が楽なのでは?ということで、3.のQnA Maker での登録に決定した。
QnA Maker 作成
各高校ごとに表示させたい回答を高校単位に1つにした。高校名、住所とURLを一つに。追加で地区別の項目も作った。これらをExcelにまとめた。
QnA Maker への登録は以下のように高校名、県名、高校の略称がHPにある場合にはそれも追加した。
県名や略称をいれると情報が戻るようになる。力業であるが目的は達成できている。
これをPublishして外部呼出し可能にしたら、Bot Frameworkに移動して連携処理を作成する。最初の記事では、Bot Framework がまだプレビューのころで今は新規作成方法が異なる。以下の記事が最新に近いので、参考にしながらテンプレートで【Question and Answer】 を選択して作成してみた。
チャットボット 作成ツール Web App Bot とは?
- [Microsoft]
- [AI]
- [プログラミング]
- [Azure]
- [Bot Framework]
Bot Frameworkを使うときWeb App Bot についての記事は少ないのでありがたい。
2018/05/12 01:26
作成したbot サービスを開いてアプリケーション設定 というメニューをクリック、開いた画面下 QnAKnowledgebaseId 、QnAAuthKey などが空である。ここに QnA Maker から値を設定。
設定方法はQnA Maker マニュアル に記載あり。以下のように対応しているらしいがなんで一覧表ではないのか?マニュアルないとわからないよ。
Create a QnA bot with Azure Bot Service - Azure Cognitive Services | Microsoft Docs
これを保存したら、ブレードの上にある「Webチャットでテスト」画面で接続を確認する。正しければQnA Maker での回答が得られる。よかった!
これでbotサービスとしては完成。次回外部連携で使えるようにする。SkypeとLINEを予定している。一番時間がかかったのはImport Formatで前回ひっかかったからと、手動で1つづつ登録した点。あとQnA Maker はタグが利用可能なのでGoogle Map向けURLで所在地確認をできるようにしておきたい。でも1日で作成できたのでよしとする。