Principes de base de Dialogflow ES

Cette page décrit les principes de base de l'utilisation de Dialogflow ES. Nous vous conseillons d'en prendre connaissance avant de passer à d'autres documents ou aux guides de démarrage rapide.

Aider les utilisateurs à interagir avec la technologie

Pour bien fonctionner, les interfaces informatiques traditionnelles ont besoin d'entrées structurées et prévisibles, ce qui rend leur utilisation peu intuitive et parfois compliquée. Si ces entrées structurées ne sont pas aisément compréhensibles par les utilisateurs, ceux-ci vont avoir du mal à savoir comment procéder. Dans l'idéal, vos interfaces doivent être capables de déduire les intentions d'utilisateurs finaux s'exprimant en langage naturel.

Prenons par exemple cette requête simple d'un utilisateur : "Quel temps va-t-il faire aujourd'hui ?". D'autres utilisateurs finaux pourraient également demander :

  • "Quel temps fait-il en ce moment ?"
  • "Quelle sera la température à San Francisco demain ?"
  • "Quel temps fera-t-il le 21 ?"

Même avec des questions aussi simples, il est facile de voir que les expériences de conversation sont difficiles à mettre en œuvre. L'interprétation et le traitement du langage naturel nécessitent un analyseur linguistique extrêmement perfectionné. Dialogflow se charge de cet aspect pour vous permettre d'offrir une expérience utilisateur de grande qualité.

Agents

Un agent Dialogflow est un agent virtuel qui gère les conversations simultanées avec vos utilisateurs finaux. Il s'agit d'un module de compréhension du langage naturel qui saisit les nuances du langage humain. Dialogflow traduit les contenus texte ou audio produits par l'utilisateur final au cours d'une conversation en données structurées assimilables par vos applications et vos services. Vous pouvez créer un agent Dialogflow conçu pour gérer les types de conversations requis pour votre système.

Un agent Dialogflow est comparable à un agent humain de centre d'appels. L'un comme l'autre doivent apprendre à gérer les scénarios de conversation attendus, sans qu'il soit nécessaire de leur dispenser un entraînement/une formation trop explicite.

Intents

Un intent permet de catégoriser l'intention d'un utilisateur final dans le cadre d'un tour de conversation. Pour chaque agent, vous définissez un grand nombre d'intents, sachant que l'ensemble de ces intents combinés permet de traiter une conversation complète. Chaque fois qu'un utilisateur final écrit ou dit quelque chose, Dialogflow fait correspondre cette expression de l'utilisateur final à l'intent le plus approprié au sein de votre agent. La mise en correspondance des intents est également appelée classification des intents.

Par exemple, supposons que vous vouliez définir un agent de prévisions météo capable de reconnaître les questions posées par les utilisateurs finaux à propos du temps et d'y répondre. Vous définirez probablement un intent pour les questions concernant les prévisions météorologiques. Lorsqu'un utilisateur final demande : "Quelles sont les prévisions météo ?", Dialogflow met en correspondance cette expression de l'utilisateur final avec l'intent de prévision météo. Vous pouvez également définir un intent de manière à extraire des informations utiles de l'expression de l'utilisateur final, telles que l'heure ou le lieu pour lesquels les prévisions météo sont demandées. Ces données extraites sont essentielles pour permettre à votre système d'exécuter une requête de prévision météo pour l'utilisateur final.

Agent extrayant des données d'une expression d'utilisateur final concernant les prévisions météo

Un intent de base se compose des éléments suivants :

  • Phrases d'entraînement : il s'agit d'exemples d'expressions correspondant à ce que les utilisateurs finaux sont susceptibles de dire. Lorsque l'utilisateur final prononce une expression ressemblant à l'une des phrases d'entraînement, Dialogflow établit la mise en correspondance avec l'intent. Il n'est pas nécessaire de définir tous les exemples d'expressions possibles, car les fonctionnalités de machine learning intégrées de Dialogflow se chargent d'étendre votre liste aux expressions similaires.
  • Action : vous pouvez définir une action pour chaque intent. Lorsqu'un intent est mis en correspondance, Dialogflow fournit l'action à votre système. Celle-ci vous permet de déclencher certaines actions définies dans votre système.
  • Paramètres : lorsqu'un intent est mis en correspondance au moment de l'exécution, Dialogflow fournit les valeurs extraites de l'expression de l'utilisateur final en tant que paramètres. Chaque paramètre est associé à un type, appelé type d'entité, qui détermine la manière exacte dont les données sont extraites. Contrairement aux entrées utilisateur brutes, les paramètres sont des données structurées pouvant être utilisées pour exécuter une logique ou générer des réponses.
  • Réponses : vous définissez des réponses textuelles, vocales ou visuelles à renvoyer à l'utilisateur final. Celles-ci peuvent apporter des éléments de réponse à l'utilisateur final, lui demander des informations supplémentaires ou mettre fin à la conversation.

