Una sessione rappresenta una conversazione tra un agente Dialogflow e un utente finale. Durante una sessione puoi creare entità speciali, chiamate entità di sessione. Le entità di sessione possono estendere o sostituire tipi di entità personalizzati ed esistono 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 "arancia", a seconda delle informazioni raccolte dall'agente dall'utente finale.
Il tipo di entità aggiornato sarebbe "apple" o "arancione" voce entità
per il resto della sessione.
Creazione di entità sessione con fulfillment
Puoi creare entità sessione con
fulfillment.
La
WebhookResponse
contiene un campo denominato sessionEntityTypes
utilizzato per impostare le entità di sessione.
I seguenti esempi mostrano come impostare un tipo di entità fruit
delle voci di entità in apple
e orange
per la sessione corrente.
Esempio di 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" } ] }
Esempio di utilizzo della libreria client Actions on Google:
Se utilizzi Libreria client di Actions on Google puoi usare il plug-in Session Entities.
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
Per creare, gestire e aggiornare le entità sessione, utilizza
SessionEntityTypes
di testo.