ChatBot: Comment construire un chatbot intelligent avec Python et Dialogflow

ChatBot: Comment construire un chatbot intelligent avec Python et Dialogflow

Les s sont un puissant exemple de intelligence artificielle (AI) utilisé aujourd’hui. Pensez à Google Assistant et à l’intelligence de la plateforme grâce à apprentissage automatique. Mais, qu’est-ce qu’un ? Comment créez-vous un bot personnalisé pour votre site Web? Quelles technologies pouvez-vous utiliser pour le construire? Dans cet article de blog, vous trouverez les réponses à ces questions à travers des exemples pratiques. En utilisant Python et Dialogflow vous allez créer une infrastructure cloud pour des s incroyablement intelligents. À la fin de ce didacticiel, votre sera en mesure de comprendre les intentions de vos utilisateurs et de leur donner les informations qu’ils recherchent, en profitant de Google AI.

s conversationnels, l’état de l’art

Les s sont des systèmes logiciels créés pour interagir avec les humains via le chat. Les premiers s ont pu créer des conversations simples basées sur un système complexe de règles. Les limites de ces systèmes ont été dépassées par les s qui utilisent l’IA et l’apprentissage automatique pour interpréter les intentions de leur interlocuteur.

Les s peuvent aider dans de nombreux cas pratiques et réduire considérablement les coûts de gestion.

L’utilisation d’un dans votre entreprise peut offrir beaucoup avantages:

  • Disponibilité 24h / 24 à réduit frais;
  • Facilité d’utilisation sur le Web et mesurable les performances;
  • Accessibilité à de très grandes quantités de connaissances mises à jour
  • Compatibilité avec tous dispositifs, y compris les mobiles, les réseaux sociaux et même les SMS

Il existe de nombreux types de s en ligne. Certains d’entre eux ne nécessitent pas de compétences en programmation, encore moins de connaissances en apprentissage automatique ou en traitement du langage naturel. Des exemples de ce type de s sont Rasa, Octane Ai, Massively ou ManyChat. Cependant, la montée incroyable des systèmes d’apprentissage automatique fait évoluer les s. Si vous souhaitez en savoir plus, je vous recommande de partir de l’un de nos Parcours d’apprentissage sur la façon d’utiliser les systèmes cloud d’intelligence artificielle.

Il existe également des systèmes très courants qui utilisent AIML (Artificial Intelligence Markup Language) pour modéliser des systèmes conversationnels intelligents. Aujourd’hui, les s les plus utilisés sont ceux mis à disposition par principaux fournisseurs tels que Google, AWS et Microsoft. Nous connaissons tous Alexa, Cortana et Google Assistant. Vous devez examiner attentivement leurs offres de services lorsque vous choisissez la pile technologique pour votre . Ces trois grands fournisseurs fournissent des services fiables et services de cloud computing évolutifs cela vous aidera pour implémenter et personnaliser votre selon vos besoins. À l’heure actuelle, les plates-formes les plus célèbres pour créer facilement des robots textuels ou vocaux sont les suivantes:

  • Dialogflow (Google, anciennement Api.ai)
  • Azure Bot Service (Microsoft)
  • Lex (AWS)
  • Wit.ai (Facebook)
  • Watson (IBM)

Comment démarrer avec le framework de Dialogflow

Parmi tous les services pris en compte, Dialogflow est certainement l’un des plus impressionnants. La puissance du machine learning de Google fait la différence: le moteur de traitement du langage naturel (NLP) est parmi les meilleurs du marché. Comme le dit en effet son slogan: «Dialogflow est convivial, intuitif et logique». Il est également très facile à intégrer à Google Cloud Speech-to-Text et à des services tiers tels que Google Assistant, Amazon Alexa et Facebook Messenger.

Ce didacticiel est maintenant divisé en deux parties. La première partie vous montre comment configurer le et ne nécessite pas de compétences en programmation car cela se fera entièrement dans la console Google. La deuxième partie vous montre comment intégrer le à vos services et nécessite une connaissance de base de Python.

Configurer le dialogue

La configuration de Dialogflow est très simple:

  1. Inscrivez-vous gratuitement sur dialogflow.com en utilisant un compte Google
  2. Acceptez toutes les autorisations demandées afin de permettre à Dialogflow de gérer vos données à travers les services GCP et de vous laisser éventuellement intégrer Google Assistant (voir la figure 1 ci-dessous)
  3. Accédez à la console Dialogflow sur console.dialogflow.com
  4. Créez un nouvel agent en sélectionnant la langue principale (d’autres langues peuvent être ajoutées ultérieurement) et l’identifiant Google Project. Il s’agit du nom du projet dans la console Google Cloud et il est nécessaire pour activer la facturation et d’autres paramètres. Ne vous inquiétez pas, si vous n’avez pas de projet existant, créez-en un nouveau. Nous verrons plus tard comment obtenir un nouveau jeton pour le projet.

