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 @fruit
tipo 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
.