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.
- L'intent
- Si
cats
est le contexte actif :- L'intent
cat-show
est mis en correspondance. - Une photo de chat s'affiche pour l'utilisateur final.
- L'intent
- 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.
- L'intent
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.
- L'intent
- 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.
- L'intent
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 :
- 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.
- 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".