自作RPA、Slackからロボットを起動する方法

RPA ,Slack

 

RPAのロボを自然な会話でSlackから動かす Part 1

この記事では、SlackとUipathで作成したRPA用のロボットをつなげて、Slack上で自分の好きな言葉に反応させて、RPAのロボットを起動することができます。例えば、会社の会議予約を行うようなロボットを作成しておき、Slack上(いつでもどこでも)で、Botに対して、会議室の予約をお願いすることが可能になります。もし、この内容を読んで興味を持たれた場合、より詳細に説明しますのでコメントまたは、問い合わせをお願いいたします。

利用する技術

  1. Uipath
  2. Python / python-slackclient
  3. Slack / Slack-Api
  4. Dialog Flow

作成までの流れ

  1. RPAのロボを作成し、起動用のバッチファイルを作成する
  2. Slack上でBotを作成し、ローカルで作成したPythonと接続する
  3. 特定のKeywordに反応させて、ロボ起動用のバッチを実行させる。
  4. Dialog Flowを使って、自然な言語処理を可能にする。

 

開発前提条件

以下の条件は整っている前提です。この記事では説明を省略します。

  1. Slack のアカウント作成済み
  2. ローカル端末のPython のインストール済み
  3. Uipathのロボット作成済み

1.RPAロボの作成と起動用バッチファイルの作成

サンプルのロボットを作成し、以下のようなバッチファイルを作成します。
下記で実行するPythonと同じディレクトリに配置する。

RobotStart.bat

 

2.Slack上でBotを作成し、ローカルで作成したPythonと接続する

以下のブログの”Creating a Slack Application”のChapterを参考にPythonと接続するためのBotを作成する。

A Guide to Building an Intelligent Chatbot for Slack using Dialogflow API

3.特定のKeywordに反応させて、ロボ起動用のバッチを実行させる

上記のステップで利用したPythonのソースを変更して、

def handle_command(slack_api, command, channel): のメソッド内に、以下の”elif”のような記述を加える。これにより、Slack上で、XXXXXとメッセージを入力したらそれをトリガーにして、作成したバッチが起動される。

ここまでやれば、自分で作成したロボットをSlack上から実行できるようになります。

4.Dialog Flowを使って、自然な言語処理を可能にする。

乞うご期待。すみません、力尽きたので続きは今度で。

bot が面白いです。botkit/heroku/slackついでに色々

上海生活 yos-blog yos blo IT bot botkit heroku

自作BOT 作成結果

最近、興味があるチャットbot(ryunosuke)の作成です。

ryunosuke のプロフィール(仮)

・性別 男
・年齢 30歳
・血液型 B型
・誕生日 1987/5/5

ryunosukeと会話してみる

これが今回のアウトプットです。実際の会話はこんな感じ(途中からしりとり)


と。まぁこんな感じで、適当な発言に対して、適当なレスポンスを返してくれるというすごいシンプルなもの。(特に実用性はないですが、、、)
一応解説を入れると反応パターンは以下の3つです。
・誰かがチャンネルに新規で入ってきた時
「「◯◯って呼んで」って話しかけると、名前を覚えますよ!」と、名前覚えるぜアピール
・挨拶への反応 まずは以下に反応させてみる
[‘挨拶’, ‘こんにちは’, ‘Bot’, ‘あなた’, ‘誰’, ‘だれ’, ‘自己紹介’]
・@ryunosuke でメンションする

【その1】メンションされて、かつ[しりとりしよう]というと、しりとり開始
【その2】メンションされて、適当な発言、会話始まります。

ん?試してみたいですか!?まさか?ryunosukeと会話して見たいですか!??

そ、そんな方は、以下からアクセス!(まだ客寄せが上手じゃないですね・・・)

ryunosukeと会話を試すのはこちら(slack チャンネルへのご招待)

どうぞこちらから!!

ryu nosukeと遊んで見たい方はこちらからメールを送って、チャンネルに登録してもらえれば遊べます。

では、そもそもbot とは?

 

色々な説明があると思いますが、個人的な理解としては以下

  • あるアクションをトリガーにして自動で、特定のレスポンスを返す動作を行うもの。
  • 色々な活用のされ方があるが狭義にはchatの中で、特定のメッセージに対して、特定のアクションを実行するもの

 

代表的なbot

  • Siri
  • Twitterの自動つぶやき系
  • りんな(LINEとマイクロソフト共同開発)

 

興味ある方は、この辺を参考にすればいいかと。

参考botとは 

参考botマーケティング活用事例

参考期待される世界のチャットボット・サービス

 

上記以外でこれは興味深いと思ったbot 活用事例

参考シンガポールの政府が作ったBot

 公共サービスへのアクセス方法や質問をchat形式で案内

参考家探しチャットbot

 家の検索から不動産購入のローン事例の紹介など、botでここまでできるのか、、、というサービス

参考LINEとみずほ銀行

 公式アカウントに特定のスタンプを押すと、残高照会とかできちゃう・・これも便利だな。。

 

中国でのBot事情

実は、中国ではbotは実サービスに相当組み込まれています。が、まだ便利さをあまり体感できていない。。。

参考先駆者Wechatに見る、botプラットフォームの未来

 

今回自作botにあたり試したこと(botkit/heroku/slackなどなど)

・heroku
・slack invite api
・slack bot
・botkit
・google app sctript
・google form
・git
・node.js

source refer

  • https://github.com/howdyai/botkit/blob/master/readme.md
  • https://github.com/howdyai/botkit/blob/master/slack_bot.js
  • https://github.com/howdyai/botkit/blob/master/readme-slack.md

 

まとめ

いつもはさらっと入口しかやらないのですが、このBot作成に関してはかなり未来を感じます。なのでもうちょっと続けて色々やってみようかと。

今回は作り方の詳細とかを書けなかったので、興味がある方は別途連絡ください。よろしくお願いします

みてさわって動かして(自作チャット)

AWS Ec2で自作のチャット

いろいろな情報を元にNode.js +Socket.io+ bootstrap で構築してみました。結構前に試してはいたのですが、アウトプットとして発信できていなかったので再度行いました。

 

最終的な成果は、以下で確認して下さい。めっちゃ簡単で、機能不足もありますが、チャットです。

 

ログインボタンを押して初めて下さい。(ブラウザがsafariだとダメでした。。。)

 

ここをクリック(中止してます) yos-chat

 

複数ブラウザか複数タブでアクセスすると、通信が双方向に走るのがわかります。
片方でのメッセージを送ると、それが送られるとか、あとは現在チャットに接続している人数も出ます。ちょこちょこっといじってみて下さい。動作してなかったら、予期せぬエラーなので、コメント欄に書いて下さい・・)

 

今後もどこかで随時機能追加できたらなーと思ってます。 今回やったことをまとめると以下になります。

続きを読むみてさわって動かして(自作チャット)