PutSession - Amazon Lex V1

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 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

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 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

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 campo encodedMessage.

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. 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

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

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: