[PYTHON] Einfacher Slackbot mit Docker und Errbot

Überblick

Führen Sie den Chatbot mit Docker in einer lokalen Umgebung aus Ich habe versucht, mit Slack zu interagieren.

Ich war besorgt über GitHubs Hubot und Rubys Lita. Es war mühsam, CoffeeScript zu lesen und sich auf Redis vorzubereiten. Ich habe Errbot gewählt, das in Python geschrieben ist und am einfachsten zu sein scheint. Ich glaube nicht, dass es einen großen Unterschied im Gefühl einer schnellen Umfrage gibt.

Vorbereitung

In jeder Umgebung, in der der Docker-Container funktioniert, gibt es kein Problem. Ich baue es auf meinem lokalen PC mit Docker für Mac.

Vor dem Erstellen eines Slackbot ist eine Teamvorbereitung erforderlich.

Verfahren

Erstellen Sie einen Docker-Container

Erstellen Sie einen Container, in dem Python Version 3.3 und höher ausgeführt wird. Um Arbeit zu sparen, habe ich Alpine Linux mit Python verwendet.

FROM python:3.5.2-alpine

#apk update
RUN apk update

#Installation der zur Installation von Errbot erforderlichen Pakete
RUN apk add gcc g++ libffi-dev openssl-dev

#Installieren Sie die für die Entwicklung erforderlichen Pakete nach Ihren Wünschen
RUN apk add vim bash

Geben Sie Folgendes in das Verzeichnis ein, das die Docker-Datei enthält, um den Container zu starten.

Container starten


#Generieren Sie ein Bild aus einer Docker-Datei mit dem Namen bot
$ docker build -t bot .

#Starten Sie das Bot-Image und/bin/lauf sh
$ docker run -it bot /bin/sh

Einführung von Errbot

Verwenden Sie pip, um die erforderlichen Pakete zu installieren. Für die Kommunikation zwischen dem Hauptteil von Errbot und Slack ist ein "Slack Client" erforderlich.

Paketinstallation


$ pip install errbot slackclient

Wenn Sie fertig sind, überprüfen Sie, ob Sie es erfolgreich installiert haben. Es kommt auf eine gute Anzahl von Paketen an ...

Überprüfen Sie das Paket


$ 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

