Maison  >  Article  >  développement back-end  >  Exemple détaillé de la façon d'implémenter un chatbot à l'aide de l'API Python+Slack

Exemple détaillé de la façon d'implémenter un chatbot à l'aide de l'API Python+Slack

零到壹度
零到壹度original
2018-04-02 11:23:086448parcourir

Un chatbot (Bot) est un service de chat interactif pratique comme Slack. Si vous n'avez jamais créé de chatbot auparavant, cet article fournit un guide d'introduction simple sur la façon de créer votre premier chatbot à l'aide de Python et de l'API Slack.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Nous construisons votre environnement de développement, obtenons un jeton de chatbot de l'API Slack et utilisons Python Développons un chatbot simple .

Outils dont nous avons besoin

Notre chatbot, nous l'appellerons « StarterBot », il a besoin de Python et de l'API Slack. Pour exécuter notre code Python, nous avons besoin de :

  • Python 2 ou Python 3

  • pip et virtualenv pour gérer les dépendances des applications Python

  • Un compte Slack gratuit avec accès à l'API, ou vous pouvez vous inscrire à une équipe Slack Developer Hangout.

  • Base de code client Python Slack officielle construite par l'équipe Slack

  • Test de l'API Slack Jetons

La documentation de l'API Slack vous sera utile lors de la construction de ce didacticiel.

Tout le code de ce tutoriel est placé dans la bibliothèque publique slack-starterbot et est open source sous la licence MIT.

Construire notre environnement

Nous savons maintenant de quels outils nous avons besoin pour notre projet, alors mettons en place notre environnement de développement. Accédez d’abord au terminal (ou à l’invite de commande sous Windows) et accédez au répertoire dans lequel vous souhaitez stocker ce projet. Dans ce répertoire, créez un nouveau virtualenv pour isoler nos dépendances d'application des autres projets Python.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Activer virtualenv :

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Votre invite devrait maintenant ressembler à la capture d'écran :

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Invite de commande du virtualenv activé de starterbot Cette bibliothèque officielle d'aide de l'API du client Slack est construite par Slack, qui peut envoyer et recevoir des messages via les canaux Slack. Installez la bibliothèque slackclient via cette commande pip :

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Une fois la commande pip terminée, vous devriez voir quelque chose comme cette sortie et renvoie l'invite.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Le résultat de l'installation de slackclient avec pip dans un environnement virtuel activé que nous devons également obtenir pour notre projet Slack Un jeton d'accès pour que notre chatbot puisse l'utiliser pour se connecter à l'API Slack.

API Slack Real-Time Messaging (RTM)

Slack permet aux programmes d'accéder à leurs messages via une API Web Canal de livraison. Accédez à cette page de l'API Web Slack pour vous inscrire et créer votre propre projet Slack. Vous pouvez également vous connecter à un compte existant pour lequel vous disposez de droits d'administrateur.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Après vous être connecté à l'aide du bouton de connexion dans le coin supérieur droit de la page de l'API Web, vous arriverez sur la page utilisateur du chatbot.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Personnaliser la page utilisateur du chatbot Nommez votre chatbot « starterbot » et cliquez sur le bouton « Ajouter une intégration de bot ».

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Ajoutez une intégration de bot et nommez-la "starterbot". La page se rechargera et vous verrez un jeton de visite nouvellement généré. Vous pouvez également modifier le logo en un de vos propres designs. Par exemple, j'ai donné ce drapeau "Full Stack Python".

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack


Copiez et collez le jeton d'accès de votre nouveau chatbot Slack en bas de la page Bouton "Enregistrer l'intégration". Votre chatbot est maintenant prêt à se connecter à l'API Slack.

Une pratique courante parmi les développeurs Python consiste à exporter le jeton secret en tant que variable d'environnement. Le nom du jeton Slack de sortie est SLACK_BOT_TOKEN :

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack
D'accord, nous sommes désormais autorisés à utiliser cette API Slack comme chatbot.

Nous avons besoin d'une information supplémentaire pour construire le chatbot : l'identifiant de notre chatbot. Nous allons ensuite écrire un court script pour obtenir cet identifiant de l'API Slack.

Obtenir l'identifiant de notre chatbot

Il est enfin temps d'écrire du code Python. Écrivons un court A ! Script Python pour réchauffer l'ID du StarterBot. Cet identifiant varie en fonction du projet Slack.

