Entidades de la sesión

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.