Le schéma suivant illustre le processus de base de mise en correspondance de l'intent et de réponse à l'utilisateur final :

Agent et intent traitant une expression d'utilisateur final

Entités

Chaque paramètre d'intent est associé à un type, appelé type d'entité, qui détermine la manière exacte dont les données sont extraites d'une expression d'utilisateur final.

Dialogflow fournit des entités système prédéfinies correspondant à de nombreux types de données courants. Par exemple, il existe des entités système pour la mise en correspondance des dates, des heures, des couleurs, des adresses e-mail, etc. Vous pouvez également créer vos propres entités personnalisées pour la mise en correspondance de données personnalisées. Par exemple, vous pouvez définir une entité légume pouvant être mise en correspondance avec les types de légumes proposés dans une épicerie.

Contextes

Les contextes Dialogflow s'apparentent à la notion de contexte en langage naturel. Si un interlocuteur vous dit "ils sont orange", vous avez besoin de contexte pour comprendre à quoi "ils" fait référence. De même, pour traiter une expression d'utilisateur final de ce type, Dialogflow a besoin de recevoir avec cette expression un contexte permettant la mise en correspondance d'un intent.

L'utilisation de contextes vous permet de contrôler le flux d'une conversation. Vous pouvez configurer des contextes pour un intent en définissant des contextes d'entrée et de sortie, qui sont identifiés par des noms de type chaîne. Lorsqu'un intent est mis en correspondance, les éventuels contextes de sortie associés à cet intent sont activés. Lorsque les contextes sont actifs, Dialogflow est plus susceptible de mettre en correspondance les intents configurés avec des contextes d'entrée qui correspondent aux contextes actuellement actifs.

L'exemple ci-dessous illustre le contexte d'un agent bancaire.

Schéma d'un utilisateur interagissant avec des intents et un contexte.
  1. L'utilisateur final demande des informations sur son compte courant.
  2. Dialogflow met cette expression de l'utilisateur final en correspondance avec l'intent CheckingInfo. Cet intent possède un contexte de sortie checking, qui devient par conséquent actif.
  3. L'agent demande à l'utilisateur final le type d'informations qu'il souhaite concernant son compte courant.
  4. L'utilisateur final répond en indiquant "mon solde".
  5. Dialogflow met cette expression de l'utilisateur final en correspondance avec l'intent CheckingBalance. Cet intent a un contexte d'entrée checking, qui doit être actif pour que l'intent soit mis en correspondance. Il se peut que l'intent voisin SavingsBalance soit également défini, de façon à permettre la mise en correspondance de la même expression d'utilisateur final lorsqu'un contexte savings est actif.
  6. Une fois que votre système a effectué les requêtes de base de données requises, l'agent répond en annonçant le solde du compte courant.

Intents de suivi

Les intents de suivi vous permettent de définir automatiquement des contextes pour des paires d'intents. Un intent de suivi est un enfant de l'intent parent qui lui est associé. Lorsque vous créez un intent de suivi, un contexte de sortie est automatiquement ajouté à son intent parent, et un contexte d'entrée portant le même nom est ajouté au nouvel intent de suivi. Un intent de suivi n'est mis en correspondance que si son intent parent a aussi été mis en correspondance lors du tour de conversation précédent. Vous pouvez également créer plusieurs niveaux d'intents de suivi imbriqués.

Dialogflow propose de nombreux intents de suivi prédéfinis pour les réponses d'utilisateur final courantes comme "oui", "non" "ou" "annuler". Vous pouvez également créer vos propres intents de suivi afin de gérer des réponses personnalisées.

Console de Dialogflow

Dialogflow fournit une interface utilisateur Web : la console Dialogflow (consulter la documentation, ouvrir la console). Cette console vous permet de créer, de compiler et de tester des agents.

