Una sesión representa una conversación entre un agente de Dialogflow y un usuario final. Durante una sesión puedes crear entidades especiales denominadas entidades de sesión. Estas pueden extender o reemplazar los tipos personalizados de entidades y solo existen durante la sesión para la cual se crean. Dialogflow almacena todos los datos de una sesión, incluidas sus entidades, durante 20 minutos.
Por ejemplo, si tu agente tiene un tipo de entidad @fruit
que incluye “pera” y “uva”, ese tipo de entidad podría actualizarse para incluir “manzana” o “naranja”, según la información que recopila tu agente del usuario final.
El tipo de entidad actualizado tendría la entrada de entidad “manzana” o “naranja” para el resto de la sesión.
Crea entidades de sesión con entrega
Puedes crear entidades de sesión con entrega.
El tipo WebhookResponse
contiene un campo llamado sessionEntityTypes
que se usa para establecer entidades de sesión.
En los siguientes ejemplos, se muestra cómo establecer las entradas de entidad de un tipo de entidad fruit
en apple
y orange
para la sesión actual.
Ejemplo de 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" } ] }
Ejemplo en el que se usa la biblioteca cliente de Actions on Google:
Si usas la biblioteca cliente de Actions on Google, puedes usar el complemento de entidades de sesión.
El código sería similar al siguiente:
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(); });
Crea entidades de sesión con la API
Puedes crear, administrar y actualizar entidades de sesión con el tipo SessionEntityTypes
.