Definição dos atributos da sessão - Amazon Lex V1

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á.

Definição dos atributos da sessão

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 o aplicativo cliente. Por exemplo:

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 o local do usuário como um atributo de sessão na primeira chamada à operação PostContent ou PostText. 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 solicitações configure solicitações e cartões de resposta para fazer referência a atributos de sessão. Por exemplo, "Olá, [FirstName], quais coberturas você quer?" Se você passar o nome do usuário como um atributo de sessão ({"FirstName": "Jo"}), o Amazon Lex substituirá o nome pelo espaço reservado. Em seguida, ele envia uma solicitação personalizada para o usuário: "Oi, Jo, 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é que o final da sessão. O cliente pode criar atributos de sessão em uma solicitação usando a operação PostContent ou PostText com o campo sessionAttributes 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 PostContent ou PostText sem especificar o campo sessionAttributes, o Amazon Lex usará 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, crie um mapa de string para string dos atributos. As considerações a seguir mostram como mapear atributos de sessão:

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

Para a operação PostText, insira o mapa no corpo da solicitação usando o campo sessionAttributes, como a seguir:

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

Para a operação PostContent, codifique o mapa em base64 e o envie como o cabeçalho x-amz-lex-session-attributes.

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 Configuração de atributos complexos.