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 件のコメント:

ClaudeをOpenAI O1のように思考させるDifyサンプルを試す

 Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。   このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...