Contextes d'entrée et de sortie

Les contextes d'entrée et de sortie sont appliqués aux intents. Ils fonctionnent conjointement pour contrôler le flux des conversations :

  • Les contextes de sortie contrôlent les contextes actifs. Lorsqu'un intent est mis en correspondance, les éventuels contextes de sortie associés à cet intent sont activés.
  • Les contextes d'entrée contrôlent la mise en correspondance des intents. Lorsque les contextes sont actifs, Dialogflow est plus susceptible de mettre en correspondance des intents configurés avec des contextes d'entrée qui constituent un sous-ensemble de contextes actifs.

Les contextes vous permettent de :

  • contrôler l'ordre de mise en correspondance des intents ;
  • créer des intents spécifiques au contexte avec les mêmes expressions d'entraînement.

Prenons l'exemple des intents suivants :

Nom de l'intent Phrases d'entraînement Paramètres Contextes d'entrée Contextes de sortie Réponse
pet-init "What do they look like?" ("À quoi ressemblent-ils ?") - - - "What kind of pet do you like?" ("Quel type d'animal de compagnie aimez-vous ?")
pet-select-dogs "I like dogs" ("J'aime les chiens") - - dogs "What do you want to know about dogs?" ("Que voulez-vous savoir sur les chiens ?")
pet-select-cats "I like cats" ("J'aime les chats") - - cats "What do you want to know about cats?" ("Que voulez-vous savoir sur les chats ?")
dog-show "What do they look like?" ("À quoi ressemblent-ils ?") - dogs - "Here is a picture of a dog." ("Voici une photo de chien.")
cat-show "What do they look like?" ("À quoi ressemblent-ils ?") - cats - "Here is a picture of a cat." ("Voici une photo de chat.")

Lorsque l'utilisateur final dit I like dogs :

  • L'intent pet-select-dogs est mis en correspondance.
  • Le contexte de sortie est dogs. Il devient ainsi le contexte actif.

Lorsque l'utilisateur final dit I like cats :

  • L'intent pet-select-cats est mis en correspondance.
  • Le contexte de sortie est cats. Il devient ainsi le contexte actif.

Lorsque l'utilisateur final dit What do they look like? :

  • Si dogs est le contexte actif :
    • L'intent dog-show est mis en correspondance.
    • Une photo de chien s'affiche pour l'utilisateur final.
  • Si cats est le contexte actif :
    • L'intent cat-show est mis en correspondance.
    • Une photo de chat s'affiche pour l'utilisateur final.
  • En l'absence de contexte actif :
    • L'intent pet-init est mis en correspondance.
    • L'utilisateur final est invité à indiquer le type d'animal de compagnie qu'il aime.

Contextes de sortie

Plusieurs contextes de sortie peuvent être appliqués à un intent. Lorsqu'un intent est mis en correspondance, les contextes de sortie appliqués à l'intent deviennent actifs.

Références de paramètre pour les contextes actifs

Lorsqu'un intent avec contexte de sortie est mis en correspondance, ses valeurs de paramètre collectées peuvent servir de stockage temporaire en appliquant des références de paramètre pour les contextes actifs. Ces valeurs sont accessibles lors d'une future mise en correspondance d'intent, tant que le contexte reste actif.

Prenons l'exemple de la variante ci-dessous à partir de l'exemple précédent :

Nom de l'intent Phrases d'entraînement Paramètres Contextes d'entrée Contextes de sortie Réponse
pet-init "What do they look like?" ("À quoi ressemblent-ils ?") - - - "What kind of pet do you like?" ("Quel type d'animal de compagnie aimez-vous ?")
pet-select "I like dogs" ("J'aime les chiens"), "I like cats" ("J'aime les chats") pet - pet-chosen "What do you want to know about $pet?" ("Que voulez-vous savoir sur les $animal ?")
pet-show "What do they look like?" ("À quoi ressemblent-ils ?") - pet-chosen - "Here is a picture of a #pet-chosen.pet." ("Voici une photo de #animal-choisi.animal.")

Lorsque l'utilisateur final dit I like dogs ou I like cats :

  • L'intent pet-select est mis en correspondance.
  • Le paramètre pet est défini sur le type d'animal de compagnie choisi.
  • Le contexte de sortie est pet-chosen. Il devient ainsi le contexte actif.

Lorsque l'utilisateur final dit What do they look like? :

  • Si pet-chosen est le contexte actif :
    • L'intent pet-show est mis en correspondance.
    • Si l'utilisateur final a sélectionné dogs lors du tour de conversation précédent, une photo de chien s'affiche.
    • Si l'utilisateur final a sélectionné cats lors du tour de conversation précédent, une photo de chat s'affiche.
  • En l'absence de contexte actif :
    • L'intent pet-init est mis en correspondance.
    • L'utilisateur final est invité à sélectionner un type d'animal de compagnie.

