Translate

2017年4月4日火曜日

HuBotを使ってRocketChat用のチャットボットを試しに作ってみる

機械学習した会話システムのUIにするチャットシステムとして
docker-composeコマンドで一発起動できるRocketChatを立ち上げた。

次は、チャットボットをあげないといけない。

いろいろ調べると、GitHub御謹製の HuBot を紹介している記事が
ちらほら..

docker-composeでRocketChatと一緒にあげている人もいるが..
運用上、RocketChatはそのままでチャットボットだけ止めたいなんて場合もあるから
個別にあげることにした。

dockerコマンドスクリプトを組むのは厄介なので
別途違うディレクトリで次のようなdocker-compose.ymlを用意した。

version: '2'

services:

  hubot:
    image: rocketchat/hubot-rocketchat:latest
    dns:
      - <社内DNSサーバ IPアドレス1>
      - <社内DNSサーバ IPアドレス2>
      - 160.14.254.1
    dns_search:
      - <社内DNS ドメイン名>
    volumes:
      - ./data/hubot/scripts:/home/hubot/scripts
      - /etc/localtime:/etc/localtime:ro
    environment:
      - ROCKETCHAT_URL=<RocketChatサーバIPアドレス>:<ポート番号>
      - ROCKETCHAT_ROOM=''
      - LISTEN_ON_ALL_PUBLIC=true
      - ROCKETCHAT_USER=administrator.rocketchat
      - ROCKETCHAT_PASSWORD=<administrator.rocketchatのパスワード>
      - BOT_NAME=administrator.rocketchat
      - EXTERNALSCRIPTS=hubot-diagnostics,hubot-help,hubot-seen,hubot-links,hubot-greetings
      - TZ=Asia/Tokyo
      - HTTP_PROXY=http://<社内Proxyサーバ IPアドレス>:<ポート番号>
      - HTTPS_PROXY=http://<社内Proxyサーバ IPアドレス>:<ポート番号>
      - NO_PROXY=localhost,127.0.0.1,*.<社内DNS ドメイン名>
    labels:
      - traefik.enable=false
    ports:
      - 3332:8080

docker-compose する前に ./data/hubot/scripts ディレクトリを切っておく。
このディレクトリの下に自分のチャットボットcoffeeスクリプトを置き、docker-compose stop && docker-compose up -d すれば反映される。

たとえば以下のような簡単なCoffeeスクリプトサンプル hello.coffee を配置し、

# Commands:
#  hubot hello

module.exports = (robot) ->
  robot.respond /hello$/i, (msg) ->
    msg.send "World"

再起動すると、
正しく動いている場合は
上記の設定ではRocketChat上のパブリックなチャネルには
 adminiostrator.rocketchat というユーザが存在し、
緑ポチ(接続中)になっているはずだ。

たとえば #general に入って、「administrator.rocketchat hello」と入力すると、



すぐにadministrator.rocketchatユーザから「World」という返信が表示されるはずだ。



FreeIPA連携のときユーザ名を #{givenName}.#{sn} にしちゃって、ユーザIDも同じ名前にしちゃったもんだから、ユーザIDが長くなりめんどくさくなってしまった..ここらは、各自で直してください。


あとはtensorflow + FlaskでREST API化した会話システムAPIを呼び出し、返信するようなCoffeeスクリプトを掛けば良い











..んだけど..

Coffeeスクリプトの書き方を勉強しないと..


あれ、Coffeeスクリプトは時代遅れって記事もあるなあ..

さて、どうするか..

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...