Dans la plupart des cas, vous configurez les contextes au moment de la conception (lors de la création d'un agent). Par exemple, si vous avez une phrase d'entraînement comme "Je souhaite ajouter une pizza à mon panier."
Dans certains scénarios avancés, vous pouvez également écrire un code permettant d'obtenir et de définir des contextes lors de l'exécution (au cours d'une conversation en direct). Par exemple, vous avez détecté la position d'un appareil et vous l'avez ajoutée au contexte, afin de pouvoir vous y reporter ultérieurement.
Ce document explique comment obtenir et définir des contextes au moment de la conception et de l'exécution à l'aide de la console Dialogflow, de l'API ou du fulfillment.
Nommer les contextes
Les règles suivantes s'appliquent à l'attribution de noms des contextes :
Règle | Exemples |
---|---|
Utilisez des noms alphanumériques. | mycontext1 |
Utilisez - ou _ à la place des espaces. |
my-context-1 |
Les noms ne sont pas sensibles à la casse. | Abc123 et abc123 sont considérés comme équivalents. |
Tous les noms de contexte sont en minuscules si vous utilisez l'API. | abc123 |
Définir des contextes lors de la conception
Console
- Accédez à la console Dialogflow ES.
- Sélectionnez un agent.
- Cliquez sur Intents dans le menu de la barre latérale gauche.
- Développez la section Contextes dans les données d'intents.
- Cliquez sur le champ Ajouter un contexte de sortie ou Ajouter un contexte d'entrée dans les données d'intents.
- Entrez un nom pour le contexte et appuyez sur la touche Retour.
- Pour les contextes de sortie, vous pouvez également cliquer sur le cercle de la durée de vie et modifier celle-ci.
- Ajoutez d'autres contextes, si nécessaire.
- Cliquez sur Enregistrer.
API
Consultez la documentation de référence sur les intents.
Définir des contextes lors de l'exécution
Fulfillment
Lorsque votre service de webhook envoie une réponse WebhookResponse
, définissez le champ outputContexts
sur les contextes actifs souhaités.
API
La requête d'appel detectIntent
de type Sessions
contient un champ queryParameters.contexts
, qui permet de définir les contextes actifs.
Voici un exemple JSON REST d'une requête detectIntent
:
POST https://dialogflow.googleapis.com/v2/{session=projects/*/agent/sessions/*}:detectIntent
{ "queryInput": { "text": { "languageCode": "en-US", "text": "I would like to add pizza to my shopping cart." } }, "queryParams": { "contexts": [{ "name": "projects/project-id/agent/sessions/session-id/contexts/product-chosen", "lifespanCount": 5, "parameters": { "product": "Pizza", "device-location" "@52.3377871,4.8698096,17z" } }] } }
Vous pouvez à tout moment appeler les méthodes Create, Delete et Update à l'aide du type Contexts
.
Obtenir des contextes lors de l'exécution
Fulfillment
Lorsque votre service de webhook reçoit une requête WebhookRequest
, le champ queryResult.outputContexts
contient les contextes actifs.
API
La réponse à un appel detectIntent
de type Sessions
contient un champ queryResult.outputContexts
, qui fournit la liste des contextes actifs.
Voici un exemple REST JSON d'une réponse detectIntent
:
{ "responseId": "response-id", "queryResult": { "queryText": "I would like to add pizza to my shopping cart.", "parameters": { "product": "pizza" }, "allRequiredParamsPresent": true, "fulfillmentText": "The product has been added.", "fulfillmentMessages": [ { "text": { "text": [ "The product has been added." ] } } ], "outputContexts": [ { "name": "projects/project-id/agent/sessions/session-id/contexts/product-chosen", "lifespanCount": 5, "parameters": { "product": "Pizza", "device-location" "@52.3377871,4.8698096,17z" } } ], "intent": { "name": "projects/project-id/agent/intents/intent-id", "displayName": "buy-product" }, "intentDetectionConfidence": 0.8057143, "languageCode": "en", } }
Vous pouvez à tout moment appeler les méthodes Get et List à l'aide du type Contexts
.