Cómo establecer atributos de sesión para su bot Lex V2 - Amazon Lex

Cómo establecer atributos de sesión para su bot Lex V2

Los atributos de sesión contienen información específica de la aplicación que se transfieren entre un bot y una aplicación cliente durante una sesión. Se pasan atributos de sesión a todas las funciones de Lambda configuradas para un bot. Si una función de Lambda añade o actualiza los atributos de sesión, pasa la nueva información a la aplicación cliente.

Utilice los atributos de sesión en sus funciones de Lambda para inicializar un bot y personalizar las solicitudes y las tarjetas de respuesta. Por ejemplo:

  • Inicialización: en un bot de pedido de pizzas, la aplicación cliente pasa la ubicación del usuario como un atributo de sesión en la primera llamada a la operación RecognizeText o RecognizeUtterance. Por ejemplo, "Location": "111 Maple Street". La función de Lambda utiliza esta información para encontrar la pizzería más cercana para realizar el pedido.

  • Personalización de solicitudes: configure solicitudes y tarjetas de respuesta que hagan referencia a los atributos de la sesión. Por ejemplo, «Hola, [Nombre], ¿qué ingredientes quieres?» Si pasa el nombre del usuario como un atributo de sesión ({"FirstName": "Vivian"}), Amazon Lex lo reemplazará donde aparezca el marcador. A continuación, envía una pregunta personalizada al usuario, «Hola, Vivian, ¿qué ingredientes quieres?».

Los atributos de sesión se conservan durante toda la sesión. los guarda en un almacén de datos cifrado hasta que finaliza la sesión. El cliente puede crear atributos de sesión en una solicitud llamando a la operación RecognizeText o RecognizeUtterance con el campo sessionAttributes definido en un valor. Una función de Lambda puede crear un atributo de sesión en una respuesta. Cuando el cliente o una función de Lambda crean un atributo de sesión, el valor de atributo almacenado se utiliza siempre y cuando la aplicación cliente no incluya el campo sessionAttribute en una solicitud a Amazon Lex V2.

Por ejemplo, supongamos que tiene dos atributos de sesión, {"x": "1", "y": "2"}. Si el cliente llama a la operación RecognizeText o RecognizeUtterance sin especificar el campo sessionAttributes, Amazon Lex V2 llama a la función de Lambda con los atributos de sesión almacenados ({"x": 1, "y": 2}). Si la función de Lambda no devuelve atributos de sesión, devuelve los atributos de sesión almacenados a la aplicación cliente.

Si la aplicación cliente o una función de Lambda pasan atributos de sesión, Amazon Lex V2 actualiza los atributos de sesión almacenados. Al pasar un valor existente, como por ejemplo {"x": 2}, se actualiza el valor almacenado. Si pasa un nuevo conjunto de atributos de sesión, por ejemplo {"z": 3}, los valores existentes se eliminan y solo se mantiene el nuevo valor. Cuando se pasa una asignación vacía, {}, los valores almacenados se borran.

Para enviar atributos de sesión a , cree una asignación de cadena a cadena de los atributos. A continuación, se muestra cómo asignar atributos de sesión:

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

Para la operación RecognizeText, debe insertar la asignación en el cuerpo de la solicitud utilizando el campo sessionAttributes de la estructura sessionState, de la siguiente manera:

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

Para la operación RecognizeUtterance, hay que codificar en base64 la asignación y luego enviarla como parte del encabezado de x-amz-lex-session-state.

Si va a enviar datos binarios o estructurados en un atributo de la sesión, primero debe transformar los datos en una cadena sencilla. Para obtener más información, consulte Cómo establecer atributos complejos en su bot Lex V2.