Durée de vie

Chaque contexte actif possède une durée de vie qui définit le nombre de tours de conversation pour lesquels le contexte reste actif. La durée de vie par défaut est de cinq tours de conversation pour les intents normaux et de deux tours de conversation pour les intents de suivi. Vous pouvez remplacer la durée de vie par défaut pour tous les contextes. En outre, tous les contextes expirent après 20 minutes d'activité. Lorsqu'un intent est mis en correspondance avec un contexte de sortie déjà actif, la durée de vie et le timer d'expiration sont réinitialisés.

Prenons l'exemple des descriptions d'intent suivantes pour un agent d'information sur les animaux de compagnie :

Nom de l'intent Phrases d'entraînement Paramètres Contextes d'entrée Contextes de sortie Réponse
pet-init "What do they look like?" ("À quoi ressemblent-ils ?"), "What do they sound like?" ("Comment s'expriment-ils ?"), "How big are they?" ("Quelle est leur taille ?") - - - "What kind of pet do you like?" ("Quel type d'animal de compagnie aimez-vous ?")
pet-select "I like dogs" ("J'aime les chiens"), "I like cats" ("J'aime les chats") pet - pet-chosen (durée de vie = 2) "What do you want to know about $pet?" ("Que voulez-vous savoir sur les $animal ?")
pet-show "What do they look like?" ("À quoi ressemblent-ils ?") - pet-chosen - "Here is a picture of a #pet-chosen.pet. What else do you want to know?" ("Voici une photo de #animal-choisi.animal. Que voulez-vous savoir d'autre ?")
pet-audio "What do they sound like?" ("Comment s'expriment-ils ?") - pet-chosen - "Here is a #pet-chosen.pet sound. What else do you want to know?" ("Voici un son de #animal-choisi.animal. Que voulez-vous savoir d'autre ?")
pet-size "How big are they?" ("Quelle est leur taille ?") - pet-chosen - "Here is a #pet-chosen.pet size chart. What else do you want to know?" ("Voici un son de #animal-choisi.animal. Que voulez-vous savoir d'autre ?")

Le tableau suivant présente un exemple de dialogue pour cet agent d'information sur les animaux de compagnie, qui illustre la durée de vie du contexte pet-chosen :

Tour Boîte de dialogue Explication
1 Agent : Quel type d'animal de compagnie aimez-vous ? L'intent pet-init est mis en correspondance.
2 Utilisateur : J'aime les chats.
Agent : Que voulez-vous savoir sur les chats ?
L'intent pet-select est mis en correspondance. Le contexte de sortie pet-chosen devient le contexte actif.
3 Utilisateur : À quoi ressemblent-ils ?
Agent : Voici une photo de chat. Que voulez-vous savoir d'autre ?
L'intent pet-show est associé à un contexte d'entrée pet-chosen. Le contexte pet-chosen est actif depuis un tour.
4 Utilisateur : Comment s'expriment-ils ?
Agent : Voici un son de chat. Que voulez-vous savoir d'autre ?
L'intent pet-audio est associé à un contexte d'entrée pet-chosen. Le contexte pet-chosen est actif depuis deux tours.
5 Utilisateur : Quelle est leur taille ?
Agent : Quel type d'animal de compagnie aimez-vous ?
L'intent pet-init est de nouveau mis en correspondance, car le contexte pet-chosen n'est plus actif.

Contextes d'entrée

Lorsque les contextes sont actifs, Dialogflow est plus susceptible de mettre en correspondance des intents configurés avec des contextes d'entrée qui correspondent aux contextes actuellement actifs. Les règles détaillées de mise en correspondance des intents sont les suivantes :

  1. Pour être mise en correspondance, la liste de contextes d'entrée d'un intent doit constituer un sous-ensemble de la liste de contextes actifs. Cela s'applique également aux intents sans contexte d'entrée.
  2. Pour les intents qui respectent la règle n° 1, ceux dont la liste de contextes d'entrée correspond le mieux à la liste de contextes actifs sont plus susceptibles d'être mis en correspondance.

Exemple :

  • Les intents sans contexte d'entrée peuvent être mis en correspondance à tout moment.
  • Lorsqu'aucun contexte n'est actif, seuls les intents sans contexte d'entrée peuvent être mis en correspondance.
  • Si les contextes "A" et "B" sont actifs, un intent avec les contextes d'entrée "A" et "C" ne pourra pas être mis en correspondance.
  • Si les contextes "A", "B" et "C" sont actifs, un intent avec les contextes d'entrée "A" et "B" peut être mis en correspondance.
  • Si les contextes "A" et "B" sont actifs, un intent avec les contextes d'entrée "A" et "B" sera plus susceptible d'être mis en correspondance qu'un intent sans contexte d'entrée ou un intent avec seulement un contexte d'entrée "A".