Nous avons besoin de cet identifiant pour authentifier notre application lors de l'analyse des messages envoyés à StarterBot depuis Slack RTM. Notre script testera également si notre variable d'environnement SLACK_BOT_TOKEN est correctement définie.

Créez un nouveau fichier nommé printbotid.py et remplissez le code suivant :

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Notre code importe SlackClient et l'instancie avec la variable d'environnement SLACK_BOT_TOKEN que nous avons définie. Lorsque ce script est exécuté via la commande python, nous accédons à l'API Slack pour lister tous les utilisateurs Slack et obtenir un identifiant correspondant au nom « satrterbot ».

Il suffit d’exécuter ce script une seule fois pour obtenir l’identifiant du chatbot.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack
Lorsqu'il s'exécute en nous donnant l'ID du chatbot, le script imprime une simple ligne de sortie.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack
Utilisez un script Python dans votre projet Slack pour imprimer l'ID du chatbot Slack. Copiez l'ID unique imprimé par ce script. Et affichez l'ID en tant que variable d'environnement BOT_ID.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack
Ce script ne doit être exécuté qu'une seule fois pour obtenir l'identifiant du chatbot. Nous pouvons désormais utiliser cet identifiant dans notre application Python exécutant StarterBot.

Codage de notre StarterBot

Nous avons maintenant tout ce dont nous avons besoin pour écrire le code de notre StarterBot. Créez un nouveau fichier nommé starterbot.py et incluez le code suivant.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack
L'importation d'os et de SlackClient semble familière car nous les avons déjà utilisés dans theprintbotid.py.

Grâce aux packages de dépendances que nous avons importés, nous pouvons les utiliser pour obtenir les valeurs des variables d'environnement et instancier le client Slack.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack
Ce code instancie le client SlackClient` via la variable d'environnement SLACK_BOT_TOKEN que nous exportons.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack
Le client Slack se connecte à l'API WebSocket de Slack RTM, puis effectue une boucle continue tout en analysant les messages de Firehose. Si des messages sont envoyés au StarterBot, une fonction appelée handle_command détermine quoi faire.

Ajoutez ensuite deux fonctions pour analyser la sortie de Slack et gérer les commandes. La fonction parse_slack_output accepte les messages de Slack et détermine s'ils ont été envoyés à notre StarterBot. Le message commence par une commande directe adressée à notre identifiant de chatbot et est ensuite transmis à notre code pour traitement. Actuellement, je viens de publier un message via le pipeline Slack pour dire à l'utilisateur d'écrire plus de code Python

Voici à quoi ressemble l'ensemble du programme (vous pouvez également voir le fichier dans GitHub ! ) :Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Maintenant que notre code est là, nous pouvons exécuter notre StarterBot via le code python starterbot.py .

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack
Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Lorsque StarterBot démarre et que le canal de sortie connecté à l'API crée un nouveau canal dans Slack et met Invitez StarterBot ou invitez StarterBot dans un canal existant.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack

Créez une nouvelle chaîne dans Slack et invitez StarterBot. Envoyez maintenant des commandes à StarterBot dans votre chaîne.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+Slack
Envoyez des commandes à votre StarterBot dans votre chaîne Slack Si vous rencontrez des problèmes avec les réponses que vous recevez de votre chatbot, vous pouvez A une modification doit être apportée. Comme écrit ci-dessus pour ce tutoriel, la ligne AT_BOT = « : » nécessite deux points après « @starter » (le nom que vous avez donné à votre propre chatbot). Supprimer : à la fin de la chaîne AT_BOT. Slack semble exiger deux points après le nom d'une personne, mais cela semble un peu incongru.

Exemple détaillé de la façon dimplémenter un chatbot à laide de lAPI Python+SlackFin

D'accord, vous disposez maintenant d'un chatbot simple pour lequel vous pouvez faire beaucoup de choses dans le code ajoutez toutes les fonctionnalités que vous souhaitez créer.

Nous pouvons faire beaucoup de choses en utilisant l'API Slack RTM et Python. Découvrez ce que vous pouvez apprendre d'autre grâce à ces articles :

  • Attachez une base de données relationnelle persistante ou un backend NoSQL tel que PostgreSQL, MySQL ou SQLite pour enregistrer et récupérer les données utilisateur

  • Ajouter un autre canal pour interagir avec le chatbot, comme un SMS ou un appel téléphonique

  • Intégrer d'autres API web, comme GitHub, Twilio ou api.ai

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn