Entidades de sessão

Uma sessão representa uma conversa entre um agente do Dialogflow e um utilizador final. Pode criar entidades especiais, denominadas entidades de sessão, durante uma sessão. As entidades de sessão podem expandir ou substituir tipos de entidades personalizadas e só existem durante a sessão para a qual foram criadas. Todos os dados de sessões, incluindo as entidades de sessões, são armazenados pelo Dialogflow durante 20 minutos.

Por exemplo, se o seu agente tiver um @fruittipo de entidade que inclua "pera" e "uva", esse tipo de entidade pode ser atualizado para incluir "maçã" ou "laranja", consoante as informações que o seu agente recolhe do utilizador final. O tipo de entidade atualizado teria a entrada de entidade "maçã" ou "laranja" para o resto da sessão.

Criar entidades de sessão com o processamento de pedidos

Pode criar entidades de sessão com o cumprimento. O tipo WebhookResponse contém um campo denominado sessionEntityTypes que é usado para definir entidades de sessão.

Os exemplos seguintes mostram como definir as entradas de entidades de um tipo de entidade fruit como apple e orange para a sessão atual.

Exemplo 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"
    }
  ]
}

Exemplo de utilização da biblioteca cliente do Actions on Google:

Se estiver a usar a biblioteca de cliente Actions on Google, pode usar o plug-in de entidades de sessão.

O código teria um aspeto semelhante ao seguinte:

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();
});

Criar entidades de sessão com a API

Cria, gere e atualiza entidades de sessão através do tipo SessionEntityTypes.