Una sessione rappresenta una conversazione tra un agente Dialogflow e un utente finale. Durante una sessione puoi creare entità speciali, chiamate entità sessione. Le entità di sessione possono estendere o sostituire i tipi di entità personalizzate ed esistono solo durante la sessione per cui sono state create. Tutti i dati della sessione, incluse le entità della sessione, vengono archiviati da Dialogflow per 20 minuti.
Ad esempio, se l'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à il valore "apple" o "arancione" per il resto della sessione.
Creazione di entità di sessione con fulfillment
Puoi creare entità di sessione con fulfillment.
Il tipo WebhookResponse
contiene un campo chiamato sessionEntityTypes
che viene utilizzato per impostare le entità della sessione.
Gli esempi riportati di seguito mostrano come impostare le voci delle entità di un tipo di entità fruit
su apple
e orange
per la sessione corrente.
Esempio di webhook:
{ "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à per le sessioni.
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à delle sessioni utilizzando il tipo
SessionEntityTypes
.