Créer un agent Dialogflow ES

Ce guide explique comment créer et tester un agent simple à l'aide de la console Dialogflow.

Avant de commencer

Avant de lire ce guide, procédez comme suit :

  1. Consultez la section Principes de base de Dialogflow.
  2. Effectuez la procédure de configuration.

Créer un agent

Si vous n'avez pas encore créé d'agent, créez-en un maintenant:

  1. Accédez à la console Dialogflow ES.
  2. Si nécessaire, connectez-vous à la console Dialogflow. Consultez la section Présentation de la console Dialogflow pour plus d'informations.
  3. Cliquez sur Créer un agent dans le menu de la barre latérale de gauche. (Si vous avez déjà d'autres agents, cliquez sur le nom de l'un d'eux, faites défiler vers le bas, puis cliquez sur Créer un agent.)
  4. Saisissez le nom de l'agent, la langue par défaut et le fuseau horaire par défaut.
  5. Si vous avez déjà créé un projet, saisissez son nom. Si vous souhaitez autoriser la console Dialogflow à créer le projet, sélectionnez Créer un projet Google.
  6. Cliquez sur le bouton Create (Créer).

Importer le fichier d'exemple dans l'agent

Dans la mesure où les étapes de ce guide sont fondées sur certaines hypothèses concernant votre agent, vous devez import un agent préparé pour ce guide. Lors de l'importation, ces étapes utilisent l'option de restauration, qui écrase tous les paramètres, intents et entités de l'agent.

L'agent préparé pour ce guide est un nouvel agent, sans intents ni entités définis par l'utilisateur.

Pour importer le fichier, procédez comme suit :

  1. Téléchargez le fichier new-agent.zip.
  2. Accédez à la console Dialogflow ES.
  3. Sélectionnez votre agent.
  4. Cliquez sur le bouton des paramètres à côté du nom de l'agent.
  5. Sélectionnez l'onglet Export and Import (Exporter et importer).
  6. Sélectionnez Restaurer depuis un fichier ZIP et suivez les instructions pour restaurer le fichier ZIP que vous avez téléchargé.

Intents

Un intent permet de déterminer l'intention d'un utilisateur final dans le cadre d'un tour de conversation. Vous définissez plusieurs intents pour chaque agent, sachant que l'ensemble de ces intents combinés permet de traiter une conversation complète.

Intents par défaut

Lorsque vous créez un agent, deux intents par défaut sont créés pour vous :

  • Intent de bienvenue par défaut : cet intent est mis en correspondance lorsque l'utilisateur final entame une conversation avec votre agent. Il doit renvoyer une réponse permettant à l'utilisateur final de savoir ce que votre agent fait ou ce que l'utilisateur peut dire pour commencer une conversation.
  • Intent de remplacement par défaut : cet intent est mis en correspondance lorsque l'agent ne peut pas faire correspondre l'expression de l'utilisateur final à un autre intent.

Pour afficher ces intents, accédez à la liste des intents de votre agent :

  1. Accédez à la console Dialogflow ES.
  2. Sélectionnez l'agent que vous venez de créer.
  3. Cliquez sur Intents dans le menu de la barre latérale gauche.

La liste des intents de l'agent s'affiche au milieu de la console.

Capture d'écran de la liste des intents

Tester l'intent de remplacement par défaut

Capture d'écran du simulateur

Le simulateur Dialogflow se trouve à droite de la console. Il vous permet de tester l'agent en parlant ou en tapant des messages.

Testez désormais votre agent :

  • Cliquez sur le champ Essayez maintenant.
  • Tapez What is your name?.
  • Appuyez sur la touche "Entrée".

La réponse de l'agent s'affiche dans la section Default Response (Réponse par défaut). Puisque votre entrée ne correspond à aucun intent, l'intent de remplacement par défaut est mis en correspondance avec votre expression, et vous recevez l'une des réponses par défaut.

Créer un intent

La procédure décrite dans cette section explique comment créer un intent qui peut répondre à la question "Quel est votre nom ?". Pour chaque intent, vous définissez plusieurs phrases d'entraînement. Une phrase d'entraînement est un exemple de ce qu'un utilisateur final est susceptible de saisir ou de dire à votre agent (également appelée expression de l'utilisateur final). Vous devez définir de nombreuses phrases d'entraînement, qui fournissent à Dialogflow une variété d'expressions devant correspondre à un intent.

