Heim  >  Artikel  >  Backend-Entwicklung  >  Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

零到壹度
零到壹度Original
2018-04-02 11:23:086450Durchsuche

Ein Chatbot (Bot) ist ein praktischer interaktiver Chat-Dienst wie Slack. Wenn Sie noch nie einen Chatbot erstellt haben, bietet dieser Artikel eine einfache Einführungsanleitung zum Erstellen Ihres ersten Chatbots mit Python und der Slack-API.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Wir erstellen Ihre Entwicklungsumgebung, erhalten ein Slack-API-Chatbot-Token und entwickeln mit Python einen einfachen Chatbot .

Tools, die wir brauchen

Unseren Chatbot nennen wir ihn „StarterBot“, er benötigt Python und Slack API. Um unseren Python-Code auszuführen, benötigen wir:

  • Python 2 oder Python 3

  • pip und virtualenv zur Handhabung von Python-Anwendungsabhängigkeiten

  • Ein kostenloses Slack-Konto mit API-Zugriff, oder Sie können sich für ein Slack Developer Hangout-Team anmelden.

  • Offizielle Python-Slack-Client-Codebasis, erstellt vom Slack-Team

  • Slack-API-Test Tokens

Die Slack-API-Dokumentation wird Ihnen beim Erstellen dieses Tutorials hilfreich sein.

Der gesamte Code in diesem Tutorial befindet sich in der öffentlichen Bibliothek von Slack-Starterbot und ist Open Source unter der MIT-Lizenz.

Aufbau unserer Umgebung

Wir wissen jetzt, welche Werkzeuge wir für unser Projekt benötigen, also lasst uns unsere einrichten Entwicklungsumgebung. Gehen Sie zunächst zum Terminal (oder zur Eingabeaufforderung unter Windows) und wechseln Sie in das Verzeichnis, in dem Sie dieses Projekt speichern möchten. Erstellen Sie in diesem Verzeichnis eine neue virtuelle Umgebung, um unsere Anwendungsabhängigkeiten von anderen Python-Projekten zu isolieren.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Virtuelle Umgebung aktivieren:

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Ihre Eingabeaufforderung sollte nun wie im Screenshot aussehen:

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Eingabeaufforderung der aktivierten virtuellen Umgebung des Starterbots. Diese offizielle Slack-Client-API-Hilfebibliothek wurde von Slack erstellt, das Nachrichten über Slack-Kanäle senden und empfangen kann. Installieren Sie die Slackclient-Bibliothek über diesen Pip-Befehl:

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Wenn der Pip-Befehl abgeschlossen ist, sollten Sie etwa Folgendes sehen: diese Ausgabe und gibt die Eingabeaufforderung zurück.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Die Ausgabe der Installation von Slackclient mit Pip in einer aktivierten virtuellen Umgebung, die wir auch für unser Slack-Projekt benötigen Ein Zugriffstoken, damit unser Chatbot damit eine Verbindung zur Slack-API herstellen kann.

Slack Real-Time Messaging (RTM) API

Slack ermöglicht Programmen den Zugriff auf ihre Nachrichten über eine Web-API Lieferkanal. Gehen Sie zu dieser Slack-Web-API-Seite, um sich zu registrieren und Ihr eigenes Slack-Projekt zu erstellen. Sie können sich auch bei einem bestehenden Konto anmelden, für das Sie Administratorrechte haben.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Nachdem Sie sich über die Anmeldeschaltfläche in der oberen rechten Ecke der Web-API-Seite angemeldet haben, gelangen Sie zur Website auf der Chatbot-Benutzerseite.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Chatbot-Benutzerseite anpassen Benennen Sie Ihren Chatbot „Starterbot“ und klicken Sie auf die Schaltfläche „Bot-Integration hinzufügen“.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Fügen Sie eine Bot-Integration hinzu und nennen Sie sie „Starterbot“. Die Seite wird neu geladen und Sie sehen ein neu generiertes Besuchstoken. Sie können das Logo auch in ein eigenes Design ändern. Zum Beispiel habe ich dieses Flag „Full Stack Python“ angegeben.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API


Kopieren Sie das Zugriffstoken für Ihren neuen Slack-Chatbot und fügen Sie es unten auf der Seite ein Schaltfläche „Integration speichern“. Ihr Chatbot ist jetzt bereit, eine Verbindung zur Slack-API herzustellen.

Eine gängige Praxis unter Python-Entwicklern ist es, das geheime Token als Umgebungsvariable zu exportieren. Der Name des ausgegebenen Slack-Tokens ist SLACK_BOT_TOKEN:

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API
Okay, wir sind jetzt berechtigt, diese Slack-API als Chatbot zu verwenden.

Wir benötigen noch eine weitere Information, um den Chatbot zu erstellen: die ID unseres Chatbots. Als Nächstes schreiben wir ein kurzes Skript, um diese ID von der Slack-API abzurufen.

Ermitteln Sie die ID unseres Chatbots

Es ist endlich Zeit, Python-Code zu schreiben Python-Skript zum Aufwärmen der StarterBot-ID. Diese ID variiert je nach Slack-Projekt.