La console Dialogflow est différente de la console Google Cloud Platform (GCP) (consulter la documentation, ouvrir la console). La console Dialogflow sert à gérer les agents Dialogflow, tandis que la console GCP permet de gérer les paramètres Dialogflow spécifiques à GCP (par exemple, pour la facturation), ainsi que les autres ressources GCP.

Dans la plupart des cas, la console Dialogflow est la méthode privilégiée pour créer des agents, mais vous pouvez également passer par l'API Dialogflow pour effectuer cette même tâche dans le cadre de scénarios avancés.

Interactions utilisateur avec les intégrations

Dialogflow s'intègre avec de nombreuses plates-formes de conversation, telles que Google Assistant, Slack et Facebook Messenger. Pour créer un agent destiné à l'une de ces plates-formes, vous disposez d'un large choix d'options d'intégration. Les interactions directes des utilisateurs finaux sont gérées pour vous, ce qui vous permet de vous concentrer sur la création de votre agent. Chaque intégration gère les interactions des utilisateurs finaux de manière spécifique à la plate-forme. Pour plus d'informations, consultez la documentation de votre plate-forme d'intégration.

Fulfillment pour les intégrations

Par défaut, votre agent répond à un intent mis en correspondance avec une réponse statique. Si vous utilisez l'une des options d'intégration, vous pouvez fournir une réponse plus dynamique à l'aide du fulfillment. Lorsque vous activez le fulfillment pour un intent, Dialogflow répond à cet intent en appelant un service que vous définissez. Par exemple, si un utilisateur final souhaite prendre un rendez-vous chez le coiffeur pour vendredi, votre service peut interroger la base de données et répondre à cet utilisateur en lui indiquant les créneaux disponibles vendredi.

Chaque intent comporte un paramètre permettant d'activer le fulfillment. Si un intent requiert une intervention de votre système ou une réponse dynamique, vous devez activer le fulfillment pour cet intent. En cas de mise en correspondance d'un intent sans fulfillment activé, Dialogflow utilise la réponse statique que vous avez définie pour cet intent.

Lorsqu'un intent avec fulfillment activé est mis en correspondance, Dialogflow envoie à votre service de webhook une requête contenant les informations sur cet intent. Votre système peut alors effectuer toutes les actions requises et répondre à Dialogflow en indiquant la marche à suivre. Lorsque le fulfillment est activé, la réponse statique que vous avez définie pour l'intent n'est utilisée que si votre service de webhook échoue. Le schéma suivant illustre le flux de traitement du fulfillment.

Schéma illustrant le processus de fulfillment
  1. L'utilisateur final saisit ou prononce une expression.
  2. Dialogflow met cette expression de l'utilisateur final en correspondance avec un intent et extrait les paramètres.
  3. Dialogflow envoie un message de requête de webhook à votre service de webhook. Ce message contient des informations sur l'intent mis en correspondance, l'action, les paramètres et la réponse définie pour l'intent.
  4. Votre service effectue les actions requises, telles que des requêtes de base de données ou des appels d'API externes.
  5. Votre service envoie un message contenant la réponse du webhook à Dialogflow. Ce message contient la réponse qui doit être envoyée à l'utilisateur final.
  6. Dialogflow envoie la réponse à l'utilisateur final.
  7. L'utilisateur final voit ou entend la réponse.

Interactions avec les utilisateurs via l'API

Si vous n'utilisez aucune des options d'intégration, vous devez écrire du code interagissant directement avec l'utilisateur final. De plus, vous devez interagir directement avec l'API Dialogflow pour chaque tour de conversation, afin d'envoyer des expressions d'utilisateur final et de recevoir des correspondances d'intent. Le schéma suivant illustre le flux de traitement correspondant à l'interaction via l'API.

Schéma illustrant le processus basé sur l'API
  1. L'utilisateur final saisit ou prononce une expression.
  2. Votre service envoie cette expression de l'utilisateur final à Dialogflow dans un message de requête de détection d'intent.
  3. Dialogflow envoie un message contenant une réponse de détection d'intent à votre service. Ce message contient des informations sur l'intent mis en correspondance, l'action, les paramètres et la réponse définie pour l'intent.
  4. Votre service effectue les actions requises, telles que des requêtes de base de données ou des appels d'API externes.
  5. Votre service envoie une réponse à l'utilisateur final.
  6. L'utilisateur final voit ou entend la réponse.