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 de entidad 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”, este podría actualizarse para incluir “manzana” o “naranja”, según la información que el agente obtenga 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 fruit en apple y orange para la sesión actual.

Ejemplo de WebhookResponse:

    {
      "payload":{
        "google":{
          "expectUserResponse":true,
          "richResponse":{
            "items":[
              {
                "simpleResponse":{
                  "textToSpeech":"make your choice: apple or orange?"
                }
              }
            ]
          }
        }
      },
      "fulfillmentText":"make your choice: 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 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.