最近、L is Bのボットエンジニアになった宮下です。
L is Bでは毎日、お弁当を注文しているのですが、その注文作業を自動化したいという要望がありました。 そこで、今回「毎日お弁当の注文を取ってくれるボット」を作成してみました。
作成した背景
いままで、お弁当の注文は、毎日担当の人が決まったトークルームに注文用のセレクトスタンプを投稿して、頼みたい人がセレクトスタンプを押すことで注文の集計をしていました。
ただ、この作業に関しては「いつも同じような時間に同じ注文を取るならば自動化したい」という声が以前より寄せられていました。
そこで今回は、なるべく現行の運用を再現しつつ、集計機能を付けて少し便利に感じられるように工夫した仕様にしました。
仕様
まず最初に、お弁当ボットをトークルームに招待します。
そうすると、決まった時間に、このトークルームへ注文を取りにきてくれるようになります。
締切の日になると、注文を集計して教えてくれます。
今回使った技術について
プログラミング言語 | DB | npmパッケージ |
---|---|---|
Node.js | Redis | daab, cron |
Redisに関しては、トークルームと注文履歴の保存、そして注文している際のメッセージ文を保存するのに使っています。
今回は、簡単なデータしか保存しないのでDBを使わなくても実装は出来たのですが、
保存しておけば、もしボットが止まってしまった場合でもデータを失わずに済むためRedisに保存しました。
cronに関しては注文を定期的に取る処理に用いています。
npmのcronはUnix系OSのcrontabとフィールドの書き方が異なるので、時間を設定するときは下記のサイトを見て設定してください。
www.npmjs.com
参考資料
ソースコードの詳細については、下記のGithubリポジトリに配置しました。 参考にしていただければと思います。 github.com
daabに関しましては、下記の記事の通りに環境構築するのが一番簡単です。
ボットの処理に関しては、下記に記載してある『daab 仕様』のページを見ていただければ詳しいことが書いてあります。
daab 仕様 – daabデベロッパー
最後に
最近、チャットボットは多くのところで注目を浴びています。
そのためなのか、『チャットボット=AIを使って自然に会話がしつつ課題を解決する』というようなイメージを持たれることもあります。
ですが私は、チャットボットの基本はプログラムであり、定型化された作業を自動化することに向いているものだと思っています。
本質は一般的なシステムソフトウェアと同じです。
決して難しいものではないので、まずはこのくらいの簡単なものを作成してみることをオススメします。