

Aviso de fin de soporte: el 15 de septiembre de 2025, AWS dejaremos de ofrecer soporte para Amazon Lex V1. Después del 15 de septiembre de 2025, ya no podrá acceder a la consola de Amazon Lex V1 ni a los recursos de Amazon Lex V1. Si utiliza Amazon Lex V2, consulte en su lugar la [guía Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html). 

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
<a name="API_runtime_PutSession"></a>

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](https://docs.aws.amazon.com/lex/latest/dg/how-session-api.html).

## Sintaxis de la solicitud
<a name="API_runtime_PutSession_RequestSyntax"></a>

```
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
<a name="API_runtime_PutSession_RequestParameters"></a>

La solicitud utiliza los siguientes parámetros URI.

 ** [accept](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-accept"></a>
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 especifica `audio/mpeg` como valor, Amazon Lex devuelve voz en formato MPEG.
+ Si el valor es `audio/pcm`, la voz que se devuelve es `audio/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](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-uri-botAlias"></a>
El alias en uso para el bot que contiene los datos de la sesión.  
Obligatorio: sí

 ** [botName](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-uri-botName"></a>
El nombre del bot que contiene los datos de la sesión.  
Obligatorio: sí

 ** [userId](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-uri-userId"></a>
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
<a name="API_runtime_PutSession_RequestBody"></a>

La solicitud acepta los siguientes datos en formato JSON.

 ** [activeContexts](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-activeContexts"></a>
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](API_runtime_ActiveContext.md)  
Miembros de la matriz: número mínimo de 0 artículos. Número máximo de 20 artículos.  
Obligatorio: no

 ** [dialogAction](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-dialogAction"></a>
Establece la siguiente acción que el bot debería llevar a cabo para cumplir con la conversación.  
Tipo: objeto [DialogAction](API_runtime_DialogAction.md)  
Obligatorio: no

 ** [recentIntentSummaryView](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-recentIntentSummaryView"></a>
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 solicitud `PutSession`, el contenido de la nueva vista de resumen reemplaza la vista anterior. Por ejemplo, si una solicitud `GetSession` devuelve tres intenciones en la vista de resumen y puede llamar a `PutSession` con una intención en la vista de resumen, la siguiente llamada a `GetSession` devolverá únicamente una intención.  
Tipo: matriz de objetos [IntentSummary](API_runtime_IntentSummary.md)  
Miembros de la matriz: número mínimo de 0 artículos. La cantidad máxima es de 3 elementos.  
Obligatorio: no

 ** [sessionAttributes](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-sessionAttributes"></a>
Mapa de key/value pares que representan 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
<a name="API_runtime_PutSession_ResponseSyntax"></a>

```
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
<a name="API_runtime_PutSession_ResponseElements"></a>

Si la acción se realiza correctamente, el servicio devuelve una respuesta HTTP 200.

La respuesta devuelve los siguientes encabezados HTTP.

 ** [activeContexts](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-activeContexts"></a>
Una lista de los contextos activos para la sesión.

 ** [contentType](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-contentType"></a>
El tipo de contenido, tal como se especifica en el encabezado HTTP `Accept` de la solicitud.

 ** [dialogState](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-dialogState"></a>
  
+  `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](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-encodedMessage"></a>
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](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-intentName"></a>
El nombre de la intención actual.

 ** [message](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-message"></a>
 *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 campo `encodedMessage`.  
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 1024 caracteres.

 ** [messageFormat](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-messageFormat"></a>
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](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-sessionAttributes"></a>
Mapa de key/value pares que representan información de contexto específica de la sesión.

 ** [sessionId](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-sessionId"></a>
Un identificador único de la sesión.

 ** [slots](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-slots"></a>
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. Si `valueSelectionStrategy` se establece en `ORIGINAL_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. Si `valueSelectionStrategy` se establece en `TOP_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 valor `valueSelectionStrategy`, el valor predeterminado es `ORIGINAL_VALUE`. 

 ** [slotToElicit](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-slotToElicit"></a>
Si `dialogState` es `ElicitSlot`, devuelve el nombre de la ranura para que Amazon Lex quiere obtener un valor.

La respuesta devuelve lo siguiente como el cuerpo HTTP.

 ** [audioStream](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-audioStream"></a>
La versión del audio del mensaje que se transmite al usuario.

## Errores
<a name="API_runtime_PutSession_Errors"></a>

 ** 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
<a name="API_runtime_PutSession_SeeAlso"></a>

Para obtener más información sobre el uso de esta API en uno de los idiomas específicos AWS SDKs, consulte lo siguiente:
+  [AWS Interfaz de línea de comandos V2](https://docs.aws.amazon.com/goto/cli2/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK para .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK para C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK para Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK para Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK para JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK para Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK para PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK para Python](https://docs.aws.amazon.com/goto/boto3/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK para Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/runtime.lex-2016-11-28/PutSession) 