Si utiliza Amazon Lex V2, consulte la guía de Amazon Lex V2.
Si utiliza Amazon Lex V1, le recomendamos que actualice los bots a Amazon Lex V2. Hemos dejado de agregar nuevas características a V1, por lo que recomendamos encarecidamente utilizar V2 para todos los nuevos bots.
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.
Definición de atributos complejos
Los atributos de sesión y solicitud son asignaciones de cadena a cadena 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 convierte bien en una asignación de cadena a cadena. En este caso, puede transformar un objeto en una cadena sencilla para poder enviársela a su bot con las operaciones PostContent y PostText.
Por ejemplo, si utiliza JavaScript, puede utilizar la operación JSON.stringify
para convertir un objeto a JSON y la operación JSON.parse
para convertir un texto JSON a un objeto JavaScript:
// To convert an object to a string. var jsonString = JSON.stringify(
object
, null, 2); // To convert a string to an object. varobj
= JSON.parse(JSON string
);
Para enviar los atributos de la sesión con la operación PostContent
, debe codificar en base64 los atributos antes de incluirlos en el encabezado de la solicitud, tal y como se muestra en el siguiente código JavaScript:
var
encodedAttributes
= new Buffer(attributeString
).toString("base64");
Puede enviar datos binarios a las operaciones PostContent
y PostText
convirtiendo primero los datos a una cadena codificada en base64 y, a continuación, enviar la cadena como el valor en los atributos de la sesión:
"sessionAttributes" : {
"binaryData": "base64 encoded data
"
}