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

Os atributos da sessão contêm informações específicas do aplicativo que são passadas entre um bot e um aplicativo cliente durante uma sessão. passa os atributos da sessão para todas as funções do Lambda configuradas para um bot. Se uma função Lambda adicionar ou atualizar os atributos da sessão, retornará as novas informações para o aplicativo 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 são persistidos durante a vigência da sessão. O os armazena em um armazenamento de dados criptografados 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 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.

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, chamará a função Lambda com os atributos {"x": 1, "y": 2} de sessão armazenados (). Se a função Lambda não retornar os atributos da sessão, retornará os atributos da sessão armazenados para o aplicativo cliente.

Se o aplicativo cliente ou uma função Lambda transmitir os atributos da sessão, 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, 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.