Entités de session

Une session représente une conversation entre un agent Dialogflow et un utilisateur final. Au cours d'une session, vous pouvez créer des entités spéciales appelées entités de session. Les entités de session peuvent étendre ou remplacer des types d'entités personnalisées, et n'existent que pendant la session pour laquelle elles ont été créées. Toutes les données de session, y compris les entités de session, sont stockées par Dialogflow pendant 20 minutes.

Par exemple, si votre agent dispose d'un type d'entité @fruit qui inclut "poire" et "raisin", ce type d'entité peut être mis à jour pour inclure "pomme" ou "orange", selon les informations que votre agent collecte auprès de l'utilisateur final. Le type d'entité mis à jour comprendra l'entrée d'entité "pomme" ou "orange" pendant le reste de la session.

Créer des entités de session avec fulfillment

Vous pouvez créer des entités de session à l'aide d'un fulfillment. Le type WebhookResponse contient un champ nommé sessionEntityTypes qui sert à définir les entités de session.

Les exemples suivants montrent comment définir des entrées d'entités de type d'entité fruit sur apple et orange pour la session en cours.

Exemple WebhookResponse :

{
  "fulfillmentMessages": [
    {
      "text": {
        "text": [
          "Choose apple or orange"
        ]
      }
    }
  ],
  "sessionEntityTypes":[
    {
      "name":"projects/project-id/agent/sessions/session-id/entityTypes/fruit",
      "entities":[
        {
          "value":"APPLE_KEY",
          "synonyms":[
            "apple",
            "green apple",
            "crabapple"
          ]
        },
        {
          "value":"ORANGE_KEY",
          "synonyms":[
            "orange"
          ]
        }
      ],
      "entityOverrideMode":"ENTITY_OVERRIDE_MODE_OVERRIDE"
    }
  ]
}

Exemple en utilisant la bibliothèque Actions on Google :

Si vous utilisez la bibliothèque cliente Actions on Google, vous pouvez exécuter le plug-in d'entités de session.

Votre code sera semblable à ceci :

const { sessionEntitiesHelper } = require('actions-on-google-dialogflow-session-entities-plugin')

const app = dialogflow()
    .use(sessionEntitiesHelper())

app.intent('input.welcome', (conv) => {
  conv.ask('make your choice: apple or orange?');
  // Set the fruit session entity values to 'apple' and 'orange'.
  conv.sessionEntities.add({
    name: 'fruit',
    entities: [{
      value: 'APPLE_KEY',
      synonyms: [
        'apple', 'green apple', 'crabapple'
      ]
    }, {
      value: 'ORANGE_KEY',
      synonyms: ['orange']
    }]
  });
  conv.sessionEntities.send();
});

Créer des entités de session à l'aide de l'API

Vous créez, gérez et mettez à jour des entités de session à l'aide du type SessionEntityTypes.