Versuchen Sie nach erfolgreicher Installation, [Erstausführung] auszuführen (http://errbot.io/en/latest/user_guide/setup.html#first-run). Initialisieren Sie das Projektverzeichnis mit dem folgenden Befehl.

Projektinitialisierung


$ mkdir ~/errbot-root
$ cd ~/errbot-root
$ errbot --init

Es wurden mehrere Dateien erstellt, um den Bot zu konfigurieren und auszuführen. Beginnen wir sofort mit "errbot" auf der Konsole. Wenn Sie > >> sehen, geben Sie ! Tryme ein. Sie sollten eine Antwort vom Bot erhalten.

Auf der Konsole ausführen


$ errbot
>>> !tryme
It works !

Anscheinend stellt Errbot dem Bot die Anweisungen mit "!" Vor.

Vorbereitung des Bot-Kontos

Öffnen Sie die Seite hier und wählen Sie "Benutzerdefinierte Integration erstellen".

1.png

Wählen Sie Bots erstellen.

2.png

Geben Sie einen Namen für Ihr Bot-Konto ein und klicken Sie auf "Bot-Integration hinzufügen".

3.png

Das API-Token wird auf dem Bildschirm für das Übergangsziel angezeigt. Notieren Sie es sich.

4.png

Damit ist die Erstellung des Bot-Kontos abgeschlossen. Sie sollten in der Lage sein, das von Ihnen erstellte Konto im Feld "DIREKTE NACHRICHTEN" zu finden.

5.png

Umschreiben der Einstellungsdatei

Schreiben Sie config.py neu, das von errbot --init erstellt wurde. Es gibt drei Hauptänderungen. Es gibt kein Problem mit anderen Gegenständen, wie sie sind.

config.py


#BACKEND von Text zu Slack behoben
BACKEND = 'Slack'

#Geben Sie das obige API-Token ein
BOT_IDENTITY = {
    'token': 'xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}

#Geben Sie den Kontonamen des Benutzers, den Sie als Administrator verwenden möchten, in Form eines Fingertipps ein.
BOT_ADMINS = ('@nanakenashi')

Das Token ist zur Erklärung in fester Form geschrieben. Wenn Sie die Quelle mit GitHub usw. verwalten, binden Sie sie in die Umgebungsvariable ein Ich denke, es ist wünschenswert, es mit "os.getenv (" HOGE ")" zu lesen.

Starten Sie Errbot nach dem Speichern erneut. Dieses Mal werde ich eine Daemon-Option hinzufügen.

Starten Sie Errbot


$ errbot --daemon

Funktionsprüfung

Sprich mit ! Tryme,! Help, ! About usw. auf Slack. Es sollte genauso funktionieren wie auf der Konsole. Wir empfehlen Ihnen, das Bot-Account-Symbol in etwas zu ändern, das Sie lieben können.

6.png

Zusammenfassung

Obwohl es ein ziemlicher Testinhalt war Sie können jetzt mit Slacks Bot sprechen.

Weil der wahre Wert von Chatbot die flexible Bewegung zu Anweisungen ist Als nächstes möchte ich diesen Teil (Plug-In) ansprechen.

Recommended Posts

Einfacher Slackbot mit Docker und Errbot
Führe errBot ein und arbeite mit Slack
Versuchen wir es mit gRPC mit Go und Docker
Einfach! Verwenden Sie gensim und word2vec mit MAMP.
Einfaches Web-Scraping mit Python und Ruby
Einfache Röntgenaufnahme mit Lambda Layer und CloudFormation / sam-cli
TFTP-Server mit Docker
Easy Grad-CAM mit Pytorch-Gradcam
Einfaches IoT, um mit Raspeye und MESH zu beginnen
Goland- und Docker-Einstellungen
Von Kafka bis KSQL - Einfache Umgebungskonstruktion mit Docker
Einfaches maschinelles Lernen mit Scikit-Learn und Flask ✕ Web App
Laden Sie mp4 einfach teilweise mit Python und youtube-dl herunter!
Freigeben von Ordnern für Docker und Windows mit Tensorflow
Verwenden Sie Python mit Docker
Proxyserver mit Docker
Lesen und Schreiben von Dateien mit Slackbot ~ Bot-Entwicklung mit Python ~
Hallo, Welt mit Docker
Einfache Erstellung von C ++ - Code mit CMake auf Docker
Einfacher Gesichtserkennungsversuch mit Jetson Nano und Webkamera
Einfaches Debuggen mit ipdb
Mit und ohne WSGI
Einfache TopView mit OpenCV
[Linux] Erstellen Sie ein Selbstzertifikat mit Docker und Apache
Einfache Einführung in Home Hack mit Raspberry Pi und discord.py
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Ich habe versucht, Follow Management mit Twitter API und Python (einfach)
Paket Python-Laufzeit- und Pypi-Bibliothek mit Chef / Omnibus und Docker
Erstellen Sie eine GPU-Umgebung mit GCP und kaggle offiziellem Image (Docker)
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Einfache toxische Umgebung mit Jenkins
Arbeiten Sie mit tkinter und Maus
Pomodoro Timer mit Errbot gemacht
Python und Hardware-Verwenden von RS232C mit Python-
[Analyse des gemeinsamen Auftretens] Einfache Analyse des gemeinsamen Auftretens mit Python! [Python]
Einfache Ordnersynchronisation mit Python
Machen Sie es mit der Syntax einfach
Implementieren Sie PyTorch + GPU mit Docker
PySpark Leben beginnt mit Docker
Bereiten Sie die Python3-Umgebung mit Docker vor
Einfaches Web-Scraping mit Scrapy
Einfache Python-Kompilierung mit NUITKA-Utilities
Einfacher HTTP-Server mit Python
Einfache Proxy-Anmeldung mit Django-Hijack
Super Auflösung mit SRGAN und ESRGAN
Group_by mit sqlalchemy und sum
Python mit Pyenv und Venv
Probieren Sie Selenium Grid mit Docker aus
Versuchen Sie, Jupyter Hub mit Docker zu erstellen
Mit mir, NER und Flair
Erstellen Sie eine Rails-Anwendung mit Docker
Machen Sie Slack Chatbot mit Errbot
Funktioniert mit Python und R.
Azure Monitor bestimmt sowohl die Cloud-Überwachung als auch die lokale Überwachung! Einfach mit GUI!
Von der Ubuntu-Installation bis zum Ausführen von Kinect mit Docker und Ros (Übersicht)