背景
社員からのシステムトラブルや事務的な申請の対応方法などの問い合わせがベラボーに多くの工数を取られている
実現したい事
問い合わせとか来ても(ぶっちゃけ)対応したくない。時間取られたくない。
だから、自動で答えてくれるBotをサクっと作る。
実現方法
構成
チャット:slack
質問に対しての回答を考える:watson
watsonの回答を蓄積する:kintone
全体:node-red
・最初のNLCでおおまかに何に関しての質問かを分類する。
(基幹システム?事務手続き?NW?サーバー?PC?どれなんだ)
・次の並列NLCで問い合わせの内容を分類する。
ここでは1つのNLCではゴールまでたどり着かないので2つの並列とした。
2つでも足りない場合は増やせばいいと思う。
フロー(node-red)
NLCを選んだ理由
いろいろ調べてみたけど、トレーニング方法がポイントで判断しました。
Conversation
トレーニング方法
-フロー作る
-インテントの基になる単語をいっぱい登録する
-エンティティの基になる単語をいっぱい登録する
-意図したフローに流れなかった場合は修正する
※フロー作るのが面倒くさいなと思った。。。
Retrieve & Rank
トレーニング方法
-質問に対して、回答の精度を紐付けする(回答合ってるか、合ってないかを評価する)
-それを登録する
※作ってる最中にRetrieve & RankのサービスがなくなりDiscoveryに統合されてしまった。
サービスが不安定(API投げても「サーバ不安定です」みたいなレスが返ってくる)なのと、ドキュメントまだ少ないので選択肢から外しました。
まとめ
いろいろやってみましたが、きっとDiscoveryが最適解。もうちょっと安定するまでは様子見。
NLCも使い易いので問題ない印象。
長文に対してどう処理したらいいのかイメージつかないので、ここは残課題。
node-redのフローの内容とか完全に割愛したので、ご要望とかもらえたら次回でもやろうと思います。