Actions et paramètres

Cette page décrit les actions et les paramètres relatifs aux intents, ainsi que leur utilisation lorsque les intents sont mis en correspondance au moment de l'exécution.

Où trouver ces données

La méthode la plus courante pour créer un agent consiste à utiliser la console Dialogflow ES (consulter la documentation, ouvrir la console). Les instructions ci-dessous concernent l'utilisation de la console. Pour accéder aux données sur les actions et les paramètres, procédez comme suit :

  1. Accédez à la console Dialogflow ES.
  2. Sélectionnez un agent.
  3. Cliquez sur Intents dans le menu de la barre latérale gauche.
  4. Sélectionnez un intent.
  5. Faites défiler la page jusqu'à la section Action and parameters (Action et paramètres).

Capture d'écran des champs d'action et de paramètres

Si vous créez un agent à l'aide de l'API au lieu de la console, consultez la documentation de référence sur les intents. Les champs portent le même nom dans l'API et dans la console. Le cas échéant, les différences notables entre la console et l'API sont signalées dans les instructions ci-dessous.

Actions

Le champ action est destiné à faciliter l'exécution de la logique de votre service pour plus de commodité.

Lorsque vous créez un agent, vous pouvez définir ce champ avec le texte de votre choix.

Lorsqu'un intent est mis en correspondance au moment de l'exécution, Dialogflow fournit la valeur de l'action à votre requête de webhook de fulfillment ou à la réponse d'interaction avec l'API. Cela permet de déclencher la logique spécifique dans votre service.

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.

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

La liste suivante présente les champs d'une configuration de paramètres. Les exemples s'appliquent à l'expression d'entraînement "Réserver une chambre pour mardi", dans laquelle "mardi" est annoté.

  • Required (Obligatoire) : cochez cette case si le paramètre est obligatoire pour l'intent à exécuter. Consultez la section Remplissage de cases avec les paramètres obligatoires ci-dessous.
  • Parameter Name (Nom du paramètre) : permet d'identifier le paramètre. Exemple : date.
  • Entity (Entité) : type d'entité associé au paramètre. Exemple : @sys.date.
  • Value (Valeur) : dans la plupart des cas, ce champ est défini sur une référence de paramètre telle que $parameter-name, utilisée comme espace réservé pour la valeur extraite au moment de l'exécution. Toutefois, ce champ permet également de sélectionner d'autres valeurs. Consultez la section Valeurs et références de paramètres ci-dessous. Exemple : $date.
  • Is List (Est une liste) : cochez cette case si les valeurs extraites doivent être renvoyées en tant que liste. Consultez la section Paramètres de liste ci-dessous.
  • Prompts (Invites) : questions posées par l'agent à l'utilisateur final si ce paramètre n'a pas été fourni. Ce champ n'est utilisé que si le champ Required (Obligatoire) est coché. Consultez la section Remplissage de cases avec les paramètres obligatoires ci-dessous.
  • Default value (Valeur par défaut) : valeur par défaut du paramètre lorsqu'elle n'a pas été fournie par l'utilisateur final. Pour modifier la valeur par défaut à l'aide de la console, passez la souris sur la ligne du paramètre, puis cliquez sur le menu de droite.

Lorsqu'un intent est mis en correspondance au moment de l'exécution, Dialogflow fournit les données de paramètre à votre requête de webhook de fulfillment ou à la réponse d'interaction avec l'API. Ces données sont fournies en tant que mappage entre les noms de paramètres et leurs valeurs.

Lorsque vous créez un agent, vos réponses peuvent inclure des valeurs de paramètres. Consultez la section Valeurs et références de paramètres ci-dessous.

Paramètres de liste

Quand vous créez un agent à l'aide de la console, le fait de cocher l'option Is List configure le paramètre en tant que liste. Les listes peuvent contenir plusieurs éléments. Par exemple, un agent de commande de produits de la ferme peut s'attendre aux expressions suivantes de la part d'un utilisateur :

  • "Je veux des pommes"
  • "Je veux des pommes et des oranges"
  • "Je veux des pommes, des oranges et des bananes"

Lorsque vous annotez vos expressions d'entraînement avec des paramètres de liste, elles peuvent contenir un ou plusieurs exemples de paramètres, et vous pouvez les annoter séparément :

Capture d'écran de l'annotation avec des paramètres de liste

