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 campovalueElicitationPrompt
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 ranuraCrustType
. El campovalueElicitationPrompt
se especifica al crear la ranuraCrustType
.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ónBadRequestException
.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 campochecksum
o si la suma de comprobación no coincide con la versión$LATEST
, obtendrá una excepciónPreconditionFailedException
.Tipo: cadena
Requerido: no
- childDirected
-
Para cada bot de Amazon Lex creado con el Servicio de creación de modelos de Amazon Lex, 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
ofalse
en el campochildDirected
. Al especificartrue
en el campochildDirected
, 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 especificarfalse
en el campochildDirected
, 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 campochildDirected
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 campoabortStatement
.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 tipoElicitIntent
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ónCreateBotVersion
. Si no especificacreateVersion
, el valor predeterminado esfalse
.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 especificadetectSentiment
, el valor predeterminado esfalse
.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
entrue
, puede utilizar el parámetronluIntentConfidenceThreshold
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 entrue
, el bot tendrá acceso a mejoras en la precisión.Las regiones en las que puede establecer el parámetro
enableModelImprovements
enfalse
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 entrue
de forma predeterminada. En estas regiones y configuraciones regionales, configurar el parámetrofalse
da lugar a una excepciónValidationException
.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ónPutBot
, 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.FallbackIntent
AMAZON.KendraSearchIntent
, o ambos, al devolver intenciones alternativas en una PostTextrespuesta PostContento.AMAZON.FallbackIntent
y soloAMAZON.KendraSearchIntent
se insertan si están configurados para el bot.Debe establecer el parámetro
enableModelImprovements
entrue
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 entrue
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ónPostText
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
enBUILD
, Amazon Lex compila el bot para que se pueda ejecutar. Si establece el elemento enSAVE
, 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
-
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ónTagResource
.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
Requerido: 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 el Servicio de creación de modelos de Amazon Lex, 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
ofalse
en el campochildDirected
. Al especificartrue
en el campochildDirected
, 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 especificarfalse
en el campochildDirected
, 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 campochildDirected
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 campocreateVersion
no se ha especificado en la solicitud, el campocreateVersion
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 campodetectSentiment
no se ha especificado en la solicitud, el campodetectSentiment
esfalse
en la respuesta.Tipo: Booleano
- enableModelImprovements
-
Indica si el bot utiliza mejoras en la precisión.
true
indica que el bot utiliza las mejoras yfalse
, lo contrario.Tipo: Booleano
- failureReason
-
Si
status
esFAILED
, 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.FallbackIntent
AMAZON.KendraSearchIntent
, o ambas, al devolver intenciones alternativas en una PostTextrespuesta PostContento.AMAZON.FallbackIntent
se inserta si la puntuación de confianza de todos los intentos está por debajo de este valor.AMAZON.KendraSearchIntent
solo 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 enBUILD
, Amazon Lex establece el elemento de respuestastatus
enBUILDING
.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
enFAILED
. Amazon Lex devuelve el motivo del error en el elemento de respuestafailureReason
.Cuando se establece
processBehavior
enSAVE
, Amazon Lex establece el código de estado enNOT 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
-
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 artículos.
- 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. 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: