Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
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 transfiere entre un bot y una aplicación cliente durante una sesión. Amazon Lex V2 pasa los atributos de sesión a todas las funciones de Lambda para un bot. Si una función de Lambda añade o actualiza los atributos de sesión, Amazon Lex devuelve 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 preguntas 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 persisten durante toda la sesión. Amazon Lex los almacena en un almacén de datos cifrados 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. Una vez que el cliente o una función de Lambda ha creado un atributo de sesión, el valor de atributo almacenado se utiliza siempre que la aplicación cliente no incluya el campo sessionAttribute
en una solicitud a Amazon Lex.
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 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, Amazon Lex 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 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 Amazon Lex, 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.