QnA Maker を使ったボットがSkypeからRejectされた。その修正対応の続きを書く。
testedquality-tech.hatenadiary.jp
先に結論からいうと正式にSkypeボットとして認証を得た状態で公開できた。以下の説明よりボットを見てもらったほうが早いかもしれない。単純に水産高校&商船専門高等学校を探すボットだ。インストール先は以下に掲載した。
前回記載したアイコンの修正はいつまでもできなかった。他にもうまくいかずずっと悩んでいるのをSNSでつぶやいたところ「Cogbotコミュニティ」を運営されている方よりFacebookグループにお誘いいただき、そこで悩みを相談してみた。
そこで代用手段などとあわせて「やりたいことからするとQnA Maker以外の方法がよくないか」というアプリ設計での懸念点も指摘いただいた。悩みに答えてくれる人がいるのは本当にありがたかった。感謝しております。
アドバイスも鑑み結局Bot Servicesを一度削除してアイコンを新規設定したら入れ替えができた。再度入れ替えはNGとなったため、再現性があるとReject連絡をくれたサポートにはメールしておいた。そこで他のReject対応をしている際に、QnA Makerで分別するはずの固定値での検索がうまくいかない箇所を見つけた。
それは「沖縄県宮古総合実業高等学校」と「岩手県立宮古水産高等学校」という2校。
宮古総合 → 沖縄県の高校
宮古水産 → 岩手県の高校
という回答を期待していたが、宮古総合だとNot Foundがどうしても返答される状況を変えられなかった。
正しい高校名を返答できることは必須条件なので、これは致命的である。悩んだ末に文字列での検索はプログラムコストが高い、のでメニュー形式を採用して高校名選択を確実にするように変更することにした。これより再設計&プロジェクトの新規作成の方法をとることにした。
メニュー形式などボットの作りについての設計は、先月のde:code2018において紹介メールがきていたこちらで勉強した。最初にボット側から話しかけるというSkypeボットの動作を調べているときにもこちらの説明が一番わかりやすかった。
Chatbotから話しかける(プロアクティブメッセージの送信) | Think IT(シンクイット)
- [Bot Framework]
この連載をde:code2018からのメールで知りましたが公式英語ドキュメントより体系的にわかりやすい!この週末一日1回目からやってます。ありがたいです!!
2018/06/10 10:00
メニューについては以下のフローに沿って高校名を固定指定してもらうようにした。
メニュー形式のいいところはユーザーの選択肢と値を固定できることだ。以下は地区選択後のフローの動作。
最後の高校情報についてはDBの利用を検討した。今後の修正などに対応したかったためであるが、AzureでDBを構築すると最低でも8000円/月かかる。今回はできる限り安く簡単にできることも必要だったので、Azure Table Storage を使うことにした。
公式サイトにソースコードも詳しく出ており、Storage管理にもアプリ「Microsoft Azure Storage Explorer 」が提供されていてDBというかExcelのように更新修正が簡単にできる。ソースコードはCosmos DBと共用らしい。
以下のような管理画面でデータを確認、CSV登録も簡易検索もできる。
ソースコードは前述Think IT連載のソースコードを解析して作成。フローが一緒に掲載される親切設計のため、初心者の自分にも動きがわかりやすく、設計方法が理解できた。今回はソースも複数になることもあり、開発も一般的なVisual Studio+App Service にアップロードする方法となった。Bot Servies との連携はこの数か月で2度ほどUIも手順も変わってしまったので手探りだったが、最終的に動作するようになった。
Skype申請は前回の改善点はすべて反映、ヘルプページやプライバシーポリシーもアイコンやスクリーンショットをすべて変更した。アイコンは最近賢いと評判のPower Pointによるデザイン提案を利用してみた。枠を付けてみたのはその提案を採用したのだ。ということで、申請後初回で認証を得ることができた。