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.
PutSession
Crea una nueva sesión o modifica una sesión existente con un bot de Amazon Lex. Utilice esta operación para permitir que la aplicación establezca el estado del bot.
Para obtener más información, consulte Administración de las sesiones.
Sintaxis de la solicitud
POST /bot/botName
/alias/botAlias
/user/userId
/session HTTP/1.1
Accept: accept
Content-type: application/json
{
"activeContexts": [
{
"name": "string
",
"parameters": {
"string
" : "string
"
},
"timeToLive": {
"timeToLiveInSeconds": number
,
"turnsToLive": number
}
}
],
"dialogAction": {
"fulfillmentState": "string
",
"intentName": "string
",
"message": "string
",
"messageFormat": "string
",
"slots": {
"string
" : "string
"
},
"slotToElicit": "string
",
"type": "string
"
},
"recentIntentSummaryView": [
{
"checkpointLabel": "string
",
"confirmationStatus": "string
",
"dialogActionType": "string
",
"fulfillmentState": "string
",
"intentName": "string
",
"slots": {
"string
" : "string
"
},
"slotToElicit": "string
"
}
],
"sessionAttributes": {
"string
" : "string
"
}
}
Parámetros de solicitud del URI
La solicitud utiliza los siguientes parámetros URI.
- accept
-
El mensaje que Amazon Lex devuelve en la respuesta puede ser texto o voz basado en el valor de este campo.
-
Si el valor es
text/plain; charset=utf-8
, Amazon Lex devuelve texto en la respuesta. -
Si el valor comienza por
audio/
, Amazon Lex devuelve voz en la respuesta. Amazon Lex utiliza Amazon Polly para generar la voz en la configuración que ha especificado. Por ejemplo, si especificaaudio/mpeg
como valor, Amazon Lex devuelve voz en formato MPEG. -
Si el valor es
audio/pcm
, la voz que se devuelve esaudio/pcm
en formato little endian de 16 bits. -
A continuación se muestran los valores aceptados:
-
audio/mpeg
-
audio/ogg
-
audio/pcm
-
audio/*
(el valor predeterminado es mpeg) -
text/plain; charset=utf-8
-
-
- botAlias
-
El alias en uso para el bot que contiene los datos de la sesión.
Obligatorio: sí
- botName
-
El nombre del bot que contiene los datos de la sesión.
Obligatorio: sí
- userId
-
El ID del usuario de la aplicación cliente. Amazon Lex lo utiliza para identificar una conversación del usuario con el bot.
Limitaciones de longitud: longitud mínima de 2. La longitud máxima es de 100 caracteres.
Patrón:
[0-9a-zA-Z._:-]+
Obligatorio: sí
Cuerpo de la solicitud
La solicitud acepta los siguientes datos en formato JSON.
- activeContexts
-
Una lista de los contextos activos para la solicitud. Un contexto se puede activar cuando se cumple una intención anterior o al incluir el contexto en la solicitud,
Si no especifica una lista de contextos, Amazon Lex utilizará la lista de contextos actual en la sesión. Si especifica una lista vacía, se borran todos los contextos de la sesión.
Tipo: matriz de objetos ActiveContext
Miembros de la matriz: número mínimo de 0 artículos. Número máximo de 20 artículos.
Obligatorio: no
- dialogAction
-
Establece la siguiente acción que el bot debería llevar a cabo para cumplir con la conversación.
Tipo: objeto DialogAction
Obligatorio: no
- recentIntentSummaryView
-
Un resumen de los incidentes recientes en el bot. Puede utilizar la vista de resumen de intenciones para establecer una etiqueta de punto de control en una intención y modificar los atributos de intenciones. También puede utilizarla para eliminar o agregar objetos de resumen de intención a la lista.
La intención que modifique o agregue a la lista debe tener sentido para el bot. Por ejemplo, el nombre de la intención debe ser válido para el bot. Debe proporcionar valores válidos para lo siguiente:
-
intentName
-
nombres de ranuras
-
slotToElict
Si envía el parámetro
recentIntentSummaryView
en una solicitudPutSession
, el contenido de la nueva vista de resumen reemplaza la vista anterior. Por ejemplo, si una solicitudGetSession
devuelve tres intenciones en la vista de resumen y puede llamar aPutSession
con una intención en la vista de resumen, la siguiente llamada aGetSession
devolverá únicamente una intención.Tipo: matriz de objetos IntentSummary
Miembros de la matriz: número mínimo de 0 artículos. La cantidad máxima es de 3 elementos.
Obligatorio: no
-
- sessionAttributes
-
Un mapa de pares clave/valor que representa la información de contexto específica de la sesión. Contiene información de la aplicación pasada entre Amazon Lex y una aplicación cliente.
Tipo: mapa de cadena a cadena
Obligatorio: no
Sintaxis de la respuesta
HTTP/1.1 200
Content-Type: contentType
x-amz-lex-intent-name: intentName
x-amz-lex-slots: slots
x-amz-lex-session-attributes: sessionAttributes
x-amz-lex-message: message
x-amz-lex-encoded-message: encodedMessage
x-amz-lex-message-format: messageFormat
x-amz-lex-dialog-state: dialogState
x-amz-lex-slot-to-elicit: slotToElicit
x-amz-lex-session-id: sessionId
x-amz-lex-active-contexts: activeContexts
audioStream
Elementos de respuesta
Si la acción se realiza correctamente, el servicio devuelve una respuesta HTTP 200.
La respuesta devuelve los siguientes encabezados HTTP.
- activeContexts
-
Una lista de los contextos activos para la sesión.
- contentType
-
El tipo de contenido, tal como se especifica en el encabezado HTTP
Accept
de la solicitud. - dialogState
-
-
ConfirmIntent
: Amazon Lex espera “sí” o “no” como respuesta para confirmar la intención antes de cumplirla. -
ElicitIntent
: Amazon Lex quiere obtener la intención del usuario. -
ElicitSlot
: Amazon Lex espera el valor de una ranura para la intención actual. -
Failed
: indica que la conversación con el usuario ha fallado. Esto puede ocurrir porque el usuario no ha proporcionado una respuesta adecuada a las preguntas del servicio, porque la función de Lambda no ha podido cumplir con la intención o por otros motivos. -
Fulfilled
: indica que la función de Lambda ha cumplido con la intención satisfactoriamente. -
ReadyForFulfillment
: indica que el cliente tiene que cumplir la intención.
Valores válidos:
ElicitIntent | ConfirmIntent | ElicitSlot | Fulfilled | ReadyForFulfillment | Failed
-
- encodedMessage
-
El siguiente mensaje que debería mostrarse al usuario.
El campo
encodedMessage
está codificado en base-64. Debe descodificar el campo antes de que pueda utilizar el valor.Limitaciones de longitud: longitud mínima de 1. Longitud máxima de 1366.
- intentName
-
El nombre de la intención actual.
- message
-
Este encabezado ha quedado obsoleto.
El siguiente mensaje que debería mostrarse al usuario.
Solo puede utilizar este campo en las configuraciones regionales de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR e it-IT. En el resto de configuraciones regionales, el campo
message
es nulo. En su lugar, debe utilizar el campoencodedMessage
.Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 1024 caracteres.
- messageFormat
-
El formato del mensaje de respuesta. Uno de los valores siguientes:
-
PlainText
: el mensaje contiene texto UTF-8 sin formato. -
CustomPayload
: el mensaje está en un formato personalizado del cliente. -
SSML
: el mensaje contiene texto con formato para salida de voz. -
Composite
: el mensaje contiene un objeto JSON con secuencias de escape que contiene uno o más mensajes de los grupos a los que se asignaron cuando se creó la intención.
Valores válidos:
PlainText | CustomPayload | SSML | Composite
-
- sessionAttributes
-
Una asignación de pares clave/valor que representa la información de contexto específica de la sesión.
- sessionId
-
Un identificador único de la sesión.
- slots
-
Una asignación de cero o más ranuras de intención que Amazon Lex ha detectado a partir de la entrada del usuario durante la conversación.
Amazon Lex crea una lista de resoluciones que contiene posibles valores para una ranura. El valor que devuelve viene determinado por el valor
valueSelectionStrategy
seleccionado cuando se creó o actualizó el tipo de ranura. SivalueSelectionStrategy
se establece enORIGINAL_VALUE
, se devuelve el valor que proporciona el usuario, en caso de que el valor del usuario sea similar a los valores de la ranura. SivalueSelectionStrategy
se establece enTOP_RESOLUTION
, Amazon Lex devuelve el primer valor de la lista de resoluciones o, si no hay ninguna lista de resoluciones, un valor nulo. Si no especifica un valorvalueSelectionStrategy
, el valor predeterminado esORIGINAL_VALUE
. - slotToElicit
-
Si
dialogState
esElicitSlot
, devuelve el nombre de la ranura para que Amazon Lex quiere obtener un valor.
La respuesta devuelve lo siguiente como el cuerpo HTTP.
- audioStream
-
La versión del audio del mensaje que se transmite al usuario.
Errores
- BadGatewayException
-
El bot de Amazon Lex aún se está compilando o uno de los servicios dependientes (Amazon Polly o AWS Lambda) ha fallado debido a un error de servicio interno.
Código de estado HTTP: 502
- BadRequestException
-
Se ha producido un error al validar la solicitud, no hay mensajes útiles en el contexto o la compilación del bot ha fallado, está en curso o contiene cambios sin compilar.
Código de estado HTTP: 400
- ConflictException
-
Dos clientes utilizan la misma cuenta de AWS, el mismo bot de Amazon Lex y el mismo ID de usuario.
Código de estado HTTP: 409
- DependencyFailedException
-
Una de las dependencias, como AWS Lambda o Amazon Polly, ha generado una excepción. Por ejemplo:
-
Si Amazon Lex no tiene permisos suficientes para llamar a una función de Lambda
-
Si una función de Lambda tarda más de 30 segundos en ejecutarse
-
Si una función de Lambda de cumplimiento devuelve una acción de diálogo
Delegate
sin eliminar ningún valor de ranura.
Código de estado HTTP: 424
-
- InternalFailureException
-
Error de servicio interno. Vuelva a intentar la llamada.
Código de estado HTTP: 500
- LimitExceededException
-
Se ha superado un límite.
Código de estado HTTP: 429
- NotAcceptableException
-
El encabezado de aceptación de la solicitud no cuenta con un valor válido.
Código de estado HTTP: 406
- NotFoundException
-
No se ha encontrado el recurso (como el bot o un alias de Amazon Lex) al que se hace referencia.
Código de estado HTTP: 404
Véase también
Para obtener más información sobre el uso de esta API en uno de los AWS SDK específicos del idioma, consulta lo siguiente: