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
.