Connexion Dialogflow
[FIG 1: Permissions asked by Google Cloud Console to let you access the Dialogflow console]

Dialogflow est basé sur deux concepts principaux: intention et le contexte. L’intention est d’identifier avec précision le but de la phrase que l’utilisateur a envoyée au bot. De l’autre côté, le contexte est utilisé pour donner cohérence et fluidité à la discussion, en préservant les concepts clés qui ont déjà été utilisés dans la conversation.

Création d'intention
[FIG 2: Intent creation is the central part of the Dialogflow logics]

Un autre concept clé est celui de la entités, qui vous permettent d’identifier des concepts courants ou paramétriques récurrents dans la discussion. Il existe un certain nombre de types d’entités prédéfinis que le système fournit prêts à l’emploi, comme les dates ou les couleurs. En utilisant ces valeurs, vous pouvez rendre le très polyvalent.

Création d'une nouvelle entité
[FIG 3: Creation of a new entity for the Dialogflow ]

Pour ce tutoriel, cependant, nous allons montrer un exemple de base et nous concentrer uniquement sur les intentions.

Une fois que vous avez créé l’agent, commençons par définir certaines intentions via l’interface Dialogflow. La première chose que je suggère de faire est toujours d’utiliser l’interface graphique à droite pour tester notre en temps réel.

Comme vous pouvez le voir sur la figure 4, écrivez simplement « Essayez-le maintenant » formulaire pour obtenir une réponse. Si vous n’avez pas encore défini d’intention, le système utilisera le se retirer intention. De cette façon, vous empêcherez la discussion de s’arrêter. En fait, c’est un gros avantage pour nous, mais faites attention et utilisez cette fonctionnalité intelligemment pour amener la conversation à la bonne intention.

Parcourez maintenant le « Intention de secours par défaut ». Jetez un œil à la liste complète de tous «Réponses». Ils ont déjà été définis pour vous. Lorsque l’intention est mise en correspondance, le moteur de sélectionne au hasard un élément comme réponse. Il est maintenant temps de créer une ou plusieurs intentions: utilisez la console en vous assurant de remplir également «Phrases d’entraînement» forme. En fait, ce sont les phrases que vous attendez de l’utilisateur et qui déclencheront l’intention. Plus vous êtes détaillé dans la compilation des phrases, plus le sera précis dans l’identification de l’intention. Enfin, continuez en insérant plus d’intentions et n’oubliez pas de tester progressivement les résultats en utilisant l’aide de droite.

Après chaque modification et test, n’oubliez pas de sauvegarder votre progression en cliquant sur le « Sauver » pour que le modèle d’apprentissage automatique puisse s’entraîner.

Création d'un repli pour le chatbot Dialogflow
[FIG 4: Creation of a fallback for Dialogflow ]

Comme vous pouvez le voir, il est possible d’atteindre un bon résultat même avec la configuration d’intentions uniquement. Le moteur Google NLP fait la plupart du travail pour vous. Si vous vous sentez confiant (et si votre cas d’utilisation l’exige), vous pouvez commencer à ajouter un contexte à vos intentions. Vous pouvez même passer des paramètres entre une intention et une autre, en maintenant le contexte de la discussion. Lorsque vous serez satisfait du niveau atteint, nous passerons à l’étape suivante: intégrer le bot dans notre site!

Intégrez le à votre site Web

Il existe deux façons d’intégrer un Dialogflow dans votre site Web: à l’aide d’un widget ou à l’aide de Python.

1) Utiliser un widget

La façon la plus simple d’intégrer Dialogflow dans une page HTML est d’utiliser le iframe. Sélectionnez «Intégrations» dans le menu de gauche et assurez-vous que «Web Demo» est activé. Copiez et collez simplement le code HTML pour afficher l’agent directement sur votre site.

Intégrez le chatbot dans votre site Web à l'aide de l'iframe
[FIG 5: Integrate the in your website using the iframe]

2) Utiliser Python

Le script suivant vous permet d’appeler Dialogflow en utilisant Python 3. Vous pouvez trouver le client sur GitHub gratuitement. Le script initialise une session client qui prend l’intention en entrée et renvoie finalement une réponse, la soi-disant « accomplissement »et la confiance correspondante en tant que valeur décimale. La phrase pour laquelle nous voulons obtenir une réponse est enregistrée dans la variable nommée « Text_to_be_analyzed ». Modifiez le script en ajoutant votre phrase. En utilisant Python, il est facile de créer une logique plus personnalisée. Par exemple, vous pouvez intercepter une intention particulière, puis déclencher une action personnalisée.

"""Install the following requirements:
    dialogflow        0.5.1
    google-api-core   1.4.1
"""
import dialogflow
from google.api_core.exceptions import InvalidArgument

