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 los atributos de solicitud
Los atributos de solicitud contienen información específica de solicitud y se aplican únicamente a la solicitud actual. Una aplicación cliente envía esta información a Amazon Lex. Utilice los atributos de solicitud para pasar información que no tiene por qué persistir durante toda la sesión. Puede crear sus propios atributos de solicitud o utilizar atributos predefinidos. Para enviar atributos de solicitud, utilice el encabezado x-amz-lex-request-attributes
en un campo PostContent o requestAttributes
en una solicitud PostText. Dado que los atributos de solicitud no persisten en las solicitudes como atributos de la sesión, no se devuelven en las respuestas PostContent
o PostText
.
nota
Para enviar información que persiste en las solicitudes, utilice atributos de la sesión.
El espacio de nombres x-amz-lex:
está reservado a los atributos de solicitud predefinidos. No cree atributos de solicitud con el prefijo x-amz-lex:
.
Definición de atributos de solicitud predefinidos
Amazon Lex proporciona atributos de solicitud predefinidos para administrar la forma en que procesa la información enviada al bot. Los atributos no persisten en toda la sesión, por lo que debe enviar los atributos predefinidos en cada solicitud. Todos los atributos predefinidos se encuentran en el espacio de nombres x-amz-lex:
.
Además de los siguientes atributos predefinidos, Amazon Lex también proporciona atributos predefinidos para plataformas de mensajería. Para obtener una lista de dichos atributos, consulte Implementación de un bot de Amazon Lex en una plataforma de mensajería.
Configuración del tipo de respuesta
Si tiene dos aplicaciones cliente que tienen capacidades diferentes, es posible que necesite limitar el formato de los mensajes en una respuesta. Por ejemplo, es recomendable que restrinja los mensajes enviados a un cliente web a texto sin formato, pero permita que un cliente móvil use texto sin formato y Speech Synthesis SSML Markup Language (SSML). Para establecer el formato de los mensajes que devuelven las operaciones PostContent y PostText, use el atributo de solicitud x-amz-lex:accept-content-types"
.
Puede configurar el atributo en cualquier combinación de los siguientes tipos de mensajes:
-
PlainText
: el mensaje contiene texto UTF-8 sin formato. -
SSML
: el mensaje contiene texto con formato para salida de voz. -
CustomPayload
: el mensaje contiene un formato personalizado que ha creado para el cliente. Puede definir la carga para satisfacer las necesidades de su aplicación.
Amazon Lex devuelve únicamente los mensajes con el tipo especificado en el campo Message
de la respuesta. Puede configurar más de un valor mediante la separación de los valores con una coma. Si utiliza grupos de mensajes, cada uno debe contener al menos un mensaje del tipo especificado. De lo contrario, obtendrá un error NoUsableMessageException
. Para obtener más información, consulte Grupos de mensajes.
nota
El atributo de solicitud x-amz-lex:accept-content-types
no modifica el contenido del cuerpo HTML. El contenido de una respuesta de operación PostText
es siempre de texto UTF-8 sin formato. El cuerpo de una respuesta de operación PostContent
contiene datos en el formato establecido en el encabezado Accept
de la solicitud.
Definición de la zona horaria preferida
Para definir la zona horaria utilizada para resolver las fechas de forma que sea relativa a la zona horaria del usuario, utilice el atributo de solicitud x-amz-lex:time-zone
. Si no especifica una zona horaria en el atributo x-amz-lex:time-zone
, la opción predeterminada depende de la región que esté utilizando para el bot.
Región | Zona horaria predeterminada |
---|---|
Este de EE. UU. (Norte de Virginia) |
America/New_York
|
Oeste de EE. UU. (Oregón) |
America/Los_Angeles
|
Asia Pacífico (Singapur) |
Asia/Singapore
|
Asia Pacífico (Sídney) |
Australia/Sydney
|
Asia-Pacífico (Tokio) |
Asia/Tokyo
|
Europa (Fráncfort) |
Europe/Berlin
|
Europa (Irlanda) |
Europe/Dublin
|
Europa (Londres) |
Europe/London
|
Por ejemplo, si el usuario responde tomorrow
a la pregunta “¿Qué día desea recibir el paquete?”, la fecha en la que se entrega el paquete depende de la zona horaria del usuario. Por ejemplo, cuando es la 01:00 del 16 de septiembre en Nueva York, son las 22:00 del 15 de septiembre en Los Ángeles. Si el servicio se ejecuta en la región Este de EE. UU. (Norte de Virginia) y una persona en Los Ángeles solicita que se entregue un paquete “mañana” utilizando la zona horaria predeterminada, el paquete se entregará el día 17, no el día 16. Sin embargo, si se define el atributo de solicitud x-amz-lex:time-zone
en America/Los_Angeles
, el paquete se entregaría el día 16.
Puede definir el atributo en cualquiera de los nombres de zonas horarias de la organización IANA (Internet Assigned Number Authority). Para obtener la lista de nombres de zona horaria, consulte la lista de zonas horarias de la base de datos tz
Definición de atributos de solicitud definidos por el usuario
Un atributo de solicitud definido por el usuario es un dato que se envía al bot en cada solicitud. La información se envía en el encabezado de amz-lex-request-attributes
de una solicitud PostContent
o en el campo requestAttributes
de una solicitud PostText
.
Para enviar atributos de solicitud a Amazon Lex, cree una asignación de cadena a cadena de los atributos. A continuación, se muestra cómo asignar atributos de solicitud:
{ "attributeName": "attributeValue", "attributeName": "attributeValue" }
Para la operación PostText
, debe insertar la asignación en el cuerpo de la solicitud utilizando el campo requestAttributes
, de la siguiente manera:
"requestAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" }
Para la operación PostContent
, hay que codificar en base64 la asignación y luego enviarla como el encabezado de x-amz-lex-request-attributes
.
Si va a enviar datos binarios o estructurados en un atributo de solicitud, primero debe transformar los datos en una cadena sencilla. Para obtener más información, consulte Definición de atributos complejos.