Une fois que vous annotez au moins deux mots ou expressions avec le même paramètre dans une seule phrase d'entraînement, l'option Est une liste est automatiquement activée. Si vous désactivez cette option, mais que vous conservez la même annotation, l'option Is List (Est une liste) sera automatiquement cochée à nouveau lorsque vous ouvrirez la page contenant cette annotation.

Dans les agents multilingues, l'option Is List n'est pas spécifique à la langue.

Valeurs et références de paramètres

Les références de paramètres sont des variables contenant des valeurs de paramètres extraites au moment de l'exécution. Lorsque vous créez un agent, vous pouvez utiliser des références de paramètres dans les réponses d'intent, les invites de paramètres et le champ Value (Valeur) des paramètres.

Par exemple, vous pouvez utiliser $parameter-name dans la réponse d'un intent. Lorsque Dialogflow répond à l'utilisateur, il remplace cette référence de paramètre par la valeur de paramètre extraite au moment de l'exécution. Ceci est utile pour récapituler les informations fournies par l'utilisateur final. Par exemple, votre réponse d'intent peut être semblable à ceci : "D'accord, j'ai réservé une chambre pour vous le $Date".

Référence de paramètre de base

Pour référencer une valeur de paramètre extraite par l'entité associée, utilisez le format suivant :

$parameter-name

Par exemple, si le nom du paramètre est date, vous pouvez le référencer comme $date.

Référence de paramètre pour une valeur d'origine

Lorsque du texte est associé à une entité particulière, il est souvent converti en texte plus commode à traiter. Par exemple, le mot "pommes" dans une expression d'utilisateur final peut être extrait en tant que "pomme" pour une entité de fruits. Pour référencer une valeur de paramètre exactement telle qu'elle a été écrite ou prononcée par l'utilisateur final, utilisez le format suivant :

$parameter-name.original

Par exemple, si le nom du paramètre est date, vous pouvez référencer la valeur d'origine comme $date.original.

Référence de paramètre pour les dates ambiguës

Lorsqu'un paramètre est associé à l'entité système @sys.date et que l'utilisateur final fournit une date partielle (sans spécifier le mois, le jour et l'année), Dialogflow met en correspondance la date la plus proche dans le futur. Toutefois, vous pouvez également récupérer des variantes de cette date.

Vous pouvez récupérer la correspondance partielle explicite, dans laquelle Dialogflow remplace la partie inconnue par des U au format suivant :

$parameter-name.partial

Vous pouvez récupérer la date la plus proche dans le passé en utilisant le format suivant :

$parameter-name.recent

Par exemple, si la date du jour est le 11 août 2021, le nom de votre paramètre est date et l'utilisateur dit "13 août":

Référence de paramètre Valeur résolue
$date 2021-08-13
$date.partial UUUU-08-13
$date.recent 2020-08-13

Référence de paramètre pour une entité composite

Les entités composites sont des entités qui contiennent d'autres sous-entités. Pour référencer la valeur d'une sous-entité de paramètre, utilisez le format suivant :

$parameter-name.sub-entity-name

Par exemple, si le nom du paramètre est move et que le nom de la sous-entité est direction, vous pouvez référencer la valeur de la sous-entité comme $move.direction.

Référence de paramètre pour un contexte actif

Les contextes peuvent servir de stockage temporaire pour les valeurs de paramètres. Pour référencer une valeur de paramètre obtenue à l'aide d'un contexte actif, utilisez le format suivant :

#context-name.parameter-name

Par exemple, si le nom du paramètre est room et que reservation est un contexte actif, vous pouvez référencer la valeur de paramètre comme #reservation.room.

Référence pour un paramètre d'événement

Pour référencer un paramètre d'événement, utilisez le format suivant :

#event-name.parameter-name

Par exemple, si le nom du paramètre est duration et que le nom de l'événement est alarm, vous pouvez référencer le paramètre d'événement comme #alarm.duration.

Champ "Value" (Valeur) du paramètre

Les références de paramètres spécifiées dans le champ Value (Valeur) du paramètre ont une signification particulière. Le contenu de ce champ détermine la valeur résolue de $parameter-name dans les réponses d'intent et les invites de paramètres. Dialogflow traite les données des paramètres dans l'ordre suivant :

  1. Extrait la valeur de paramètre à partir de l'expression de l'utilisateur final à l'aide de l'entité associée.
  2. Résout le contenu du champ Value (Valeur) du paramètre.
  3. Définit $parameter-name sur le contenu résolu du champ Value (Valeur) du paramètre. Si le champ Value (Valeur) n'est pas défini sur $parameter-name, la valeur de $parameter-name est réinitialisée sur un autre élément.
  4. Résout le contenu des réponses d'intent et des invites de paramètres.

