Un chatbot en Python

La logique d’un chatbot en Python n’est pas très compliquée à comprendre. Nous allons voir dans cet article l’essentiel de cette logique. Ce dont nous aurons besoin pour créer un chatbot en Python La liste est relativement courte. Nous aurons besoin des modules: Comme à notre habitude, nous n’importerons pas tout le module tkinter, mais seulement ce dont nous nous servirons, à savoir : Tk, Label, Entry, Button, Text, Scrollbar et Frame. Une classe « Chatbot » Python On peut créer une classe représentant le chatbot Python. Nous voulons quelque chose qui ressemble à cela : Le constructeur (__init__) définit une fenêtre à l’aide de tkinter. Dans ce constructeur, on définit bien plus qu’une fenêtre : on y définit aussi sel.Brain, le fichier qui va nous servir de référence pour les réponses. C’est lui qui contient les mots-clés (nous verrons plus loin sa structure). Ajouter une méthode à la classe pour la question La ligne 2 spécifie que l’on ajoute 1.5 à la position de la ligne où l’on va afficher la question. La ligne 3 supprime la question que l’on a entrée dans le champs de saisie (sur fond blanc, en bas de la fenêtre). On configure l’objet message_session avec un état « normal » à la ligne 4 sans quoi nous ne voyons pas le message dans la partie verte. Ensuite, on insère la question (le message dans un cas général) à la ligne 5. La ligne 6 (la méthode see(‘end’)) permet de voir la dernière ligne, le dernier message, dans la fenêtre verte, quand cela déborde verticalement. Cela évite d’utiliser la barre de défilement vertical à chaque fois. La ligne 7 permet de configurer la fenêtre verte de sorte à ne pas pouvoir saisir de texte dans cette zone… car ce n’est pas son rôle ! Ajouter une méthode pour répondre On commence (ligne 2) par transformer le texte en minuscules. On définit ensuite (ligne 3) le message que l’on va afficher (on précède ce qui a été saisi par « Vous: »). Et c’est à la ligne 4 que tout se jour avec la fonction get_close_matches, qui retourne une liste des meilleurs résultats correspondant à une chaîne de caractères. Ici, on puise dans le dictionnaire créé dans le constructeur à partir du fichier json. Le script final Le fichier json du chatbot Python Vous l’aurez compris, ce fichier ne contient qu’un dictionnaire. Ensuite, tout dépend de ce que vous voulez faire de votre chatbot. Il est donc de la forme: Donc au final, on pourrait facilement se passer de la partie json, mais il est de coutume d’utiliser de tels formats pour des bots bien plus élaborés… Conclusion Ce genre de projet peut-être intéressant à faire pour des élèves de NSI. Le résultat en vidéo J’ai légèrement amélioré le code précédent pour arriver à cela: Le fichier ainsi modifié et le fichier json sont dans un ZIP ci-dessous: Articles relatifs:Le jeu du plus ou moins et PythonEffectuer un tri en PythonUn MasterMind en PythonLe jeu du Taquin en PythonUn jeu de mémoire en PythonUn Boggle en Python