Exécutez un chatbot avec Docker dans un environnement local J'ai essayé d'interagir avec Slack.
J'étais inquiet pour [Hubot] de GitHub (https://github.com/github/hubot) et Ruby Lita. Il était difficile de lire CoffeeScript et de se préparer à Redis. J'ai choisi Errbot, qui est écrit en Python et semble être le plus simple. Je ne pense pas qu'il y ait une grande différence dans le sentiment d'une enquête rapide.
Il n'y a aucun problème dans tout environnement où le conteneur Docker fonctionne. Je le construis sur mon PC local à l'aide de Docker pour Mac.
Une préparation d'équipe est nécessaire avant de créer un Slackbot.
Construisez un conteneur qui exécute Python version 3.3 et supérieure. Pour économiser du travail, j'ai utilisé Alpine Linux avec Python.
FROM python:3.5.2-alpine
#mise à jour apk
RUN apk update
#Installation des packages requis pour installer Errbot
RUN apk add gcc g++ libffi-dev openssl-dev
#Installez les packages nécessaires au développement comme vous le souhaitez
RUN apk add vim bash
Entrez ce qui suit dans le répertoire contenant le Dockerfile
pour démarrer le conteneur.
Démarrer le conteneur
#Générer une image à partir d'un Dockerfile avec le nom bot
$ docker build -t bot .
#Lancez l'image du bot et/bin/courir sh
$ docker run -it bot /bin/sh
Utilisez pip
pour installer les packages requis.
ʻSlack client est requis pour la communication entre le corps principal de ʻerrbot
et Slack.
Installation du package
$ pip install errbot slackclient
Lorsque vous avez terminé, vérifiez si vous l'avez installé avec succès. Cela dépend d'un bon nombre de colis ...
Vérifiez le package
$ pip freeze
ansi==0.1.3
beautifulsoup4==4.5.1
bottle==0.12.9
cffi==1.8.3
colorlog==2.7.0
cryptography==1.5.2
daemonize==2.4.7
dnspython==1.14.0
dnspython3==1.14.0
errbot==4.3.3
idna==2.1
Jinja2==2.8
Markdown==2.6.7
MarkupSafe==0.23
pyasn1==0.1.9
pycparser==2.14
Pygments==2.1.3
pygments-markdown-lexer==0.1.0.dev39
pyOpenSSL==16.1.0
requests==2.11.1
rocket-errbot==1.2.5
six==1.10.0
slackclient==1.0.2
threadpool==1.3.2
waitress==1.0.0
WebOb==1.6.1
websocket-client==0.37.0
WebTest==2.0.23
Yapsy==1.11.223
Une fois l'installation réussie, essayez d'exécuter First run. Initialisez le répertoire du projet avec la commande suivante.
Initialisation du projet
$ mkdir ~/errbot-root
$ cd ~/errbot-root
$ errbot --init
Plusieurs fichiers ont été créés pour configurer et exécuter le bot.
Commençons immédiatement ʻerrbotsur la console. Lorsque vous voyez
>>>, essayez de taper
! Tryme`.
Vous devriez obtenir une réponse du bot.
Exécuter sur console
$ errbot
>>> !tryme
It works !
Apparemment, Errbot préfixe les instructions au bot avec !
.
Ouvrez la page here et sélectionnez «Créer une intégration personnalisée».
Sélectionnez Créer des bots.
Entrez un nom pour votre compte de bot et cliquez sur "Ajouter une intégration de bot".
Le jeton API sera affiché sur l'écran de destination de la transition, alors notez-le.
Ceci termine la création du compte de bot. Vous devriez pouvoir trouver le compte que vous avez créé dans le champ "MESSAGES DIRECTS".
Réécrivez config.py
créé par ʻerrbot --init`.
Il y a trois changements principaux. Il n'y a aucun problème avec les autres articles tels quels.
config.py
#Correction du BACKEND du texte à Slack
BACKEND = 'Slack'
#Entrez le jeton API ci-dessus
BOT_IDENTITY = {
'token': 'xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}
#Entrez le nom de compte de l'utilisateur que vous souhaitez être administrateur sous la forme d'un ou plusieurs tap (s)
BOT_ADMINS = ('@nanakenashi')
Le jeton est écrit sous forme solide pour l'explication. Lors de la gestion de la source avec GitHub, etc., intégrez-la dans la variable d'environnement Je pense qu'il est souhaitable de le lire avec ʻos.getenv ('HOGE') `.
Après l'enregistrement, redémarrez Errbot. Cette fois, je vais ajouter une option de démon.
Lancez Errbot
$ errbot --daemon
Parlez à ! Tryme
,! Help
, ! About
, etc. sur Slack.
Cela devrait fonctionner comme sur la console.
Nous vous recommandons de changer l'icône du compte bot en quelque chose que vous pouvez aimer.
Même s'il s'agissait d'un contenu d'essai Vous pouvez maintenant parler au bot de Slack.
Parce que la vraie valeur du chatbot est un mouvement flexible vers les instructions Ensuite, je voudrais aborder cette partie (plug-in).
Recommended Posts