Uma sessão representa uma conversa entre um agente do Dialogflow e um utilizador final. Pode criar entidades especiais, denominadas entidades de sessão, durante uma sessão. As entidades de sessão podem expandir ou substituir tipos de entidades personalizadas e só existem durante a sessão para a qual foram criadas. Todos os dados de sessões, incluindo as entidades de sessões, são armazenados pelo Dialogflow durante 20 minutos.
Por exemplo, se o seu agente tiver um @fruittipo de entidade
que inclua "pera" e "uva",
esse tipo de entidade pode ser atualizado para incluir "maçã" ou "laranja",
consoante as informações que o seu agente recolhe do utilizador final.
O tipo de entidade atualizado teria a entrada de entidade "maçã" ou "laranja" para o resto da sessão.
Criar entidades de sessão com o processamento de pedidos
Pode criar entidades de sessão com o cumprimento.
O tipo
WebhookResponse
contém um campo denominado sessionEntityTypes
que é usado para definir entidades de sessão.
Os exemplos seguintes mostram como definir as entradas de entidades de um tipo de entidade fruit como apple e orange para a sessão atual.
Exemplo de 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"
}
]
}
Exemplo de utilização da biblioteca cliente do Actions on Google:
Se estiver a usar a biblioteca de cliente Actions on Google, pode usar o plug-in de entidades de sessão.
O código teria um aspeto semelhante ao seguinte:
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(); });
Criar entidades de sessão com a API
Cria, gere e atualiza entidades de sessão através do tipo
SessionEntityTypes.