Entità di sessione

Una sessione rappresenta una conversazione tra un agente Dialogflow e un utente finale. Puoi creare entità speciali, chiamate entità di sessione, durante una sessione. Le entità sessione possono estendere o sostituire tipi di entità personalizzati ed esistere solo durante la sessione per cui sono state create. Tutti i dati delle sessioni, incluse le entità di sessione, vengono archiviati da Dialogflow per 20 minuti.

Ad esempio, se il tuo agente ha un tipo di entità @fruit che include "pera" e "uva", questo tipo di entità potrebbe essere aggiornato in modo da includere "mela" o "arancione", a seconda delle informazioni che l'agente raccoglie dall'utente finale. Il tipo di entità aggiornato avrà la voce dell'entità "apple" o "arancione" per il resto della sessione.

Creazione di entità di sessione con fulfillment

Puoi creare entità sessione con fulfillment. Il tipo WebhookResponse contiene un campo chiamato sessionEntityTypes che viene utilizzato per impostare le entità di sessione.

I seguenti esempi mostrano come impostare le voci di entità di un tipo di entità fruit su apple e orange per la sessione corrente.

WebhookResponse di esempio:

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

Esempio di utilizzo della libreria client di Actions on Google:

Se utilizzi la libreria client di Actions on Google, puoi utilizzare il plug-in Entità sessione.

Il codice sarà simile al seguente:

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

Creazione di entità sessione con l'API

Puoi creare, gestire e aggiornare le entità di sessione utilizzando il tipo SessionEntityTypes.