Cómo establecer atributos complejos en su bot Lex V2 - Amazon Lex

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 complejos en su bot Lex V2

Los atributos de sesión y solicitud son string-to-string mapas de atributos y valores. En muchos casos, puede utilizar la asignación de cadenas para transferir valores de atributos entre la aplicación cliente y un bot. En algunos casos, sin embargo, es posible que necesite transferir datos binarios o una estructura compleja que no se puede convertir fácilmente a una asignación de cadenas. Por ejemplo, el siguiente objeto JSON representa una matriz de las tres ciudades más pobladas de los Estados Unidos:

{ "cities": [ { "city": { "name": "New York", "state": "New York", "pop": "8537673" } }, { "city": { "name": "Los Angeles", "state": "California", "pop": "3976322" } }, { "city": { "name": "Chicago", "state": "Illinois", "pop": "2704958" } } ] }

Esta matriz de datos no se traduce bien en un string-to-string mapa. En este caso, puede transformar un objeto en una cadena sencilla para poder enviársela a su bot con las operaciones RecognizeText y RecognizeUtterance.

Por ejemplo, si está utilizando JavaScript, puede usar la JSON.stringify operación para convertir un objeto en JSON y la JSON.parse operación para convertir el texto JSON en un JavaScript objeto:

// To convert an object to a string. var jsonString = JSON.stringify(object, null, 2); // To convert a string to an object. var obj = JSON.parse(JSON string);

Para enviar atributos con la RecognizeUtterance operación, debes codificar los atributos en base64 antes de añadirlos al encabezado de la solicitud, como se muestra en el siguiente JavaScript código:

var encodedAttributes = new Buffer(attributeString).toString("base64");

Puede enviar datos binarios a las operaciones RecognizeText y RecognizeUtterance convirtiendo primero los datos a una cadena codificada en base64 y, a continuación, enviar la cadena como el valor en los atributos de sesión:

"sessionAttributes" : { "binaryData": "base64 encoded data" }