読者です 読者をやめる 読者になる 読者になる

L is Bエンジニアブログ

ビジネス用メッセンジャーdirectのエンジニアによるブログ

LisBエンジニアブログ

ビジネスチャットdirectのエンジニアブログ

お弁当注文ボットを作成してみました。

最近、L is Bのボットエンジニアになった宮下です。

L is Bでは毎日、お弁当を注文しているのですが、その注文作業を自動化したいという要望がありました。 そこで、今回「毎日お弁当の注文を取ってくれるボット」を作成してみました。

作成した背景

いままで、お弁当の注文は、毎日担当の人が決まったトークルームに注文用のセレクトスタンプを投稿して、頼みたい人がセレクトスタンプを押すことで注文の集計をしていました。
ただ、この作業に関しては「いつも同じような時間に同じ注文を取るならば自動化したい」という声が以前より寄せられていました。
そこで今回は、なるべく現行の運用を再現しつつ、集計機能を付けて少し便利に感じられるように工夫した仕様にしました。

仕様

まず最初に、お弁当ボットをトークルームに招待します。

f:id:yuna_miyashita:20170324170142p:plain

そうすると、決まった時間に、このトークルームへ注文を取りにきてくれるようになります。

f:id:yuna_miyashita:20170324164805p:plain

締切の日になると、注文を集計して教えてくれます。

f:id:yuna_miyashita:20170324181318p:plain

今回使った技術について

プログラミング言語 DB npmパッケージ
Node.js Redis daab, cron

Redisに関しては、トークルームと注文履歴の保存、そして注文している際のメッセージ文を保存するのに使っています。
今回は、簡単なデータしか保存しないのでDBを使わなくても実装は出来たのですが、
保存しておけば、もしボットが止まってしまった場合でもデータを失わずに済むためRedisに保存しました。

cronに関しては注文を定期的に取る処理に用いています。
npmのcronはUnix系OSのcrontabとフィールドの書き方が異なるので、時間を設定するときは下記のサイトを見て設定してください。
www.npmjs.com

参考資料

ソースコードの詳細については、下記のGithubリポジトリに配置しました。 参考にしていただければと思います。 github.com

daabに関しましては、下記の記事の通りに環境構築するのが一番簡単です。 blog.lisb.direct

ボットの処理に関しては、下記に記載してある『daab 仕様』のページを見ていただければ詳しいことが書いてあります。
daab 仕様 - daabデベロッパー

最後に

最近、チャットボットは多くのところで注目を浴びています。
そのためなのか、『チャットボット=AIを使って自然に会話がしつつ課題を解決する』というようなイメージを持たれることもあります。
ですが私は、チャットボットの基本はプログラムであり、定型化された作業を自動化することに向いているものだと思っています。
本質は一般的なシステムソフトウェアと同じです。
決して難しいものではないので、まずはこのくらいの簡単なものを作成してみることをオススメします。