見出し画像

院内SEへの問い合わせをAIで!FAQ-botの作り方

最近私の勤務している病院が移転・拡張したことにより、建物が大きくなり部署も増え、職員も増えたので問い合わせの量も増えました。しかしシステム課の人員は移転前と同じままです。明らかに業務量が目に見えて増えるようになりました。人員はすぐには増やせないのでこの人数で対応を行わなければなりません。

そんな中移転作業の振り返りで、AIで業務負担を軽減できないかなぁと話が挙がりました。AIは最近のニュースで何度も話題なっていて興味はあったのですが、大企業とか大規模なデータを持っている会社しかできないだろうと思っていました。

しかし、同じ沖縄の情シス(情報システム課部門、社内SE)の方がDialogFlowというサービスを使ったAIを構築していると伺いました。調べてみると、そのDialogFlowを応用して、AIを使ったチャットボットシステムが意外と簡単にしかも無料で作れました。

(2023年6月29日追記)
※連携サービスの有料化により、紹介している内容では無料ではなくなりました。ご注意ください!!
代替手段はあると思いますので、ご参考程度にご覧ください。

今回はそのAI-FAQ-botの概要と、その作成方法についてご紹介いたします。

FAQ-botの概要


まず今回のbotはLINE株式会社の社員さんが紹介している記事を参考にして作成しました。この記事で私が構築したい内容がほぼ決まり、また構築方法もほとんど載っていたので大変参考になりました。

作成したbotはどんどん賢くなるチャットボットをテーマとして作成しました。ユーザーからの質問に答え、分からないことは管理者である院内SEに回答を伺い、その回答内容を学習して賢くなっていくbotになります。

具体的には

1. ユーザーからの質問で用意されているものなら自動で返答する
2. 用意されていない質問だと、管理者(院内SE)に回答を促す
3. 管理者(院内SE)が回答を行うと、回答内容をユーザーに返答する
4. 管理者(院内SE)が回答した内容をbotが学習し、次回以降の同じ質問は自動で返答する
このような流れで動いています。

システム図


今回構築したシステムは以下のサービスを組み合わせています。

・LINE
・DialogFlow
・Heroku

画像1

ユーザーはLINEを通してシステム課への問い合わせを行います。問い合わせの内容はクラウド上にあるサーバー(Heroku)のチャットボットプログラムに送られます。

その後、DialogFlowという自然言語処理サービスにより、問い合わせの意図を分析します。その分析した結果により回答できる場合は自動的に返答し、回答できない場合は管理者のLINEアカウントへ回答を促すシステムとなっています。

動作フロー

システムの動きの流れとしては以下のようになっています。左が自動応答で右が管理者からの回答が必要な場合の動きです。

画像2

まず自動応答の場合ですが、ユーザーが質問を送るとチャットボットPGはDialogFlowに質問意図の解析を依頼します。意図を特定出来たら対応するスキルで処理を行い、その結果をユーザーに返すことで自動応答を実現しています。

管理者から回答を行う場合、ユーザーからの質問をDialogFlowで意図解析するまでは同じですが、DialogFlowで意図が分からなかった場合、チャットボットPGは管理者へエスカレーションして管理者(院内SE)に問い合わせます。管理者が回答を行うとその回答内容をユーザーにそのまま転送を行います。さらにその回答内容をDialogFlowに学習させることで次回以降の同じ質問は自動で答えられるようにしていく仕組みになっています。

各種システムについて

今回は無料で構築するためにそれぞれ無料の範囲内で動かしていますが、制限があるので、その制約事項とともに各システムについてご説明します。

LINE

まずはLINEです。もうこれはメジャーなんで説明不要なくらい普及しているので、職員に使ってもらえると思い採用しました。しかしスマホで通常使っているLINEではなく、LINE公式アカウントというのを作成して使用しています。

LINE公式アカウントとはLINEで使っている機能を使え、LINEユーザーに情報発信や販促などを行いやすいものとなっています。そして今回の目的であるbotとして使うために必須のものとなっています。

