【Slack】15分で作る猫ボット (Hubot + 人工知能ボットAPI)

2016年6月24日 | OTA

こんにちは、コーポレートデザイン部の太田です。入社して1ヶ月ほど経った5月から、新入社員内で使用するコミュニケーションツールをSlackに一本化しました。

slack-728x460

Slackを導入した目的と活用事例を三回の連載にてご紹介いたします。最終回の今回はBotの作り方をご紹介します。

第1回:【Slack】新入社員のコミュニケーションツールとして導入しました
第2回:【Slack】新入社員チームで使用している外部連携ツールやBotの使い方を紹介します
第3回:【Slack】30分で作る雑談ボット(Hubot+人工知能ボットAPI)

概要

Hubotとは

Hubot is your company’s robot. (公式サイトより)

HubotはGitHub謹製のBOT開発・実行フレームワークです。MIT ライセンスで公開されたOSSであり、Node.jsが動く環境で動作します。
タスクの自動化が可能で、独自のスクリプト(CoffeeScript) を追加できます。また、異なるチャットにもそれぞれのアダプターを使用することで対応できるため、一度書いた Hubotのスクリプトはどのチャットでも動きます。

人工知能ボットAPIとは

User Localが提供している人工知能ボットAPIを利用して雑談ボットを作成します。人口知能ボットAPIは、ボット開発に必要となる自然言語処理ライブラリを集約したものです。現時点で以下のような機能が提供されています。(APIキーの取得には事前の申し込みが必要です。)

  • 全自動会話API
  • 氏名自動識別API
  • キャラクター会話API
  • 形態素解析API

今回作成する猫ボット

全自動会話APIとキャラクター会話APIを使用してHubotのスクリプトを作成し、ユーザーのレスポンスに対して猫語で返答するボットを作成します。

cat#randomで猫を飼おう!

ボットの作成手順

Slack側の準備

Apps & Integrationでhubotをインストールします。

FireShot Capture 10 - Hubot I OTA310 Slack - https___ota310.slack.com_apps_A0F7XDU93-hubot

hubotの設定画面上でAdd Configurationをクリックし、新しいボットの設定を行います。

FireShot Capture 8 - Hubot I eA2016 Slack - https___ea2016-team.slack.com_services_B1GU8P683

以上でSlack側でのHubot設定は完了です。ここで表示されているAPI Tokenは後ほど使用するのでメモしてください。

前提

下記の環境が必要です。

  • Node.js 0.10.42
  • npm 1.3.6
  • hubot 2.19.0
  • coffeescript 1.10.0

本記事で使用しているサーバーはAmazon EC2(Amazon Linux)です。AMIの設定方法に関しては割愛させていただきます。(※セキュリティグループ設定でHTTPの80番ポートを開放してください。)

以降は、インスタンスへの接続を完了させた状態での手順です。

必要な環境を整える

Node.js・npm・hubot・coffee-script・yo・generator-hubotをインストールします。

Hubotを作成

Yeoman-generator(Yo)を使用してHubotの雛形を展開します。

ボット名のディレクトリ(今回はcat)を作成し、catディレクトリ内で yo hubot を実行して対話形式で名前などを設定をします。

yoyo hubotを実行してボットの基本設定を行う

Slack用アダプタのインストール

今回はSlackに接続することを目的としているので、Slack用のアダプターをインストールします。hipchatやIRCなど他のツール用のアダプターも多数用意されています。

bin/hubotを調整

binディレクトリ直下にあるhubotファイルに必要なトークンなどを記載します。

雑談ボットを動かすためのスクリプトを作成

scriptsディレクトリ直下にcat.coffeeを作成します。

Hubotを起動する

作成したBOTをSlackのチャンネルに招待してメッセージを送る

お好みのチャンネルで、/invite @bot_nameして作成したbotをチャンネルに追加してください。

以上で猫ボットは完成です。しかし、この状態でインスタンスへの接続を解除するとボットがログアウトしてしまいます。次の章では、ボットを常駐させる方法をご紹介します。

ボットを常駐させる

今回は、foreverというnode.js用のデーモンマネージャーを使用して作成したボットを常駐させます。

foreverをインストール

PATHを設定

bin/hubotを調整

常駐に関するコマンド

以上で、作成した猫ボットを常駐させることが出来ます。


一度Hubotを作成しておけば、スクリプトを追加するだけで簡単に機能を拡充することが出来ます。また、他のチャットツールにもアダプターを取り替えるだけで接続することが可能です。

お好みのチャットボットを開発してタスクの自動化を図りましょう。

第1回:【Slack】新入社員のコミュニケーションツールとして導入しました
第2回:【Slack】新入社員チームで使用している外部連携ツールやBotの使い方を紹介します
第3回:【Slack】30分で作る雑談ボット(Hubot+人工知能ボットAPI)

PICK UP

OTA

ライター

2016年入社。データエンジニア。 緩急で抑える投球が持ち味。制球力に課題を残す。

お問い合わせ

サービスに関するご相談は
こちらよりお気軽にお問い合わせください。

e-Agencyの様々な情報をSNSでお届けします!