cours
Construire un chatbot en utilisant Chatterbot en Python
Vous en avez assez d'attendre dans de longues files d'attente que votre appel soit mis en relation avec le responsable du service clientèle ? La lecture des FAQ vous rend-elle léthargique ? Vous êtes alors sur la bonne page. Vous souvenez-vous de la dernière fois où vous avez communiqué avec un agent du service clientèle par chat pour vous informer de la livraison d'un mauvais article ? Il est fort probable que vous ayez été contacté par un robot plutôt que par un représentant du service clientèle. Qu'est-ce qu'un robot ? Comment en construire un ? Quelle est la source de code requise ? Ce sont quelques-unes des questions auxquelles nous répondrons dans cet article de blog !
L'intelligence artificielle, qui fait intervenir l'apprentissage automatique et le traitement du langage naturel (NLP) pour la construction d'un bot ou d'un chatbot, est spécifiquement conçue pour démêler l'interaction harmonieuse entre les humains et les ordinateurs. Les chatbots sont partout, qu'il s'agisse d'un site bancaire, d'une pizzeria ou d'un magasin de commerce électronique, vous trouverez des chatbots à gauche, à droite et au centre. Les chatbots fournissent une assistance en temps réel au service client sur une série de questions prédéfinies liées au domaine sur lequel ils sont construits. Il s'adapte au langage humain naturel et converse avec les humains d'une manière semblable à celle des humains.
Pour simplifier la définition du chatbot, nous pouvons dire que les chatbots sont l'évolution des systèmes de questions-réponses utilisant le traitement du langage naturel. Selon les sources, d'ici 2024, la taille du marché mondial de la conversation atteindra 15,7 milliards de dollars, avec un taux de croissance annuel de 30,2 %. Par exemple, lors de la pandémie de CoronaVirus, nous avons été témoins de milliers de canulars circulant sur WhatsApp, tels que ce qui peut être utilisé pour traiter le COVID ou ce qui peut être bénéfique pour augmenter l'immunité, ou encore si le virus a été développé dans un laboratoire. Pour mettre un terme à ces canulars, Facebook a lancé un chatbot qui fait office de vérificateur de faits.
Vous souhaitez créer un chatbot avec des outils comme OpenAI et Pinecone ? Découvrez notre code-along ci-dessous :
Qu'est-ce qu'un Chatbot ?
Le terme "chatterbot" est apparu en 1994 lorsque Michael Mauldin a créé son premier chatbot appelé "Julia". Selon le dictionnaire Oxford, un chatbot est défini comme "un programme informatique conçu pour simuler une conversation avec des utilisateurs humains, en particulier sur l'internet". Il peut être considéré comme un assistant virtuel qui communique avec les utilisateurs par le biais de messages textuels et aide les entreprises à se rapprocher de leurs clients. Il s'agit d'un programme conçu pour imiter la façon dont les humains communiquent entre eux. Cela peut se faire par le biais d'une interface de chat ou d'un appel vocal. Les développeurs conçoivent généralement les chatbots de manière à ce qu'il soit difficile pour les utilisateurs de savoir s'ils communiquent avec une personne ou un robot.
Les chatbots aident toute entreprise/organisation à atteindre les objectifs suivants :
- Augmente l'efficacité opérationnelle.
- Automatiser le traitement des demandes des clients.
- Traiter les demandes de base, ce qui permet aux employés de travailler sur des demandes plus complexes et de plus grande valeur.
- Offre une prise en charge multilingue.
- Gagnez du temps et de l'énergie en automatisant le support client.
- Améliore le taux de réponse ainsi que l'engagement des clients.
- Personnalisation de la communication
Comment fonctionne un chatbot ?
Les chatbots ne sont rien d'autre que des applications logicielles dotées d'une couche applicative, d'une base de données et d'API. Pour simplifier le fonctionnement du chatbot, nous pouvons dire qu'il travaille sur la base d'un modèle de correspondance pour classer le texte et produire une réponse appropriée aux questions/interrogations adressées par l'utilisateur. Le chatbot répond à l'utilisateur en fonction du programme qui lui a été transmis. Les chatbots sont de différents types, selon la manière dont ils sont utilisés. Il existe principalement trois types de chatbots, qui sont les suivants :
-
Chatbot basé sur des règles : Il s'agit du chatbot de base, l'utilisateur interagit avec ce type de bot en utilisant des options prédéfinies. Pour obtenir des réponses de ces robots, les utilisateurs doivent cliquer sur certaines options. Ces types de robots recueillent la demande de l'utilisateur, l'analysent et proposent ensuite des résultats sous forme de boutons. Ces robots sont généralement utilisés pour remplacer les questions fréquemment posées lorsqu'il s'agit de requêtes complexes ; ils ne sont pas toujours la meilleure solution.
-
Chatbots indépendants (mot-clé) : Il s'agit de robots d'apprentissage automatique qui, contrairement aux chatbots basés sur des règles, analysent les souhaits de l'utilisateur et y répondent de manière appropriée. Ces chatbots utilisent des mots-clés personnalisables et l'apprentissage automatique pour déterminer comment répondre aux demandes des utilisateurs de manière efficace et efficiente.
-
NLP (contextuel) Chatbots : Ce sont les chatbots les plus avancés. Il s'agit d'une combinaison des meilleurs chatbots basés sur des règles et des chatbots à mots clés. Ces chatbots utilisent le NLP pour comprendre le contexte et l'intention des demandes des utilisateurs et agir en conséquence. Ces chatbots peuvent traiter facilement plusieurs demandes émanant d'un même utilisateur.
Comparaison des plateformes de chatbot
De nombreuses plateformes proposent des chatbots personnalisés et automatisés qui permettent aux clients de bénéficier de services d'assistance transparents, toujours ponctuels et de qualité, à tout moment, sans avoir à recourir aux capacités de conversation de la boîte. Les clients sont également désireux d'acheter auprès d'une entreprise avec laquelle ils peuvent facilement communiquer par le biais de messages.
Dressez la liste des plateformes de création de chatbots d'IA en 2020 :
-
Azure Bot Service : Azure bot service permet de créer un chatbot à partir de zéro, c'est-à-dire que vous pouvez le construire, le connecter, le tester et le déployer. Il permet aux développeurs d'utiliser le SDK et les outils open-source. Il permet également aux développeurs de créer des robots avancés, tels que des assistants virtuels, pour traiter des requêtes complexes.
-
Botsify : La particularité de cet outil est qu'il permet à des utilisateurs non techniques de créer un chatbot grâce à son interface intuitive. Les bots sont représentés ici comme des histoires, c'est-à-dire que vous pouvez créer plusieurs histoires ou plusieurs chatbots et les déployer en fonction de vos besoins. Une autre fonctionnalité intéressante est la possibilité d'enregistrer les réponses des utilisateurs dans un formulaire qui peut être facilement exporté vers un fichier CSV.
-
Amazon Lex : Amazon lex permet aux développeurs de créer des interfaces conversationnelles utilisant le texte et la voix. Il est doté de fonctionnalités avancées de deep learning et de NLP pour comprendre le contexte du texte. Il fournit une console facile à utiliser pour construire un chatbot en quelques minutes.
-
Mobile Monkey : Mobile monkey propose aux développeurs de créer des chatbots spécifiquement à des fins de marketing. Il permet aux développeurs de créer des robots publicitaires Facebook, des robots SMS et des robots web natifs, le tout sur une seule et même plateforme. Ils proposent également des modèles de chatbot prêts à l'emploi pour toutes les activités possibles, qui peuvent être directement intégrés sur un site web.
-
ChatterOn : Il prétend gérer différents types de réponses à contenu riche de la part du bot, car il permet aux développeurs de connecter différentes API à chaque interaction avec l'utilisateur. ChatterOn offre plus de 20 boulons préconstruits qui peuvent être utilisés en un seul clic. Il ne nécessite pas beaucoup de codage, ce qui permet aux utilisateurs non techniques de créer plus facilement des chatbots.
-
TARS : Il vous offre la possibilité de construire une page d'atterrissage conversationnelle, qui vous permet de créer un chatbot automatisé pour accueillir vos clients, leur donner des informations pertinentes sur leurs questions concernant vos produits, et leur demander leur contact simultanément. Tars propose de nombreux modèles de chatbot prédéfinis, qui sont classés en deux parties - par secteur d'activité et par cas d'utilisation.
Vous devez maintenant être curieux de créer votre propre chatbot. Et quoi de mieux qu'un chatbot NLP personnalisable ? Commençons par construire notre propre chatbot en Python en utilisant la bibliothèque chatterbot.
Chatterbot
Comme son nom l'indique, chatterbot est une bibliothèque Python spécialement conçue pour générer des chatbots. Cet algorithme utilise une sélection d'algorithmes d'apprentissage automatique pour fabriquer des réponses variées aux utilisateurs en fonction de leurs demandes.
Chatterbot facilite le développement de chatbots capables d'engager des conversations. Elle commence par la création d'un chatterbot non formé qui n'a aucune expérience ou connaissance préalable en matière de communication. Au fur et à mesure que les utilisateurs saisissent des déclarations, la bibliothèque enregistre la demande faite par l'utilisateur ainsi que les réponses qui lui sont renvoyées. Au fur et à mesure que le nombre d'instances augmente dans le chatterbot, la précision des réponses apportées par le chatterbot augmente également.
Chatterbot est entraîné à rechercher la réponse analogue la plus proche en trouvant la demande analogue la plus proche faite par les utilisateurs qui est équivalente à la nouvelle demande faite. Il sélectionne ensuite une réponse parmi les réponses existantes. L'avantage de chatterbot est qu'il permet aux développeurs de créer facilement leurs propres ensembles de données et structures.
Construire un Chatbot avec Chatterbot
Commençons par installer la bibliothèque chatterbot. Pour créer un chatbot, vous devez également installer le corpus chatterbot. Corpus - au sens propre, il s'agit d'une collection de mots. Il contient un corpus de données qui est inclus dans le module chatterbot. Chaque corpus n'est rien d'autre qu'un prototype de différents énoncés d'entrée et de leurs réponses. Ces corpus sont utilisés par les robots pour s'entraîner. La méthode la plus recommandée pour installer chatterbot et chatterbot_corpus est d'utiliser pip.
Commandes d'installation pour le terminal :
pip install chatterbot
pip install chatterbot_corpus
Commandes d'installation pour Jupyter Notebook :
!pip install chatterbot
!pip install chatterbot_corpus
Commençons par importer la classe Chatbot du module chatterbot.
# Importing chatterbot
from chatterbot import ChatBot
Créer une instance de Chatbot
Maintenant, il est temps de passer à la partie la plus intéressante, c'est-à-dire nommer votre chatbot en créant un objet Chatbot. Vous pouvez choisir le nom que vous voulez. Cette simple ligne de code génère un nouveau robot nommé Buddy. Nous devons spécifier quelques paramètres supplémentaires avant d'exécuter notre premier programme.
# Create object of ChatBot class
bot = ChatBot('Buddy')
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data] /root/nltk_data...
[nltk_data] Unzipping taggers/averaged_perceptron_tagger.zip.
[nltk_data] Downloading package stopwords to /root/nltk_data...
[nltk_data] Unzipping corpora/stopwords.zip.
[nltk_data] Downloading package wordnet to /root/nltk_data...
[nltk_data] Unzipping corpora/wordnet.zip.
Vous pouvez positionner l'adaptateur de stockage avec l'objet chatbot. Les adaptateurs de stockage vous permettent de vous connecter à une unité de stockage ou à un réseau particulier. Pour utiliser un adaptateur de stockage, nous devons le spécifier. Nous positionnerons l'adaptateur de stockage en l'assignant au chemin d'importation du stockage que nous voulons utiliser. Nous utilisons ici l'adaptateur de stockage SQL, qui permet au chatbot de se connecter à des bases de données en SQL. En utilisant le paramètre database, nous allons créer une nouvelle base de données SQLite. Veuillez suivre le code ci-dessous pour créer une nouvelle base de données pour le chatbot.
# Create object of ChatBot class with Storage Adapter
bot = ChatBot(
'Buddy',
storage_adapter='chatterbot.storage.SQLStorageAdapter',
database_uri='sqlite:///database.sqlite3'
)
Vous pouvez également positionner l'adaptateur logique avec un objet chatbot. Comme son nom l'indique, l'adaptateur logique régule la logique du chatterbot, c'est-à-dire qu'il choisit les réponses à toutes les entrées qui lui sont fournies. Ce paramètre contient une liste d'opérateurs logiques. Chatterbot nous permet d'utiliser un certain nombre d'adaptateurs logiques. Lorsque plusieurs adaptateurs logiques sont utilisés, le chatbot calcule le niveau de confiance, et la réponse ayant le niveau de confiance le plus élevé est renvoyée en sortie. Nous avons utilisé deux adaptateurs logiques : BestMatch
et TimeLogicAdapter
.
# Create object of ChatBot class with Logic Adapter
bot = ChatBot(
'Buddy',
logic_adapters=[
'chatterbot.logic.BestMatch',
'chatterbot.logic.TimeLogicAdapter'],
)
Former le chatbot
La dernière étape de la création d'un chatbot consiste à former le chatbot à l'aide des modules disponibles dans chatterbot. Pour former un chatbot à l'aide de chatterbot, il suffit de fournir une conversation à la base de données du chatbot. Dès que le chatbot reçoit un ensemble de données, il produit les entrées essentielles dans le graphe de connaissances du chatbot afin de représenter l'entrée et la sortie de la bonne manière. Tout d'abord, importons ListTrainer
, créons son objet en lui passant l'objet Chatbot
, et appelons la méthode train()
en lui passant une liste de phrases.
# Inport ListTrainer
from chatterbot.trainers import ListTrainer
trainer = ListTrainer(bot)
trainer.train([
'Hi',
'Hello',
'I need your assistance regarding my order',
'Please, Provide me with your order id',
'I have a complaint.',
'Please elaborate, your concern',
'How long it will take to receive an order ?',
'An order takes 3-5 Business days to get delivered.',
'Okay Thanks',
'No Problem! Have a Good Day!'
])
List Trainer: [####################] 100%
Test de chatbot
La dernière étape de ce tutoriel consiste à tester les compétences conversationnelles du chatterbot. Pour tester ses réponses, nous appellerons la méthode get_responses()
de l'instance Chatbot
.
# Get a response to the input text 'I would like to book a flight.'
response = bot.get_response('I have a complaint.')
print("Bot Response:", response)
Bot Response: Please elaborate, your concern
Nous allons créer une boucle de type "while loop" pour notre chatbot. Lorsque des instructions sont transmises dans la boucle, nous obtenons une réponse appropriée, car nous avons déjà introduit des données dans notre base de données. Si l'utilisateur dit "Bye" ou "bye", nous pouvons mettre fin à la boucle et arrêter le programme.
name=input("Enter Your Name: ")
print("Welcome to the Bot Service! Let me know how can I help you?")
while True:
request=input(name+':')
if request=='Bye' or request =='bye':
print('Bot: Bye')
break
else:
response=bot.get_response(request)
print('Bot:',response)
Enter Your Name: Avinash
Welcome to the Bot Service! Let me know how can I help you?
Avinash:I need your assistance regarding my order
Bot: Please, Provide me with your order id
Avinash:12345
Bot: No Problem! Have a Good Day!
Avinash:Bye
Bot: Bye
Conclusion
Félicitations, vous avez atteint la fin de ce tutoriel !
Cet article était basé sur l'apprentissage de la fabrication d'un chatbot en Python à l'aide de la bibliothèque ChatterBot. Construire un chatbot avec ChatterBot n'était pas seulement simple, mais les résultats étaient également précis. Avec l'intelligence artificielle et l'apprentissage automatique, tout et n'importe quoi est possible, qu'il s'agisse de créer des robots dotés de compétences conversationnelles comme les humains ou de n'importe quoi d'autre. Consultez le tutoriel de DataCamp sur le déploiement de chatbots Facebook avec Python.
En savoir plus sur Python
cours
Introduction à la science des données en Python
cours