Voici quelques exemples permettant d'illustrer les effets de cet ordre pour l'expression d'un utilisateur final "Je veux acheter une chemise de petite taille".

Emplacement de référence du paramètre Contenu configuré Contenu résolu
Champ Value (Valeur) du paramètre $size S
Réponse de l'intent Vous avez choisi la taille $size. Vous avez choisi la taille S.
Emplacement de référence du paramètre Contenu configuré Contenu résolu
Champ Value (Valeur) du paramètre $size.original Petite
Réponse de l'intent Vous avez choisi la taille $size. Vous avez choisi la taille Petite.
Emplacement de référence du paramètre Contenu configuré Contenu résolu
Champ Value (Valeur) du paramètre $size S
Réponse de l'intent Vous avez choisi la taille $size.original. Vous avez choisi la taille Petite.

Remplissage de cases avec des paramètres obligatoires

Quand vous créez un agent, vous pouvez cocher les paramètres qui sont obligatoires. Un intent n'est pas complet tant que l'utilisateur final n'a pas fourni les données pour chacun des paramètres obligatoires.

Capture d'écran des champs de paramètres obligatoires

Lorsqu'un intent est mis en correspondance au moment de l'exécution, l'agent Dialogflow continue à collecter des informations auprès de l'utilisateur final jusqu'à ce que celui-ci ait fourni des données pour chacun des paramètres obligatoires. Ce processus est appelé remplissage de cases.

Dialogflow n'envoie pas de requête de webhook de fulfillment tant qu'il n'a pas collecté toutes les données requises auprès de l'utilisateur final, à moins que le webhook de remplissage de cases soit activé.

Dialogflow envoie une réponse d'interaction avec l'API pour chaque étape du remplissage de cases. Pour chacune de ces réponses, l'intent et l'action sont identiques, et les paramètres collectés jusqu'à présent sont fournis.

Quand vous créez un agent, vous fournissez des invites qui permettront à l'agent d'obtenir les données de paramètre auprès de l'utilisateur final. Vous pouvez également fournir des variantes d'invites pour que l'agent ne pose pas toujours les mêmes questions.

Capture d'écran des invites de paramètres

Par exemple, imaginons que votre agent de magasin de vêtements ait un intent avec les paramètres obligatoires suivants :

  • Type de vêtement
  • Quantité
  • Taille
  • Couleur

L'intent complété peut se présenter comme ceci :

Utilisateur : Je souhaite acheter des t-shirts.
Agent : Combien vous en faut-il ?
Utilisateur : 3
Agent : De quelle couleur ?
Utilisateur : Noir
Agent : Dans quelle taille ?
Utilisateur : M
Agent : Compris, trois t-shirts noirs en taille M

Si l'utilisateur final fournit des données pour plusieurs paramètres dans une seule expression, Dialogflow collecte les données fournies et continue à demander les données manquantes. Par exemple, l'utilisateur final peut dire "Je souhaite acheter trois t-shirts noirs." Dialogflow lui demande alors la taille désirée.

Paramètres de tri

Quand vous créez un agent, vous pouvez trier les paramètres afin de déterminer l'ordre dans lequel l'agent posera les questions pour obtenir les données manquantes.

Si vous créez l'agent à l'aide de la console, passez la souris sur un paramètre pour faire apparaître l'icône Réorganiser à droite. Faites glisser l'icône pour changer la position du paramètre dans la liste.

Références des paramètres dans les invites

Lorsque vous créez un agent, vous pouvez utiliser des références de paramètres dans les invites, mais seulement si ces valeurs concernent des paramètres obligatoires avant l'invite. Par exemple, si le paramètre color est positionné avant le paramètre quantity, vous pouvez utiliser l'invite suivante pour le paramètre quantity : How many $color t-shirts would you like to buy?

Annuler le remplissage de cases

Lorsque l'utilisateur final prononce une expression de sortie telle que "Annuler", "Arrêter", "Cela suffit", etc., l'agent répond par "OK, annulé" et efface les contextes de remplissage de cases.

Si vous utilisez l'API, le champ DetectIntentResponse.queryResult.cancelsSlotFilling est défini sur true lorsque le remplissage de cases est annulé. Pour en savoir plus, consultez la documentation detectIntent sur le type Sessions.