Pour créer un intent, procédez comme suit :

  1. Cliquez sur le bouton d'ajout d'intent à côté de la section Intents dans le menu de la barre latérale gauche.
  2. Saisissez le nom (get-agent-name) dans le champ Intent name (Nom de l'intent).
  3. Dans la section Training phrases (Phrases d'entraînement), cliquez sur Add Training Phrases (Ajouter des phrases d'entraînement).
  4. Saisissez les phrases d'entraînement suivantes, en appuyant sur "Entrée" après chaque ligne :

    • What is your name?
    • Do you have a name?
    • Tell me your name

    Capture d'écran des phrases d'entraînement

  5. Dans la section Responses (Réponses), saisissez Texte Response (Réponse textuelle) dans la section :

    • My name is Dialogflow!

    Capture d'écran des phrases d'entraînement

  6. Cliquez sur le bouton Save (Enregistrer) et attendez que la boîte de dialogue Agent Training (Entraînement de l'agent) indique que l'entraînement est terminé.

Tester l'intent

Capture d'écran du simulateur

Dans le simulateur, saisissez What's your name? (Comment vous appelez-vous ?), puis appuyez sur Entrée.

Votre agent répond correctement à l'expression, même si celle-ci diffère légèrement de la phrase d'entraînement fournie.

Dialogflow utilise les phrases d'entraînement comme exemples pour un modèle de machine learning afin de faire correspondre les expressions de l'utilisateur final à des intents. Le modèle vérifie l'expression par rapport à chaque intent de l'agent, attribue un score à chaque intent et associe à l'expression l'intent dont le score est le plus élevé. Si l'intent ayant le score le plus élevé a un score très faible, l'intent de remplacement est utilisé.

Paramètres et entités

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.

Lorsque vous créez un agent, vous pouvez annoter le texte des phrases d'entraînement et configurer les paramètres associés pour contrôler la manière dont les données sont extraites.

Créer des paramètres

Créez un intent avec des paramètres :

  1. Cliquez sur le bouton d'ajout à côté de la section Intents dans le menu de la barre latérale gauche.
  2. Nommez l'intent set-language (Langues) en haut de la page de l'intent.
  3. Ajoutez les phrases d'entraînement suivantes :
    • I know English
    • I speak French
    • I know how to write in German
  4. Cliquez sur le bouton Save (Enregistrer) et attendez que la boîte de dialogue Agent Training (Entraînement de l'agent) indique que l'entraînement est terminé.

    Capture d'écran de la phrase d'entraînement annotée

Dialogflow détecte automatiquement les paramètres des phrases d'entraînement reconnues en tant qu'entités système. Ces entités sont fournies par Dialogflow pour de nombreux types de données courants tels que l'emplacement, la couleur et la date.

Sous la section Training Phrases (Phrases d'entraînement), Dialogflow crée une ligne dans le tableau Actions & parameters (Actions et paramètres) :

Capture d'écran de la phrase d'entraînement annotée

  • Required (Requis) : la case n'est pas cochée, ce paramètre est donc facultatif.
  • Parameter Name (Nom du paramètre) : ce paramètre est automatiquement nommé language, car il est reconnu comme une langue.
  • Entity (Entité) : le type d'entité. Il est reconnu en tant qu'entité système @sys.language.
  • Value (Valeur) : l'identifiant que vous utilisez pour faire référence à la valeur de ce paramètre.
  • Is List (Liste) : la case n'est pas cochée, le paramètre n'est donc pas une liste.

Utiliser les données de paramètre dans une réponse

La valeur d'un paramètre peut être utilisée dans vos réponses. Par exemple, vous pouvez utiliser la référence du paramètre $language dans vos réponses lorsque vous créez un agent. Au moment de l'exécution, il est remplacé par la langue spécifiée dans l'expression de l'utilisateur final.

Ajoutez une réponse qui utilise un paramètre :

  1. Faites défiler la page vers le bas jusqu'à la section Responses (Réponses).
  2. Ajoutez la réponse textuelle suivante : Wow! I didn't know you knew $language.
  3. Cliquez sur le bouton Save (Enregistrer) et attendez que la boîte de dialogue Agent Training (Entraînement de l'agent) indique que l'entraînement est terminé.

Tester le paramètre

Capture d'écran du simulateur

Dans le simulateur, saisissez I know Russian (Je connais le russe).

Vous pouvez constater que Dialogflow extrait correctement le paramètre language avec la valeur Russian et que le mot Russian a été correctement inséré là où la référence du paramètre était utilisée dans la réponse.

Créer vos propres entités

Dans la plupart des cas, vous devez recueillir des données spécifiques non fournies par les entités système auprès des utilisateurs. Pour gérer cette situation, vous pouvez créer des entités personnalisées.

Pour créer une entité personnalisée, procédez comme suit :

  1. Cliquez sur le bouton d'ajout d'entité à côté de la section Entities (Entités) dans le menu de la barre latérale gauche.
  2. Saisissez language-programming comme nom d'entité.
  3. Ajoutez les entrées d'entité suivantes (lignes) :

    Valeur de référence Synonymes
    JavaScript JavaScript, js, ECMAScript
    Java Java
    Python Python, py
  4. Cliquez sur le bouton Save (Enregistrer) et attendez que la boîte de dialogue Agent Training (Entraînement de l'agent) indique que l'entraînement est terminé.

Capture d'écran de l'utilisation d'une entité

Dialogflow peut gérer des variations simples comme le pluriel et les majuscules, mais vous devez ajouter tous les synonymes possibles pour vos entrées. Plus vous en ajoutez, mieux votre agent pourra déterminer vos entités.

Utiliser votre nouvelle entité

Ajoutez des phrases d'entraînement à l'intent set-language qui utilise la nouvelle entité :

  1. Cliquez sur Intents dans le menu de la barre latérale gauche.
  2. Cliquez sur l'intent set-language (Langues).
  3. Ajoutez les phrases d'entraînement suivantes :
    • I know javascript
    • I know how to code in Java
  4. Notez que les langages de programmation de ces phrases d'entraînement sont automatiquement annotés et ajoutés aux paramètres de la section Actions and Parameters (Action et paramètres).
  5. Dans la section Responses (Réponses), ajoutez la seconde réponse textuelle suivante : $language-programming is an excellent programming language..
  6. Cliquez sur le bouton Save (Enregistrer) et attendez que la boîte de dialogue Agent Training (Entraînement de l'agent) indique que l'entraînement est terminé.

Tester la nouvelle entité

Capture d'écran du simulateur

Dans le simulateur, saisissez I know how to code in py (Je connais le russe).

Vous pouvez constater que Dialogflow a bien extrait l'entité py pour le paramètre language-programming, l'a identifié en tant qu'entité Python et a inséré la valeur dans la réponse.

Contextes

Vous pouvez contrôler le flux de la conversation à l'aide d'un contexte.

Ajouter un intent de suivi

Les intents de suivi permettent de contrôler une conversation facilement sans avoir à créer ni gérer des contextes manuellement.

Lorsque vous créez un intent de suivi, un contexte de sortie est ajouté à l'intent parent et un contexte d'entrée du même nom est ajouté à l'intent enfant. Cela signifie que l'intent de suivi n'est mis en correspondance que lorsque l'intent parent est mis en correspondance lors du tour de conversation précédent.

Pour ajouter un intent de suivi personnalisé à l'intent set-language (Langues), procédez comme suit :

  1. Sélectionnez l'intent set-language (Langues) créé lors des étapes précédentes.
  2. Dans la section Response (Réponse), mettez à jour le texte de la réponse :
    • Wow! I didn't know you knew $language. How long have you known $language?
  3. Cliquez sur le bouton Save (Enregistrer) et attendez que la boîte de dialogue Agent Training (Entraînement de l'agent) indique que l'entraînement est terminé.
  4. Cliquez sur Intents dans le menu de la barre latérale gauche.
  5. Passez la souris sur l'intent set-language (Langues), puis cliquez sur Add follow-up intent (Ajouter un intent de suivi).
  6. Cliquez sur custom (personnalisé) dans la liste qui s'affiche.
  7. Cliquez sur le bouton Save (Enregistrer) et attendez que la boîte de dialogue Agent Training (Entraînement de l'agent) indique que l'entraînement est terminé.

Dialogflow donne automatiquement le nom set-language - custom (Langues - personnalisé) à l'intent de suivi.

Capture d'écran du suivi

Correspondance des intents avec les intents de suivi

Les intents de suivi ne sont mis en correspondance qu'après la mise en correspondance de l'intent parent. Étant donné que l'intent set-language - custom (Langues - personnalisé) n'est utilisé qu'après la mise en correspondance de l'intent set-language (Langues), vous pouvez supposer que la question How long have you known $language? (Depuis combien de temps connaissez-vous le $language ?) a été posée à l'utilisateur. Vous pouvez maintenant ajouter des phrases d'entraînement pour indiquer les réponses probables des utilisateurs à cette question :

  1. Cliquez sur Intents dans le menu de la barre latérale gauche.
  2. Cliquez sur l'intent set-language - custom (Langues).
  3. Ajoutez les phrases d'entraînement suivantes :
    • 3 years
    • about 4 days
    • for 5 years
  4. Cliquez sur le bouton Save (Enregistrer) et attendez que la boîte de dialogue Agent Training (Entraînement de l'agent) indique que l'entraînement est terminé.

Tester l'intent de suivi

Saisissez I know French (Je connais le français) dans le simulateur, puis répondez à la question How long have you known French (Depuis combien de temps connaissez-vous le français ?) par about 2 weeks (environ 2 semaines).

Malgré l'absence de réponse pour la deuxième expression (about 2 weeks, environ 2 semaines), vous pouvez constater que l'expression est mise en correspondance avec l'intent correct (set-language - custom, Langues - personnalisé) et que le paramètre de durée est correctement analysé (2 weeks, 2 semaines).

Intents et contextes

En examinant l'intent set-language (Langues), vous constatez que set-language-followup (Langues-suivi) est répertorié en tant que contexte de sortie, précédé du chiffre 2. Ce chiffre indique la durée de vie.

Capture d'écran du contexte de sortie

Une fois que l'intent set-language (Langues) est mis en correspondance, le contexte set-language-followup (Langues-suivi) est actif et associé à la conversation pendant deux tours (durée de vie égale à 2). Par conséquent, lorsque l'utilisateur répond à la question How long have you known $language? (Depuis combien de temps connaissez-vous le $language ?)", le contexte set-language-followup (Langues-suivi) est actif.

En examinant l'intent set-language - custom (Langues - personnalisé), vous constatez que set-language-followup (Langues-suivi) est répertorié en tant que contexte d'entrée et qu'il est identique au contexte de sortie de l'intent set-language (Langues).

Tout intent dont le contexte d'entrée correspond à un contexte actif est fortement privilégié lorsque Dialogflow met un intent en correspondance.

Contextes et paramètres

Les contextes stockent les valeurs des paramètres. Vous pouvez accéder aux valeurs des paramètres définis dans l'intent set-language (Langues) lorsque son contexte de sortie est actif.

Dans l'intent set-language - custom (Langues - personnalisé), vous avez seulement demandé depuis combien de temps l'utilisateur connaissait la langue. Vous n'avez pas demandé quelle était la langue référencée.

Pour référencer la langue dans la réponse, procédez comme suit :

  1. Remplacez la réponse textuelle de l'intent set-language - custom par I can't believe you've known #set-language-followup.language for $duration!.
  2. Cliquez sur le bouton Save (Enregistrer) et attendez que la boîte de dialogue Agent Training (Entraînement de l'agent) indique que l'entraînement est terminé.

La référence #set-language-followup.language est appelée référence de paramètre pour un contexte actif.

Tester le paramètre de contexte

Saisissez I know French (Je connais le français) dans le simulateur, puis répondez à la question par 1 week (1 mois). Notez que la valeur du paramètre language est extraite du contexte.

Passage en production

Avant d'exécuter votre agent en production, veillez à mettre en œuvre les bonnes pratiques pour le passage en production.

Étapes suivantes

Consultez le guide de démarrage rapide du traitement.