CASE & ACTIVITY
インフォテックの取り組み
  • 調査・研究

IBM Watson®を使って社内手続きのことを教えてくれるbotを作成してみた②

 前記事「 IBM Watson®を使って社内手続きのことを教えてくれるbotを作成してみた①  」の続きです。

 前回の内容を簡単にまとめると、
人事総務部門へ社員から社内手続きに関する問い合わせ対応を少しでも軽減するために 、社内コミュニケーションツールとして利用しているSlack上に問い合わせに対する回答を自動で返信してくれるbotの作成に取り組んでいました。

 今回は、Slack上で動くbotを作成して完成させます。 内容は以下の3つになります。 
「①Slackのbotアプリを設定する。」
「②AWS上に立てたEC2の仮想サーバを設定する。」
「③問い合わせに応答するプログラムを作成する。」

Slackのbotアプリを設定する

①利用しているSlackのワークスペースにBotsを追加する ※投稿日時点の手順となります。

①-1 「その他管理項目」⇒「App管理」⇒Appディレクトリを検索に「Bots」と入力 


(画像をクリックすると拡大します)

 ①-2 「設定を追加」をクリック


(画像をクリックすると拡大します)

 ①-3 ユーザー名に作成するBotの名前を入力し、「ボットインテグレーションを追加する」をクリック


(画像をクリックすると拡大します)

※bot作成が2回目以降の場合は、「その他管理項目」⇒「App管理」⇒「カスタムインテグレーション」と進むことで、Bots追加画面(①-2)に遷移るので、Botsを追加してください。

②Botsの設定を編集する

②-1  設定の鉛筆マークをクリックして、Bots編集画面に遷移する


(画像をクリックすると拡大します)

②-2 APIトークンは、プログラムで使用するためコピーしておく。Slack上に表示されるBotのアイコンを設定する


画像をクリックすると拡大します)

これで、SlackのBot設定は、完了になります。

AWS上に立てたEC2の仮想サーバを設定する

 EC2の仮想サーバ構築に関しては、 参考になるサイトが沢山あるので、ここでは 省略します。サーバサイドの言語はNode.jsを使用しており、Node.js及び、パッケージ管理であるnpmが利用可能な状態であることを前提に記載致します。
Slackのbotを動かす上で、必要なパッケージbotkitとIBM Watson® のAPI(Watson Developer Cloud)をインストールします。
※botkitとは、Slackのbotを作るフレームワークになります。

問い合わせに応答するプログラムを作成する

 作成するプログラムの大まかな流れは以下の通りです。

①Slackからメッセージを受け取る

②①のメッセージをNLCに問い合わせする

③②の問い合わせ結果から該当するイベントのメッセージを作成する

④③で作成したメッセージをSlackへ返す

 実際に作成したプログラムの一部を以下に記載致します。

動作テストを行う

実際に、メッセージを入れて問い合わせしてみます。
※作成したSlackbotは、ダイレクトメッセージで反応するようにしています。

・回答が得られそうなメッセージ「結婚します。」での結果

該当する問い合わせ結果が7割を超えたため、該当イベントとして回答がされました。

・回答が得られなさそうなメッセージ「てすと」での結果

該当する問い合わせ内容が不明確で一番高い割合が7割を下回ったため、該当イベント無しとして、再度入力を促す回答になりました。

 動作テストでは、入力が予想されるメッセージで何度もテストをしました。
Slackに入力できる内容は自由となっているため、想定外の入力も多々でてくるかと思いますが、今後は、実際に入力された内容を追加で定期的に学習させることにより、精度の高いイベントの回答ができるbotになっていくと思います。

 これまで2回にわたってbotの作成について紹介してきました。実際にbotの開発を行ってみるとプログラムは簡単に作ることができましたが、今回のようにIBM Watson® と組み合わせた場合、実用レベルまでに回答ができる精度を上げるには時間がかかることが分かりました。今後は、他のAPIと組み合わせたbotの作成もしてみたいと思います。