【GCP】Q&A自動回答botを作ろう~説明編~【Dialogflow】

こんにちは。4号です!
最近やりたいこととやらなきゃいけないことが多すぎて忙しいです。
自分がもう一人欲しいですね。はい。
ネットサーフィン用と趣味用、あと車校用と仕事用…

4人欲しいですね。はい。

今回は、Dialogflow(後で解説)でQ&A自動回答botを作ろうって話です。

今まで社内のQ&A(福利厚生とか給与に関して)はスプレッドシートで管理していて、
新しい質問はフォームで受け付けて総務の方が答えるという形だったのですが、
見たいQ&Aを見つけるのに時間がかかるという課題がありました。
質問内容の分類などもしてフィルタをかければある程度は絞り込めるようにしていたのですが、
一つのカテゴリの中で数百個も質問があったら元も子も親も友人もないですよね
その上、探してた質問がなかったら「何の時間だったんだ…」ってなりますよね。

そこで今回は、GCP(Google Cloud Platform)にある Dialogflow というサービスを使って、上記の課題を解決していこうと思います!

Dialogflowとは

Dialogflowとは先述したとおりGCP内にあるサービスで、簡単にチャットボットを作れるサービスです。
よくホームページの右下に固定されてるLINEのトーク画面のようなものが作れます。
基本無料で使えます。

開発者側の流れとしては、

①ユーザー側から送られてくるであろうフレーズ(メッセージ)を予想して、それに対するレスポンスを登録する。
②webサイトに埋め込む

以上!!!

ですが、このチャットボット少々問題点がございます。

AIのおかげである程度のブレ(だから⇔なので、できますか⇔できる?等)は分析して適切なレスポンスを返してくれるのですが、
ギャル語でフレーズが送られてきたり、レスポンスの登録数が増えたりすると、AIがサボり始めます(登録したフレーズにより近い文章でないと、適切なレスポンスが返らなくなります)。

そこで、この問題を解決する方法が2つほど。

  • ①でフレーズとレスポンスを登録する際にフレーズを複数登録することができるので、それでフレーズのブレを拾えるようにする。
  • チャット画面に選択肢を設けることができるので、それで想定外のフレーズが送られてこないようにする。

前者は作業量がめちゃくちゃ増えると思うので、
後者の選択肢を設けるやり方でフレーズのブレ問題は解決ですね。

仕様

スプレッドシートのQ&Aでは、一つのカテゴリの中で数百個も質問があった場合、見たいQ&Aを見つけるのに時間がかかるという課題がありました。

なので、カテゴリを1段階ではなく、2段階3段階に細分化することで、探す時間の短縮を図ります。

そして、Dialogflowはフレーズのブレを拾いにくいという欠点があったので、選択肢を設けて想定外のフレーズが送られてこないようにします。

こんな感じ。

疲れたので実装編はまた次回

野村 航平

高専でC・Java、プログラミングスクールにてRuby・JavaScript・SQL・AWSなどを学習後、現在のヒカリシステムに入社。
木下さんの弟子をやらせてもらっています。

関連記事