Gerenciamento de sessões com a API Amazon Lex V2 - Guia do desenvolvedor

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciamento de sessões com a API Amazon Lex V2

Quando um usuário inicia uma conversa com seu bot, o Amazon Lex V2 cria uma sessão. As informações trocadas entre a aplicação e o Amazon Lex V2 compõem o estado da sessão para a conversa. Quando você faz uma solicitação, a sessão é identificada por um identificador especificado por você. Para obter mais informações sobre o identificador de sessão, consulte o campo sessionId na operação RecognizeText ou RecognizeUtterance.

É possível modificar o estado da sessão enviado entre o aplicativo e o bot. Por exemplo, você pode criar e modificar os atributos que contêm informações personalizadas sobre a sessão e alterar o fluxo da conversa definindo o contexto de diálogo para interpretar o próximo enunciado.

Há três maneiras de atualizar o estado da sessão.

  • Passe as informações da sessão em linha como parte de uma chamada para a operação RecognizeUtterance ou RecognizeText.

  • Use uma função do Lambda com a operação RecognizeText ou RecognizeUtterance que é chamada a cada turno da conversa. Para mais informações, consulte Habilitando a lógica personalizada com as funções do AWS Lambda. A outra é usar a API de runtime do Amazon Lex V2 na sua aplicação para fazer alterações no estado da sessão.

  • Use operações que permitem gerenciar informações da sessão para uma conversa com o bot. As operações são PutSession, GetSession e DeleteSession. Você pode usar essas operações para obter informações sobre o estado da sessão do seu usuário com o bot e ter um controle apurado sobre o estado.

Use a operação GetSession quando desejar obter o estado atual da sessão. A operação retorna o estado atual da sessão, incluindo o estado do diálogo com o usuário, todos os atributos de sessão que foram definidos e valores de slot da intenção atual e quaisquer outras intenções que o Amazon Lex V2 identificou como possíveis intenções que correspondem ao enunciado do usuário.

A operação PutSession permite manipular diretamente o estado da sessão atual. Você pode definir a sessão, incluindo o tipo de ação de diálogo que o bot executará em seguida e as mensagens que o Amazon Lex V2 enviará ao usuário. Isso oferece a você controle sobre o fluxo da conversa com o bot. Defina o campo type da ação de diálogo como Delegate para que o Amazon Lex V2 determine a próxima ação do bot.

Você pode usar a operação PutSession para criar uma nova sessão com um bot e definir a intenção com a qual ele deve começar. Também é possível usar a operação PutSession para mudar de uma intenção para outra. Ao criar uma sessão ou alterar a intenção, você também pode definir o estado da sessão, como valores de slot e atributos de sessão. Quando a nova intenção é concluída, você tem a opção de reiniciar a intenção anterior.

A resposta da operação PutSession contém as mesmas informações que a operação RecognizeUtterance. Você pode usar essas informações para solicitar a próxima informação ao usuário, da mesma forma que faria com a resposta da operação RecognizeUtterance.

Use a operação DeleteSession para remover uma sessão existente e começar de novo com uma nova sessão. Por exemplo, ao testar seu bot, você pode usar a operação DeleteSession para remover as sessões de teste do seu bot.

As operações de sessão trabalham com as funções do Lambda de atendimento. Por exemplo, se sua função do Lambda retornar Failed como o estado de atendimento, você poderá usar a operação PutSession para definir o tipo de ação de diálogo como close e fulfillmentState para ReadyForFulfillment para repetir a etapa de atendimento.

Veja a seguir algumas ações que você pode executar com as operações de sessão:

  • Fazer com que o bot inicie uma conversa em vez de esperar pelo usuário.

  • Alternar entre as intenções durante uma conversa.

  • Voltar para uma intenção anterior.

  • Iniciar ou reiniciar uma conversa no meio da interação.

  • Validar valores de slot e fazer com que o bot solicite novamente valores que não são válidos.

Cada uma delas é descrita com mais detalhes a seguir.

Como iniciar uma nova sessão

Se você desejar que o bot inicie a conversa com o usuário, use a operação PutSession.

  • Crie uma intenção de boas-vindas sem slots e uma mensagem de conclusão solicitando que o usuário indique uma intenção. Por exemplo, "O que você gostaria de pedir? Você pode dizer "Pedir uma bebida" ou "Pedir uma pizza".

  • Chame a operação PutSession. Defina o nome da intenção como o nome da intenção de boas-vindas e defina a ação de diálogo como Delegate.

  • O Amazon Lex responderá com o prompt da sua intenção de boas-vindas para iniciar a conversa com o usuário.

Alternar intenções

Você pode usar a operação PutSession para alternar de uma intenção para outra. Também é possível usá-la para voltar para uma intenção anterior. Você pode usar a operação PutSession para definir atributos de sessão ou valores de slot para a nova intenção.

  • Chame a operação PutSession. Defina o nome da intenção como o nome da nova intenção e defina a ação de diálogo como Delegate. Você também pode definir quaisquer valores de slot ou atributos de sessão necessários para a nova intenção.

  • O Amazon Lex iniciará uma conversa com o usuário que usa a nova intenção.

Como retomar uma intenção anterior

Para retomar uma intenção anterior, use a operação GetSession para obter o estado da intenção, executar a interação necessária e, depois, use a operação PutSession para definir a intenção como seu estado de diálogo anterior.

  • Chame a operação GetSession. Armazene o estado da intenção.

  • Execute outra interação, como cumprir uma intenção diferente.

  • Usando as informações salvas para a intenção anterior, chame a operação PutSession. Isso retornará o usuário para a intenção anterior no mesmo local na conversa.

Em alguns casos, pode ser necessário retomar a conversa do usuário com o bot. Por exemplo, digamos que você tenha criado um bot de atendimento ao cliente. Seu aplicativo determina que o usuário precisa conversar com um representante de atendimento ao cliente. Depois de falar com o usuário, o representante poderá direcionar a conversa de volta para o bot com as informações coletadas.

Para retomar uma sessão, use etapas semelhantes a estas:

  • Seu aplicativo determina que o usuário precisa falar com um representante de atendimento ao cliente.

  • Use a operação GetSession para obter o estado de diálogo atual da intenção.

  • O representante de atendimento ao cliente se comunica com o usuário e resolve o problema.

  • Use a operação PutSession para definir o estado de diálogo da intenção. Isso pode incluir definir valores de slot, definir atributos de sessão ou alterar a intenção.

  • O bot retoma a conversa com o usuário.

Validação de valores de slot

Você pode validar as respostas ao bot usando seu aplicativo cliente. Se a resposta não for válida, use a operação PutSession para obter uma nova resposta do usuário. Por exemplo, suponha que seu bot de pedido de flores só possa vender tulipas, rosas e lírios. Se o usuário pedir cravos, o aplicativo poderá fazer o seguinte:

  • Examinar o valor do slot retornado pela resposta PostText ou PostContent.

  • Se o valor do slot não for válido, chame a operação PutSession. Seu aplicativo deve limpar o valor do slot, definir o campo slotToElicit e definir o valor dialogAction.type como elicitSlot. Há a opção de você definir os campos message e messageFormat se quiser alterar a mensagem usada pelo Amazon Lex para obter o valor do slot.