DIALOGFLOW_PROJECT_ID = 'google-project-id'
DIALOGFLOW_LANGUAGE_CODE = 'en-US'
GOOGLE_APPLICATION_CREDENTIALS = '1234567abcdef.json'
SESSION_ID = 'current-user-id'

text_to_be_analyzed = "Hi! I'm David and I'd like to eat some sushi, can you help me?"

session_client = dialogflow.SessionsClient()
session = session_client.session_path(DIALOGFLOW_PROJECT_ID, SESSION_ID)

text_input = dialogflow.types.TextInput(text=text_to_be_analyzed, language_code=DIALOGFLOW_LANGUAGE_CODE)
query_input = dialogflow.types.QueryInput(text=text_input)
try:
    response = session_client.detect_intent(session=session, query_input=query_input)
except InvalidArgument:
    raise

print("Query text:", response.query_result.query_text)
print("Detected intent:", response.query_result.intent.display_name)
print("Detected intent confidence:", response.query_result.intent_detection_confidence)
print("Fulfillment text:", response.query_result.fulfillment_text)

Comme vous pouvez le voir, la fonction nécessite un ID de session. Ce n’est rien d’autre qu’une valeur qui nous permet de reconnaître la session dans laquelle vous travaillez. À cette fin, je vous suggère d’utiliser l’ID de l’utilisateur pour le récupérer facilement.

Enfin, pour que le code Python fonctionne correctement, vous aurez besoin d’un nouveau jeton pour appeler l’intelligence artificielle de notre . En fait, tLa V2 (version 2) de l’API Dialogflow repose sur un système d’authentification basé sur une clé privée associée au compte de service Google Cloud Platform, au lieu des jetons d’accès. Veuillez suivre le tutoriel ici pour accomplir cette étape. Grâce à cette procédure simple, il sera possible d’obtenir une clé privée au format JSON. Assurez-vous de stocker le fichier dans un endroit sûr car si vous perdez la clé, vous devrez en générer une nouvelle en recommençant toute la procédure.

Avantages et inconvénients

À mon avis, la grande puissance de cet outil réside dans la capacité pour vous de concevoir votre propre logique métier grâce à l’utilisation d’une console intuitive et d’intégrer facilement des modules externes. De plus, Dialogflow peut évoluer vers des milliers d’utilisateurs, étant construit sur Google Cloud Platform, l’infrastructure cloud évolutive fournie par Google.

Voici donc ma liste des avantages et des inconvénients de Dialogflow pour vous.

AVANTAGES:

  • Beaucoup langues prise en charge; actuellement, plus de dix langues sont prises en charge, dont le russe, l’italien, le chinois et l’hindi (je vous invite à consulter la liste complète sur dialogflow.com/docs/reference/language)
  • le le contexte fonctionnalité, qui permet aux intentions définies de suivre le sens de la conversation
  • le « se retirer » intention
  • progressif formation
  • Interface graphique pour tester le flux conversationnel en temps réel
  • Beaucoup intégrations avec des systèmes de messagerie tiers (au moment de la rédaction de l’article, ceux-ci incluent: Assistant Google et Google Home, Android, Facebook Messenger, Slack, Viber, Twitter, Twilio, Skype, Telegram, Kik, Line, Cisco Spark, Amazon Alexa, et Microsoft Cortana).
  • Beaucoup langages de programmation sont pris en charge et SDK fourni pour créer une logique personnalisée avancée pour votre

LES INCONVÉNIENTS:

  • Vous devez pouvoir utiliser le SDK pour implémenter une logique avancée
  • Aucun moyen de refuser un contexte, car la correspondance des intentions ne peut être déclenchée et non bloquée
  • Vous devez entrer toutes les variantes et synonymes de l’intention d’obtenir un bon résultat (le support NLP ne semble pas encore être à 100% pour chaque langue prise en charge).

Conclusion

Si vous débutez avec Python, Cloud Academy propose une introduction au parcours d’apprentissage Python qui vous guide à travers les antécédents et les bases de Python afin que vous obteniez les compétences et les connaissances dont vous avez besoin pour commencer le plus rapidement possible.

Si vous débutez avec Dialogflow et que cet article a suscité votre intérêt, je vous recommande vivement de commencer par le « Pré-construire des agents. » Ceux-ci sont personnalisable agents spécialisé dans différents domaines de connaissances que vous pouvez simplement importer dans votre . Ensuite, vous pouvez configurer un webhook comme décrit dans cet article et obtenez la réponse de l’agent. Toutes les intentions et même les entités de l’agent sont modifiables et prêtes à l’emploi. N’hésitez pas à ajouter plus fonctionnalités directement à partir de Google Cloud Platform ou améliorez vos algorithmes avec NLP.

ChatBot: Comment construire un chatbot intelligent avec Python et Dialogflow

#Comment #construire # #intelligent #avec #Python #Dialogflow