Wir benötigen diese ID, um unsere Anwendung beim Parsen von Nachrichten zu authentifizieren, die von Slack RTM an StarterBot gesendet werden. Unser Skript testet auch, ob unsere Umgebungsvariable SLACK_BOT_TOKEN richtig eingestellt ist.

Erstellen Sie eine neue Datei mit dem Namen printbotid.py und geben Sie den folgenden Code ein:

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Unser Code importiert SlackClient und instanziiert ihn mit der von uns festgelegten Umgebungsvariablen SLACK_BOT_TOKEN. Wenn dieses Skript über den Python-Befehl ausgeführt wird, greifen wir auf die Slack-API zu, um alle Slack-Benutzer aufzulisten und eine ID zu erhalten, die dem Namen „satrterbot“ entspricht.

Wir müssen dieses Skript nur einmal ausführen, um die ID des Chatbots zu erhalten.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API
Wenn es ausgeführt wird und uns die ID des Chatbots mitteilt, gibt das Skript eine einfache Ausgabezeile aus.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API
Verwenden Sie ein Python-Skript in Ihrem Slack-Projekt, um die ID des Slack-Chatbots zu drucken. Kopieren Sie die von diesem Skript gedruckte eindeutige ID. Und geben Sie die ID als Umgebungsvariable BOT_ID aus.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API
Dieses Skript muss nur einmal ausgeführt werden, um die ID des Chatbots zu erhalten. Wir können diese ID jetzt in unserer Python-Anwendung verwenden, auf der StarterBot ausgeführt wird.

Coding unseres StarterBot

Jetzt haben wir alles, was wir brauchen, um den Code für unseren StarterBot zu schreiben. Erstellen Sie eine neue Datei mit dem Namen starterbot.py und fügen Sie den folgenden Code ein.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API
Der Import von OS und SlackClient kommt uns bekannt vor, da wir sie bereits in theprintbotid.py verwendet haben.

Über die von uns importierten Abhängigkeitspakete können wir sie verwenden, um Umgebungsvariablenwerte abzurufen und den Slack-Client zu instanziieren.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API
Dieser Code instanziiert den SlackClient`-Client über die Umgebungsvariable SLACK_BOT_TOKEN, die wir exportieren.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API
Der Slack-Client stellt eine Verbindung zum Slack RTM API WebSocket her und führt dann eine kontinuierliche Schleife aus, während er Nachrichten von Firehose analysiert. Wenn Nachrichten an den StarterBot gesendet werden, bestimmt eine Funktion namens handle_command, was zu tun ist.

Fügen Sie als Nächstes zwei Funktionen hinzu, um die Ausgabe von Slack zu analysieren und Befehle zu verarbeiten. Die Funktion parse_slack_output akzeptiert Nachrichten von Slack und ermittelt, ob sie an unseren StarterBot gesendet wurden. Die Nachricht beginnt mit einem direkten Befehl an unsere Chatbot-ID und wird dann zur Verarbeitung an unseren Code übergeben. Derzeit veröffentliche ich lediglich eine Nachricht über die Slack-Pipeline, um den Benutzer aufzufordern, mehr Python-Code zu schreiben.

So sieht das gesamte Programm zusammen aus (Sie können die Datei auch in GitHub ansehen). ) :Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Da nun unser Code da ist, können wir unseren StarterBot über den Python-Starterbot.py-Code ausführen .

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API
Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Wenn StarterBot gestartet wird und der mit der API verbundene Ausgabekanal einen neuen Kanal in Slack erstellt und einfügt Laden Sie StarterBot ein oder laden Sie StarterBot in einen bestehenden Kanal ein.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API

Erstellen Sie einen neuen Kanal in Slack und laden Sie StarterBot ein. Senden Sie nun Befehle an StarterBot in Ihrem Kanal.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API
Senden Sie Befehle an Ihren StarterBot in Ihrem Slack-Kanal. Wenn Sie Probleme mit den Antworten haben, die Sie von Ihrem Chatbot erhalten, können Sie A Es muss eine Änderung vorgenommen werden. Wie oben für dieses Tutorial geschrieben, erfordert die Zeile AT_BOT = „:“ einen Doppelpunkt nach „@starter“ (dem Namen, den Sie Ihrem eigenen Chatbot gegeben haben). Entfernen: vom Ende der AT_BOT-Zeichenfolge. Slack scheint einen Doppelpunkt nach dem @-Namen einer Person zu erfordern, aber das scheint etwas unpassend zu sein.

Detailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-APIEnde

Okay, Sie haben jetzt einen einfachen Chatbot, mit dem Sie viel im Code tun können Fügen Sie alle Funktionen hinzu, die Sie erstellen möchten.

Mit der Slack RTM API und Python können wir viel erreichen. Sehen Sie, was Sie sonst noch in diesen Artikeln lernen können:

  • Fügen Sie eine persistente relationale Datenbank oder ein NoSQL-Backend wie PostgreSQL, MySQL oder SQLite hinzu, um Benutzerdaten zu speichern und abzurufen

  • Fügen Sie einen weiteren Kanal zur Interaktion mit dem Chatbot hinzu, z. B. eine SMS oder einen Telefonanruf

  • Integrieren Sie andere Web-APIs wie GitHub, Twilio oder api.ai

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für die Implementierung eines Chatbots mithilfe der Python+Slack-API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn