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

Definição de atributos de sessão para seu bot do 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 V2 transmite atributos de sessão para todas as funções do Lambda configuradas para um bot. Se uma função do Lambda adicionar ou atualizar atributos da sessão, o Amazon Lex V2 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 prompts e cartões de resposta. Por exemplo:

  • Inicialização: em um bot de pedido de pizza, o aplicativo cliente passa o local do usuário como um atributo de sessão na primeira chamada à operação RecognizeText ou 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. O Amazon Lex V2 os armazena em um armazenamento de dados criptografado até o término 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 Lambda cria um atributo de sessão, o valor do atributo armazenado é usado sempre que o aplicativo cliente não inclui um sessionAttribute campo em uma solicitação para o Amazon Lex V2.

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

Se o aplicativo cliente ou uma função Lambda transmitir os atributos da sessão, o Amazon Lex V2 atualizará os atributos da 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 V2, 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 Definição de atributos complexos no seu bot do Lex V2.