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

PutBot

Crea un bot de conversación de Amazon Lex o sustituye un bot existente. Cuando crea o actualiza un bot, solo debe especificar un nombre, una configuración regional y si el bot está dirigido a niños menores de 13 años. Puede utilizar esta opción para agregar intenciones más adelante o para eliminarlas de un bot existente. Cuando crea un bot con la información mínima necesaria, el bot se crea o actualiza, pero Amazon Lex devuelve la respuesta FAILED. Puede compilar el bot una vez que haya agregado uno o más intentos. Para obtener más información acerca de los bots de Amazon Lex, consulte Funcionamiento de Amazon Lex.

Si especifica el nombre de un bot existente, los campos de la solicitud reemplazan los valores existentes en la versión $LATEST del bot. Amazon Lex elimina todos los campos para los que no proporciona valores en la solicitud, excepto para los campos idleTTLInSeconds y privacySettings, que se establecen en sus valores predeterminados. Si no especifica valores para los campos obligatorios, Amazon Lex devuelve una excepción.

Esta operación necesita permisos para la acción lex:PutBot. Para obtener más información, consulte Identity and Access Management para Amazon Lex.

Sintaxis de la solicitud

PUT /bots/name/versions/$LATEST HTTP/1.1 Content-type: application/json { "abortStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "checksum": "string", "childDirected": boolean, "clarificationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createVersion": boolean, "description": "string", "detectSentiment": boolean, "enableModelImprovements": boolean, "idleSessionTTLInSeconds": number, "intents": [ { "intentName": "string", "intentVersion": "string" } ], "locale": "string", "nluIntentConfidenceThreshold": number, "processBehavior": "string", "tags": [ { "key": "string", "value": "string" } ], "voiceId": "string" }

Parámetros de solicitud del URI

La solicitud utiliza los siguientes parámetros URI.

name

El nombre del bot. El nombre no distingue entre mayúsculas y minúsculas.

Limitaciones de longitud: longitud mínima de 2. La longitud máxima es de 50 caracteres.

Patrón: ^([A-Za-z]_?)+$

Obligatorio: sí

Cuerpo de la solicitud

La solicitud acepta los siguientes datos en formato JSON.

abortStatement

Cuando Amazon Lex no comprende la entrada del usuario en el contexto de la conversación, intenta obtener la información varias veces. A continuación, Amazon Lex envía el mensaje definido en abortStatement al usuario y cancela la conversación. Para establecer el número de reintentos, utilice el campo valueElicitationPrompt del tipo de ranura.

Por ejemplo, en un bot de pedidos de pizza, Amazon Lex puede realizar una pregunta del estilo “¿Qué tipo de masa desea?”. Si la respuesta del usuario no es una de las respuestas esperadas (por ejemplo, “masa fina”, “base gruesa”, etc.), Amazon Lex intenta obtener una respuesta correcta varias veces.

Por ejemplo, en una aplicación de pedidos de pizza, OrderPizza puede ser una de las intenciones. Esta intención puede requerir la ranura CrustType. El campo valueElicitationPrompt se especifica al crear la ranura CrustType.

Si ha definido una intención alternativa, la afirmación de cancelación no se enviará al usuario y se utilizará la intención alternativa. Para obtener más información, consulte AMAZON. FallbackIntent.

Tipo: objeto Statement

Obligatorio: no

checksum

Identifica una revisión específica de la versión $LATEST.

Si crea un nuevo bot, deje el campo checksum vacío. Si especifica una suma de comprobación, obtendrá una excepción BadRequestException.

Cuando quiera actualizar el bot, establezca el campo checksum en la suma de comprobación de la revisión más reciente de la versión $LATEST. Si no especifica el campo checksum o si la suma de comprobación no coincide con la versión $LATEST, obtendrá una excepción PreconditionFailedException.

Tipo: cadena

Obligatorio: no

childDirected

Para cada bot de Amazon Lex creado con Amazon Lex Model Building Service, debe especificar si el uso de Amazon Lex está relacionado con un sitio web, un programa u otro tipo de aplicación que esté dirigido, total o parcialmente, a niños menores de 13 años y esté sujeto a la Ley de protección de la privacidad infantil en línea (COPPA, por sus siglas en inglés). Para ello, especifique true o false en el campo childDirected. Al especificar true en el campo childDirected, confirma que el uso de Amazon Lex está relacionado con un sitio web, un programa u otro tipo de aplicación que está dirigido, total o parcialmente, a niños menores de 13 años y está sujeto a la COPPA. Al especificar false en el campo childDirected, confirma que el uso de Amazon Lex no está relacionado con un sitio web, un programa u otro tipo de aplicación que está dirigido, total o parcialmente, a niños menores de 13 años y está sujeto a la COPPA. No puede especificar un valor predeterminado en el campo childDirected que no indique de forma precisa si el uso de Amazon Lex está relacionado o no con un sitio web, un programa u otro tipo de aplicación que está dirigido, total o parcialmente, a niños menores de 13 años y está sujeto a la COPPA.

Si el uso de Amazon Lex está relacionado con un sitio web, un programa u otro tipo de aplicación que está dirigido, total o parcialmente, a niños menores de 13 años, debe obtener un consentimiento parental verificable, obligatorio en virtud de la COPPA. Para obtener información acerca del uso de Amazon Lex con relación a sitios web, programas u otras aplicaciones dirigidos, total o parcialmente, a niños menores de 13 años, consulte las Preguntas frecuentes de Amazon Lex.

Tipo: Booleano

Obligatorio: sí

clarificationPrompt

Cuando Amazon Lex no comprende la intención del usuario, utiliza este mensaje para obtener una aclaración. Para especificar cuantas veces Amazon Lex debe repetir la pregunta aclaratoria, utilice el campo maxAttempts. Si Amazon Lex sigue sin comprender la intención, envía el mensaje del campo abortStatement.

Cuando cree una pregunta aclaratoria, asegúrese de que sugiere una respuesta correcta por parte del usuario. Por ejemplo, si el bot pregunta sobre pizzas y bebidas, una buena pregunta aclaratoria podría ser “¿Qué quiere hacer?”. Puede decir “Pedir una pizza” o “Pedir bebida”.

Si ha definido una intención alternativa, se invocará si la pregunta aclaratoria se repite el número de veces definido en el campo maxAttempts. Para obtener más información, consulte AMAZON. FallbackIntent.

Si no define una pregunta aclaratoria, en tiempo de ejecución, Amazon Lex devolverá una excepción 400 de solicitud errónea en estos tres casos:

  • Pregunta aclaratoria: cuando el usuario responde a una pregunta de seguimiento, pero no proporciona una intención. Por ejemplo, como respuesta a una pregunta de seguimiento “¿Desea algo más hoy?”, el usuario dice “Sí”. Amazon Lex devolverá una excepción 400 de solicitud errónea porque no tiene una pregunta aclaratoria que pueda enviar al usuario para obtener una intención.

  • Función de Lambda: al utilizar una función de Lambda, se devuelve un tipo de diálogo ElicitIntent. Dado que Amazon Lex no tiene una pregunta aclaratoria para obtener una intención del usuario, devuelve la excepción 400 de solicitud errónea.

  • PutSession operación: al utilizar la PutSession operación, se envía un tipo ElicitIntent de diálogo. Dado que Amazon Lex no tiene una pregunta aclaratoria para obtener una intención del usuario, devuelve la excepción 400 de solicitud errónea.

Tipo: objeto Prompt

Obligatorio: no

createVersion

Cuando se establece en true, se crea una nueva versión numerada del bot. Se produce lo mismo que al llamar a la operación CreateBotVersion. Si no especifica createVersion, el valor predeterminado es false.

Tipo: Booleano

Obligatorio: no

description

La descripción del bot.

Tipo: cadena

Limitaciones de longitud: longitud mínima de 0. La longitud máxima es de 200 caracteres.

Obligatorio: no

detectSentiment

Cuando se establece en true, los enunciados del usuario se envían a Amazon Comprehend con fines de análisis de opiniones. Si no especifica detectSentiment, el valor predeterminado es false.

Tipo: Booleano

Obligatorio: no

enableModelImprovements

Se establece en true para habilitar el acceso a mejoras de la comprensión del lenguaje natural.

Cuando establece el parámetro enableModelImprovements en true, puede utilizar el parámetro nluIntentConfidenceThreshold para configurar puntuaciones de confianza. Para obtener más información, consulte Puntuaciones de confianza.

Solo puede establecer el parámetro enableModelImprovements en ciertas regiones. Si establece el parámetro en true, el bot tendrá acceso a mejoras en la precisión.

Las regiones en las que puede establecer el parámetro enableModelImprovements en false para la configuración regional en-US son las siguientes:

  • Este de EE. UU. (Norte de Virginia) (us-east-1)

  • Oeste de EE. UU. (Oregón) (us-west-2)

  • Asia-Pacífico (Sídney) (ap-southeast-2)

  • UE (Irlanda) (eu-west-1)

En otras regiones y configuraciones regionales, el parámetro enableModelImprovements se establece en true de forma predeterminada. En estas regiones y configuraciones regionales, configurar el parámetro false da lugar a una excepción ValidationException.

Tipo: Booleano

Obligatorio: no

idleSessionTTLInSeconds

El tiempo máximo que Amazon Lex retiene los datos recopilados en una conversación, en segundos.

Una sesión de interacciones del usuario permanece activa durante el tiempo especificado. Si no se produce ninguna conversación durante este tiempo, la sesión caduca y Amazon Lex elimina los datos proporcionados antes de que se agote el tiempo de espera.

Por ejemplo, supongamos que un usuario elige la OrderPizza intención, pero se desvía a la mitad del proceso de realizar un pedido. Si el usuario no completa el pedido dentro de un plazo especificado, Amazon Lex descarta la información de la ranura que ha recopilado, por lo que el usuario tendrá que volver a iniciar el pedido.

Si no se incluye el elemento idleSessionTTLInSeconds en una solicitud de la operación PutBot, Amazon Lex utiliza el valor predeterminado También se da esta situación si la solicitud reemplaza un bot existente.

El valor predeterminado es 300 segundos (5 minutos).

Tipo: entero

Rango válido: valor mínimo de 60. Valor máximo de 86 400.

Obligatorio: no

intents

Una matriz de objetos Intent. Cada intención representa una orden que puede expresar el usuario. Por ejemplo, un robot de pedidos de pizza podría respaldar una OrderPizza intención. Para obtener más información, consulte Funcionamiento de Amazon Lex.

Tipo: matriz de objetos Intent

Obligatorio: no

locale

Especifica la configuración regional de destino para el bot. Todas las intenciones que se utilicen en el bot deben ser compatibles con la configuración regional del bot.

El valor predeterminado es en-US.

Tipo: cadena

Valores válidos: de-DE | en-AU | en-GB | en-IN | en-US | es-419 | es-ES | es-US | fr-FR | fr-CA | it-IT | ja-JP | ko-KR

Obligatorio: sí

nluIntentConfidenceThreshold

Determina el umbral en el que Amazon Lex insertará el AMAZON.FallbackIntentAMAZON.KendraSearchIntent, o ambos, al devolver intenciones alternativas en una PostTextrespuesta PostContento. AMAZON.FallbackIntenty solo AMAZON.KendraSearchIntent se insertan si están configurados para el bot.

Debe establecer el parámetro enableModelImprovements en true para utilizar las puntuaciones de confianza en las siguientes regiones:

  • Este de EE. UU. (Norte de Virginia) (us-east-1)

  • Oeste de EE. UU. (Oregón) (us-west-2)

  • Asia-Pacífico (Sídney) (ap-southeast-2)

  • UE (Irlanda) (eu-west-1)

En otras regiones, el parámetro enableModelImprovements se establece en true de forma predeterminada.

Por ejemplo, supongamos que un bot se ha configurado con un umbral de confianza de 0,80 y AMAZON.FallbackIntent. Amazon Lex devuelve tres intenciones alternativas con las siguientes puntuaciones de confianza: IntentA (0,70), IntentB (0,60) e IntentC (0,50). La respuesta de la operación PostText sería:

  • AMAZON. FallbackIntent

  • IntentA

  • IntentB

  • IntentC

Tipo: Doble

Rango válido: valor mínimo de 0. El valor máximo es de 1.

Obligatorio: no

processBehavior

Si establece el elemento processBehavior en BUILD, Amazon Lex compila el bot para que se pueda ejecutar. Si establece el elemento en SAVE, Amazon Lex guarda el bot sin compilarlo.

Si no especifica este valor, el valor predeterminado es BUILD.

Tipo: cadena

Valores válidos: SAVE | BUILD

Obligatorio: no

tags

Una lista de las etiquetas que se agregarán al bot. Solo puede agregar etiquetas al crear un bot. No puede utilizar la operación PutBot para actualizar las etiquetas de un bot. Para actualizar las etiquetas, use la operación TagResource.

Tipo: matriz de objetos Tag

Miembros de la matriz: número mínimo de 0 artículos. La cantidad máxima es de 200 artículos.

Obligatorio: no

voiceId

El ID de voz de Amazon Polly que quiera que Amazon Lex utilice para las interacciones de voz con el usuario. La configuración regional de la voz debe coincidir con la configuración regional del bot. Para obtener más información, consulte Voces en Amazon Polly en la Guía para desarrolladores de Amazon Polly.

Tipo: cadena

Obligatorio: no

Sintaxis de la respuesta

HTTP/1.1 200 Content-type: application/json { "abortStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "checksum": "string", "childDirected": boolean, "clarificationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createdDate": number, "createVersion": boolean, "description": "string", "detectSentiment": boolean, "enableModelImprovements": boolean, "failureReason": "string", "idleSessionTTLInSeconds": number, "intents": [ { "intentName": "string", "intentVersion": "string" } ], "lastUpdatedDate": number, "locale": "string", "name": "string", "nluIntentConfidenceThreshold": number, "status": "string", "tags": [ { "key": "string", "value": "string" } ], "version": "string", "voiceId": "string" }

Elementos de respuesta

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

El servicio devuelve los datos siguientes en formato JSON.

abortStatement

El mensaje que Amazon Lex utiliza para cancelar una conversación. Para obtener más información, consulte PutBot.

Tipo: objeto Statement

checksum

La suma de comprobación del bot que ha creado.

Tipo: cadena

childDirected

Para cada bot de Amazon Lex creado con Amazon Lex Model Building Service, debe especificar si el uso de Amazon Lex está relacionado con un sitio web, un programa u otro tipo de aplicación que esté dirigido, total o parcialmente, a niños menores de 13 años y esté sujeto a la Ley de protección de la privacidad infantil en línea (COPPA, por sus siglas en inglés). Para ello, especifique true o false en el campo childDirected. Al especificar true en el campo childDirected, confirma que el uso de Amazon Lex está relacionado con un sitio web, un programa u otro tipo de aplicación que está dirigido, total o parcialmente, a niños menores de 13 años y está sujeto a la COPPA. Al especificar false en el campo childDirected, confirma que el uso de Amazon Lex no está relacionado con un sitio web, un programa u otro tipo de aplicación que está dirigido, total o parcialmente, a niños menores de 13 años y está sujeto a la COPPA. No puede especificar un valor predeterminado en el campo childDirected que no indique de forma precisa si el uso de Amazon Lex está relacionado o no con un sitio web, un programa u otro tipo de aplicación que está dirigido, total o parcialmente, a niños menores de 13 años y está sujeto a la COPPA.

Si el uso de Amazon Lex está relacionado con un sitio web, un programa u otro tipo de aplicación que está dirigido, total o parcialmente, a niños menores de 13 años, debe obtener un consentimiento parental verificable, obligatorio en virtud de la COPPA. Para obtener información acerca del uso de Amazon Lex con relación a sitios web, programas u otras aplicaciones dirigidos, total o parcialmente, a niños menores de 13 años, consulte las Preguntas frecuentes de Amazon Lex.

Tipo: Booleano

clarificationPrompt

Las solicitudes que Amazon Lex utiliza cuando no comprende la intención del usuario. Para obtener más información, consulte PutBot.

Tipo: objeto Prompt

createdDate

La fecha de creación del bot.

Tipo: marca temporal

createVersion

Es True si se ha creado una nueva versión del bot. Si el campo createVersion no se ha especificado en la solicitud, el campo createVersion se establece en “false” en la respuesta.

Tipo: Booleano

description

La descripción del bot.

Tipo: cadena

Limitaciones de longitud: longitud mínima de 0. La longitud máxima es de 200 caracteres.

detectSentiment

Es true si el bot está configurado para enviar enunciados del usuario a Amazon Comprehend con fines de análisis de opiniones. Si el campo detectSentiment no se ha especificado en la solicitud, el campo detectSentiment es false en la respuesta.

Tipo: Booleano

enableModelImprovements

Indica si el bot utiliza mejoras en la precisión. true indica que el bot utiliza las mejoras y false, lo contrario.

Tipo: Booleano

failureReason

Si status es FAILED, Amazon Lex proporciona el motivo por el que no se ha podido crear el bot.

Tipo: cadena

idleSessionTTLInSeconds

La duración máxima que Amazon Lex retiene los datos recopilados en una conversación. Para obtener más información, consulte PutBot.

Tipo: entero

Rango válido: valor mínimo de 60. Valor máximo de 86 400.

intents

Una matriz de objetos Intent. Para obtener más información, consulte PutBot.

Tipo: matriz de objetos Intent

lastUpdatedDate

La fecha de actualización del bot. Cuando se crea un recurso, la fecha de creación y la fecha de la última actualización son la misma.

Tipo: marca temporal

locale

La configuración regional de destino para el bot.

Tipo: cadena

Valores válidos: de-DE | en-AU | en-GB | en-IN | en-US | es-419 | es-ES | es-US | fr-FR | fr-CA | it-IT | ja-JP | ko-KR

name

El nombre del bot.

Tipo: cadena

Limitaciones de longitud: longitud mínima de 2. La longitud máxima es de 50 caracteres.

Patrón: ^([A-Za-z]_?)+$

nluIntentConfidenceThreshold

La puntuación que determina dónde inserta Amazon Lex AMAZON.FallbackIntentAMAZON.KendraSearchIntent, o ambas, al devolver intenciones alternativas en una PostTextrespuesta PostContento. AMAZON.FallbackIntentse inserta si la puntuación de confianza de todos los intentos está por debajo de este valor. AMAZON.KendraSearchIntentsolo se inserta si está configurado para el bot.

Tipo: Doble

Rango válido: valor mínimo de 0. Valor máximo de 1.

status

Cuando envía una solicitud para crear un bot y processBehavior se ha establecido en BUILD, Amazon Lex establece el elemento de respuesta status en BUILDING.

En el READY_BASIC_TESTING estado, puede probar el bot con entradas del usuario que coincidan exactamente con los enunciados configurados para las intenciones y los valores del bot en los tipos de ranura.

Si Amazon Lex no puede compilar el bot, Amazon Lex establece status en FAILED. Amazon Lex devuelve el motivo del error en el elemento de respuesta failureReason.

Cuando se establece processBehavior en SAVE, Amazon Lex establece el código de estado en NOT BUILT.

Cuando el bot se encuentra en el estado READY, se puede probar y publicar.

Tipo: cadena

Valores válidos: BUILDING | READY | READY_BASIC_TESTING | FAILED | NOT_BUILT

tags

Una lista de etiquetas asociadas al bot.

Tipo: matriz de objetos Tag

Miembros de la matriz: número mínimo de 0 artículos. La cantidad máxima es de 200 elementos.

version

La versión del bot. En el caso de un bot nuevo, la versión es siempre $LATEST.

Tipo: string

Limitaciones de longitud: longitud mínima de 1 carácter. La longitud máxima es de 64.

Patrón: \$LATEST|[0-9]+

voiceId

El ID de voz de Amazon Polly que Amazon Lex utiliza para la interacción de voz con el usuario. Para obtener más información, consulte PutBot.

Tipo: cadena

Errores

BadRequestException

La solicitud no está bien formulada. Es posible que un valor no sea válido o que falte un campo obligatorio. Revise los valores del campo e inténtelo de nuevo.

Código de estado HTTP: 400

ConflictException

Se ha producido un conflicto al procesar la solicitud. Intente volver a realizar la solicitud.

Código de estado HTTP: 409

InternalFailureException

Se ha producido un error interno de Amazon Lex. Intente volver a realizar la solicitud.

Código de estado HTTP: 500

LimitExceededException

La solicitud ha superado un límite. Intente volver a realizar la solicitud.

Código de estado HTTP: 429

PreconditionFailedException

La suma de comprobación del recurso que intenta modificar no coincide con la suma de comprobación de la solicitud. Revise la suma de comprobación del recurso e inténtelo de nuevo.

Código de estado HTTP: 412

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: