Se você estiver usando o Amazon Lex V2, consulte o Guia do Amazon Lex V2.
Se você estiver usando o Amazon Lex V1, recomendamos atualizar seus bots para o Amazon Lex V2. Não estamos mais adicionando novos atributos à V1 e recomendamos o uso da V2 para todos os novos bots.
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 do Amazon Lex
Quando um usuário começa uma conversa com o bot, o Amazon Lex cria uma sessão. As informações trocadas entre o aplicativo e o Amazon Lex compõem o estado da sessão para a conversa. Quando você faz uma solicitação, a sessão é identificada por uma combinação do nome do bot e um identificador de usuário especificado por você. Para obter mais informações sobre o identificador de usuário, consulte o campo userId
na operação PostContent ou PostText.
A resposta de uma operação de sessão inclui um identificador exclusivo que identifica uma sessão específica com um usuário. Você pode usar esse identificador durante o teste ou para ajudar a solucionar problemas no bot.
É 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á duas maneiras de atualizar o estado da sessão. A primeira é usar uma função do Lambda com a operação PostContent
ou PostText
que é chamada após cada turno da conversa. Para obter mais informações, consulte Uso de funções do Lambda. A outra é usar a API de runtime do Amazon Lex no seu aplicativo para fazer alterações no estado da sessão.
A API de runtime do Amazon Lex oferece 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 das três últimas intenções com as quais o usuário interagiu.
A operação PutSession
permite manipular diretamente o estado da sessão atual. Você pode definir o tipo de ação de diálogo que o bot realizará em seguida. Isso oferece a você controle sobre o fluxo da conversa com o bot. Defina o campo de ação de diálogo type
como Delegate
para que o Amazon Lex 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. É possível usar a operação GetSession
para obter o estado do diálogo da intenção anterior do Amazon Lex e usar as informações para definir o estado do diálogo da intenção.
A resposta da operação PutSession
contém as mesmas informações que a operação PostContent
. 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 PostContent
.
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
como 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.
Alternância entre 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 comoDelegate
. 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 utilizando a nova intenção.
Como retomar uma intenção anterior
Para retomar uma intenção anterior, use a operação GetSession
para obter o resumo da intenção e, depois, use a operação PutSession
para definir a intenção como seu estado de diálogo anterior.
-
Chame a operação
GetSession
. A resposta da operação inclui um resumo do estado de diálogo das últimas três intenções com as quais o usuário interagiu. -
Usando as informações do resumo de intenção, 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.
É possível usar o parâmetro checkpointLabel
da operação PutSession
a fim de rotular uma intenção para que seja possível localizá-la mais tarde. Por exemplo, um bot que solicita informações a um cliente pode entrar em uma intenção Waiting
enquanto o cliente coleta as informações. O bot cria um rótulo de ponto de verificação para a intenção atual e inicia a intenção Waiting
. Quando o cliente retornar, o bot poderá encontrar a intenção anterior usando o rótulo de ponto de verificação e alternar de volta.
A intenção deve estar presente na estrutura recentIntentSummaryView
retornada pela operação GetSession
. Se você especificar um rótulo de ponto de verificação na solicitação da operação GetSession
, ele retornará um máximo de três intenções com esse rótulo de ponto de verificação.
-
Use a operação
GetSession
para obter o estado atual da sessão. -
Use a operação
PutSession
para adicionar um rótulo de ponto de verificação à última intenção. Se necessário, é possível usar esta chamadaPutSession
para alternar para uma intenção diferente. -
Quando for o momento de retornar à intenção rotulada, chame a operação
GetSession
para retornar uma lista de intenções recente. É possível usar o parâmetrocheckpointLabelFilter
para que o Amazon Lex retorne somente as intenções com o rótulo do ponto de verificação especificado.
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 comoDelegate
. -
O Amazon Lex responderá com o prompt da sua intenção de boas-vindas para iniciar 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
ouPostContent
. -
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 camposlotToElicit
e definir o valordialogAction.type
comoelicitSlot
. Você também poderá definir os camposmessage
emessageFormat
se desejar alterar a mensagem usada pelo Amazon Lex para obter o valor do slot.