Entità di sessione

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Una sessione rappresenta una conversazione tra un agente Dialogflow e un utente finale. Durante una sessione puoi creare entità speciali, dette entità sessione. Le entità di sessione possono estendere o sostituire i tipi di entità personalizzati ed esistono solo durante la sessione per cui sono stati creati. Tutti i dati di sessione, 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 "pear" e "quope". Il tipo di entità aggiornato avrà la voce "apple" o "orange" per il resto della sessione.

Creazione di entità di sessione con fulfillment

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

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

Esempio di webhook di risposta:

{
  "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 delle 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à di sessione con l'API

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