Definir o contexto da intenção - Guia do desenvolvedor

Definir o contexto da intenção

Você pode fazer com que o Amazon Lex acione intenções com base no contexto. Um contexto é uma variável de estado que pode ser associada a uma intenção quando você define um bot. Você configura os contextos de uma intenção ao criar a intenção usando o console ou usando a operação CreateIntent. Você só pode usar o contexto na localidade em inglês (EUA) (en-US).

Existem dois tipos de relacionamentos para contextos: contextos de saída e contextos de entrada. Um contexto de saída se torna ativo quando uma intenção associada é cumprida. Um contexto de saída é retornado à sua aplicação na resposta da operação RecognizeText ou RecognizeUtterance e é definido para a sessão atual. Depois que um contexto é ativado, ele permanece ativo pelo número de turnos ou limite de tempo configurado quando o contexto foi definido.

Um contexto de entrada especifica as condições sob as quais uma intenção pode ser reconhecida. Uma intenção só pode ser reconhecida durante uma conversa quando todos os contextos de entrada estão ativos. Uma intenção sem contextos de entrada é sempre elegível para reconhecimento.

O Amazon Lex gerencia automaticamente o ciclo de vida dos contextos que são ativados ao cumprir as intenções com contextos de saída. Você também pode definir contextos ativos em uma chamada para a operação RecognizeText ou RecognizeUtterance.

Também é possível definir o contexto de uma conversa usando a função do Lambda para a intenção. O contexto de saída do Amazon Lex é enviado para o evento de entrada da função do Lambda. A função do Lambda pode enviar contextos em sua resposta. Para mais informações, consulte Habilitando a lógica personalizada com as funções do AWS Lambda.

Por exemplo, suponha que você tenha a intenção de reservar um carro alugado configurado para retornar um contexto de saída chamado “book_car_filled”. Quando a intenção é cumprida, o Amazon Lex define a variável de contexto de saída “book_car_filled”. Como “book_car_filled” é um contexto ativo, uma intenção com o contexto “book_car_filled” definido como um contexto de entrada agora é considerada para reconhecimento, desde que o enunciado do usuário seja reconhecido como uma tentativa de obter essa intenção. Você pode usar isso para propósitos que só façam sentido depois de reservar um carro, como enviar um recibo por e-mail ou modificar uma reserva.

Contexto de saída

O Amazon Lex ativa os contextos de saída de uma intenção quando a intenção é cumprida. Você pode usar o contexto de saída para controlar as intenções elegíveis para acompanhar a intenção atual.

Cada contexto tem uma lista de parâmetros que são mantidos na sessão. Os parâmetros são os valores do slot para a intenção cumprida. Você pode usar esses parâmetros para preencher previamente os valores dos slots para outras finalidades. Para obter mais informações, consulte Usar valores de slot padrão.

Você configura o contexto de saída ao criar uma intenção com o console ou com a operação CreateIntent. Você pode configurar uma intenção com mais de um contexto de saída. Quando a intenção é cumprida, todos os contextos de saída são ativados e retornados na resposta RecognizeText ou RecognizeUtterance.

Ao definir um contexto de saída, você também define sua vida útil, a duração ou o número de turnos no qual o contexto é incluído nas respostas do Amazon Lex. Um turno é uma solicitação de sua aplicação para o Amazon Lex. Depois que o número de turnos ou o tempo expirar, o contexto não estará mais ativo.

Sua aplicação pode usar o contexto de saída, conforme necessário. Por exemplo, sua aplicação pode usar o contexto de saída para:

  • Alterar o comportamento da aplicação com base no contexto. Por exemplo, uma aplicação de viagens pode ter uma ação diferente para o contexto “book_car_filled” que para “rental_hotel_filled”.

  • Retorne o contexto de saída para o Amazon Lex como contexto de entrada para o próximo enunciado. Se o Amazon Lex reconhecer o enunciado como uma tentativa de extrair uma intenção, ele usa o contexto para limitar as intenções que podem ser retornadas àquelas com o contexto especificado.

Contexto de entrada

Você define um contexto de entrada para limitar os pontos da conversa em que a intenção é reconhecida. Intenções sem um contexto de entrada são sempre elegíveis para serem reconhecidas.

Você define os contextos de entrada aos quais uma intenção responde usando o console ou a operação CreateIntent. Uma intenção pode ter mais de um contexto de entrada.

Para uma intenção com mais de um contexto de entrada, todos os contextos devem estar ativos para acionar a intenção. Você pode definir um contexto de entrada ao chamar a operação RecognizeText, RecognizeUtterance ou PutSession.

Você pode configurar os slots em uma intenção para obter valores padrão do contexto ativo atual. Os valores padrão são usados quando o Amazon Lex reconhece uma nova intenção, mas não recebe um valor de slot. Você especifica o nome do contexto e o nome do slot no formulário #context-name.parameter-name ao definir o slot. Para mais informações, consulte Usar valores de slot padrão.