Una sesión representa una conversación entre un agente de Dialogflow y un usuario final. Puedes crear entidades especiales, llamadas entidades de sesión, durante una sesión. Las entidades de sesión pueden ampliar o sustituir tipos de entidades personalizadas y solo existen durante la sesión para la que se crearon. Dialogflow almacena todos los datos de las sesiones, incluidas las entidades de sesión, durante 20 minutos.
Por ejemplo, si tu agente tiene un tipo de entidad @fruit
que incluye "pera" y "uva", ese tipo de entidad se podría actualizar para incluir "manzana" o "naranja", en función de la información que tu agente recoja del usuario final.
El tipo de entidad actualizado tendría la entrada de entidad "manzana" o "naranja"
durante el resto de la sesión.
Crear entidades de sesión con Fulfillment
Puedes crear entidades de sesión con fulfillment.
El tipo WebhookResponse
contiene un campo llamado sessionEntityTypes
que se usa para definir entidades de sesión.
En los siguientes ejemplos se muestra cómo definir 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 de uso de la biblioteca de cliente de Acciones en Google:
Si usas la biblioteca de cliente de Acciones de Google, puedes usar el complemento Entidades de sesión.
El código tendría un aspecto 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(); });
Crear entidades de sesión con la API
Puede crear, gestionar y actualizar entidades de sesión con el tipo
SessionEntityTypes
.