そんなLINE公式アカウントですが、プランが3種類あり以下のように月額料金が変わります。

画像3

無料で使っているとメッセージ数が1,000通に制限されてしまいます。カウントされるメッセージは、botから返答されるメッセージも基本的にカウントされますし、LINE公式アカウントから配信できるメッセージもカウントされるので上限に達しないように注意が必要です。

Dialogflow

次にDialogFlowですが、このサービスはGoogleが提供している言語解析エンジンで様々なサービス連携することが可能です。LINEはもちろん、SlackやWeb、Androidスマホなどの「OK,Google」でも連携することが可能です。

こちらもいくつかの[プラン](https://cloud.google.com/dialogflow/pricing?hl=ja#es-agent)があり、今回は無料で使っていますが、無料プランでも今回導入しようと検討している範囲では問題なく使えそうなくらい制約事項があまりないです。

例えば、botが1分当たりに反応する回数が180回までだったり、反応する例文数が2,000までだったりと広めに範囲が取られているので、とりあえずは安心して使っていくことができそうです。

Heroku

次にHerokuです。HerokuはPaaS(Platform as a Service)と呼ばれるサービスの一種で、サーバー、OS、データベース、プログラム実行環境を稼働させることができます。私も以前個人開発で作ったWebサービスをHerokuで動かしていたので始めやすかったです。個人開発のようなスモールサービスで使うこともできるのでお勧めです。

そんなHerokuにもいくつかの[プラン](https://jp.heroku.com/pricing)があり、無料プランでは制限があり使用限度時間が1か月あたり550時間になります。クレジットカードを登録すると1000時間までになるので1日24時間×31日=744時間で常時起動が可能となります。しかしもう一つ制限があり、30分間アクセスがなければ自動的にスリープに入り、次の応答までに時間がかかってしまいます。私の環境だとスリープ後にLINEメッセージを送ると返信まで20秒前後かかりました。こちらはherokuのアドオンや外部サービスで定期的にアクセスするジョブなどを実行すれば回避できます。

チャットボット

肝心なプログラムですが、こちらはLINE株式会社の社員さんが公開している記事を参考にして作りました。

環境構築についても[qiita](https://qiita.com/nkjm)でいくつかの記事を公開しているので、それを参考にして構築することができました。GitHubで公開されているソースコードに少し修正を入れて自分の環境で使えるようにしていますので、ご興味がある方はご覧ください。

https://github.com/rikki-tamaki/faq-bot

動作フローのところで説明したスキルですが、具体的にこのボットは以下の3つのスキルで構成されています。

・robot-response
意図が特定できた問い合わせに対して、用意されている回答を自動的にユーザーに返すスキル意図が特定できた問い合わせに対して、用意されている回答を自動的にユーザーに返すスキル

・escalation
意図が特定できなかった問い合わせに対し、管理者に回答してもらうように促す

・human-response
エスカレーションされてきた問い合わせ内容に対し、管理者からの回答内容をユーザーに返信し、botに学習させる

導入手順

ここまででボットの概要を説明してきましたが、いかがでしたでしょうか?院内SEだけではなくそのほかの部署、事務部や総務、経理などよく問い合わせを受ける部署で役に立つと思います。またこのシステムは最近話題になってきているノンコーディングで構築できています。プログラムコードはありますが、公開しているコードを使用しているのでほぼ手を加えていません。そして運用行う上で例文や回答の追加はプログラムを修正する必要がなく、Web上のGUI画面で追加することができるのでプログラムを知らない方でも運用ができます。

ここからは具体的に構築手順について説明していきます。有料となり申し訳ありませんが、キャプチャなどを使って分かりやすく説明していますのでご興味がある方は是非ご覧ください。

作業環境はWindows 10 Home 64bitで行っています。

ここから先は

5,370字 / 23画像

¥ 300

この記事が気に入ったらサポートをしてみませんか?