Uma sessão representa uma conversa entre um agente do Dialogflow e um usuário final. É possível criar entidades especiais, chamadas de entidades de sessão, durante essa conversa. Elas podem estender ou substituir tipos de entidade personalizados e existem apenas durante a sessão para a qual foram criadas. Todos os dados da sessão, incluindo as entidades, são armazenados pelo Dialogflow por 20 minutos.
Por exemplo, se o agente tiver um tipo de entidade @fruit
que inclui "pera" e "uva", ele poderá ser atualizado para incluir "maçã" ou "laranja", dependendo das informações coletadas do usuário final.
O tipo de entidade atualizado terá a entrada de entidade “maçã” ou “laranja” pelo resto da sessão.
Como criar entidades de sessão com fulfillment
É possível criar entidades de sessão com fulfillment.
O tipo WebhookResponse
contém um campo chamado de sessionEntityTypes
. Ele é usado para definir entidades de sessão.
Nos exemplos a seguir, mostramos como definir as entradas de entidade de um tipo 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 com uso da biblioteca de cliente para Actions on Google:
Se você estiver usando a biblioteca de cliente para Actions on Google, poderá usar o plug-in de entidades de sessão (links em inglês).
Seu código seria semelhante a este:
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(); });
Como criar entidades de sessão com a API
Você cria, gerencia e atualiza as entidades da sessão usando o tipo SessionEntityTypes
.