Definindo atributos de sessão para seu bot 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á.

Definindo atributos de sessão para seu bot Lex V2

Atributos da sessão contêm informações específicas do aplicativo que são passadas entre o bot e o aplicativo cliente durante uma sessão. O Amazon Lex passa atributos da sessão para todas as funções função do Lambda configuradas para um bot. Se uma função do Lambda adicionar ou atualizar atributos da sessão, o Amazon Lex passará as novas informações de volta para a aplicação cliente.

Use atributos de sessão em suas funções do Lambda para inicializar um bot e personalizar solicitações e cartões de resposta. Por exemplo:

  • Inicialização — Em um bot de pedido de pizza, o aplicativo cliente passa a localização do usuário como um atributo de sessão na primeira chamada para a operação RecognizeTextou RecognizeUtterance. Por exemplo, "Location": "111 Maple Street". A função do Lambda usa essas informações para encontrar a pizzaria mais próxima para fazer o pedido.

  • Personalizar prompts: configure prompts e cartões de resposta para fazer referência a atributos de sessão. Por exemplo, “Ei [FirstName], quais coberturas você gostaria?” Se você passar o nome do usuário como um atributo de sessão ({"FirstName": "Vivian"}), o Amazon Lex substituirá o nome pelo espaço reservado. Em seguida, ele envia uma solicitação personalizada para o usuário: "Oi, Viviane, quais coberturas você quer?"

Os atributos da sessão permanecem durante a vigência da sessão. Eles são criptografados e armazenados pelo Amazon Lex até o final da sessão. O cliente pode criar atributos de sessão em uma solicitação chamando a RecognizeUtteranceoperação RecognizeTextou com o sessionAttributes campo definido como um valor. Uma função do Lambda pode criar um atributo de sessão em uma resposta. Depois que o cliente ou uma função do Lambda cria um atributo de sessão, o valor do atributo armazenado é usado sempre que o aplicativo cliente não incluir o campo sessionAttribute em uma solicitação para o Amazon Lex.

Por exemplo, suponha que você tenha dois atributos de sessão {"x": "1", "y": "2"}. Se o cliente chamar a operação RecognizeText ou RecognizeUtterance sem especificar o campo sessionAttributes, o Amazon Lex chamará a função do Lambda com os atributos de sessão armazenados ({"x": 1, "y": 2}). Se a função do Lambda não retornar atributos de sessão, o Amazon Lex retornará os atributos de sessão armazenados ao aplicativo cliente.

Se o aplicativo cliente ou uma função do Lambda passar atributos de sessão, o Amazon Lex atualizará as informações dos atributos de sessão armazenados. Passar um valor existente, como {"x": 2}, atualiza o valor armazenado. Se você inserir um novo conjunto de atributos de sessão, como {"z": 3}, os valores existentes serão removidos e apenas o novo valor será mantido. Quando um mapa vazio, {}, é passado, os valores armazenados são apagados.

Para enviar atributos de sessão para o Amazon Lex, você cria um string-to-string mapa dos atributos. As considerações a seguir mostram como mapear atributos de sessão:

{ "attributeName": "attributeValue", "attributeName": "attributeValue" }

Para a operação RecognizeText, insira o mapa no corpo da solicitação usando o campo sessionAttributes da estrutura sessionState, como a seguir.

"sessionState": { "sessionAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" } }

Para a operação RecognizeUtterance, codifique o mapa em base64 e o envie como parte do cabeçalho x-amz-lex-session-state.

Se você estiver enviando dados binários ou estruturados em um atributo de sessão, deve primeiro transformar os dados em uma string simples. Para obter mais informações, consulte Definindo atributos complexos em seu bot Lex V2.