Una sessione rappresenta una conversazione tra un agente Dialogflow e un utente finale. Puoi creare entità speciali, chiamate entità sessione, durante una sessione. Le entità sessione possono estendere o sostituire i tipi di entità personalizzati ed esistono solo durante la sessione per cui sono state create. Tutti i dati della sessione, incluse le entità 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 per includere "mela" o "arancia", a seconda delle informazioni raccolte dall'agente dall'utente finale.
Il tipo di entità aggiornato avrà la voce di entità "mela" o "arancia" per il resto della sessione.
Creazione di entità sessione con il fulfillment
Puoi creare entità sessione con
il fulfillment.
Il
WebhookResponse
tipo contiene un campo denominato sessionEntityTypes
che viene utilizzato per impostare le entità sessione.
Gli esempi seguenti mostrano come impostare le voci di entità di un tipo di entità fruit su 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 la libreria client Actions on Google, puoi utilizzare il plug-in Entità sessione.
Il tuo 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à sessione utilizzando il
SessionEntityTypes
tipo.