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.
PutIntent
Crea una intención o sustituye una intención existente.
Para definir la interacción entre el usuario y el bot, utiliza una o varias intenciones. Por ejemplo, para un bot de pedidos de pizza, crearía una intención OrderPizza
.
Para crear una intención o reemplazar una intención existente, debe proporcionar lo siguiente:
-
El nombre de la intención. Por ejemplo,
OrderPizza
. -
Enunciados de muestra. Por ejemplo, “¿Puedo pedir una pizza?” y “Quiero pedir una pizza”.
-
La información que debe recopilarse. Es necesario especificar los tipos de ranura para la información que el bot solicitará del usuario. Puede especificar tipos de ranura estándar, como una fecha o una hora, o tipos de ranura personalizados, como el tamaño y la masa de una pizza.
-
Cómo se cumplirá la intención. Puede proporcionar una función de Lambda o configurar la intención para que devuelva información de la intención a la aplicación cliente. Si utiliza una función de Lambda, en el caso de que toda la información de la intención esté disponible, Amazon Lex invoca la función de Lambda. Si configura la intención para que devuelva la información de la intención a la aplicación cliente.
Puede especificar información opcional en la solicitud como la siguiente:
-
Una pregunta de confirmación para solicitar al usuario que confirme una intención. Por ejemplo, “¿Debo pedir su pizza?”.
-
Una afirmación de cierre que se envía al usuario después de cumplir con la intención. Por ejemplo, “He pedido su pizza”.
-
Una pregunta de seguimiento para solicitar actividad adicional al usuario. Por ejemplo, puede preguntar “¿Quiere acompañar su pizza con una bebida?”.
Si especifica un nombre de intención existente para actualizar la intención, Amazon Lex reemplaza los valores de la versión $LATEST
de la intención con los valores de la solicitud. Amazon Lex elimina los campos que no ha proporcionado en la solicitud. Si no especifica los campos obligatorios, Amazon Lex devuelve una excepción. Al actualizar la versión $LATEST
de una intención, el campo status
de cualquier bot que utilice la versión $LATEST
de la intención se establece en NOT_BUILT
.
Para obtener más información, consulte Funcionamiento de Amazon Lex.
Esta operación necesita permisos para la acción lex:PutIntent
.
Sintaxis de la solicitud
PUT /intents/name
/versions/$LATEST HTTP/1.1
Content-type: application/json
{
"checksum": "string
",
"conclusionStatement": {
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"confirmationPrompt": {
"maxAttempts": number
,
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"createVersion": boolean
,
"description": "string
",
"dialogCodeHook": {
"messageVersion": "string
",
"uri": "string
"
},
"followUpPrompt": {
"prompt": {
"maxAttempts": number
,
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"rejectionStatement": {
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
}
},
"fulfillmentActivity": {
"codeHook": {
"messageVersion": "string
",
"uri": "string
"
},
"type": "string
"
},
"inputContexts": [
{
"name": "string
"
}
],
"kendraConfiguration": {
"kendraIndex": "string
",
"queryFilterString": "string
",
"role": "string
"
},
"outputContexts": [
{
"name": "string
",
"timeToLiveInSeconds": number
,
"turnsToLive": number
}
],
"parentIntentSignature": "string
",
"rejectionStatement": {
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"sampleUtterances": [ "string
" ],
"slots": [
{
"defaultValueSpec": {
"defaultValueList": [
{
"defaultValue": "string
"
}
]
},
"description": "string
",
"name": "string
",
"obfuscationSetting": "string
",
"priority": number
,
"responseCard": "string
",
"sampleUtterances": [ "string
" ],
"slotConstraint": "string
",
"slotType": "string
",
"slotTypeVersion": "string
",
"valueElicitationPrompt": {
"maxAttempts": number
,
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
}
}
]
}
Parámetros de solicitud del URI
La solicitud utiliza los siguientes parámetros URI.
- name
-
El nombre de la intención. El nombre no distingue entre mayúsculas y minúsculas.
El nombre no puede coincidir con el nombre de una intención integrada o con el nombre de una intención integrada con la parte “AMAZON”. eliminada. Por ejemplo, como hay una intención integrada con el nombre
AMAZON.HelpIntent
, no puede crear una intención personalizada con el nombreHelpIntent
.Para obtener una lista de las intenciones integradas, consulte Intenciones estándar integradas
en Alexa Skills Kit. Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 100 caracteres.
Patrón:
^([A-Za-z]_?)+$
Obligatorio: sí
Cuerpo de la solicitud
La solicitud acepta los siguientes datos en formato JSON.
- checksum
-
Identifica una revisión específica de la versión
$LATEST
.Si crea una nueva intención, deje el campo
checksum
vacío. Si especifica una suma de comprobación, obtendrá una excepciónBadRequestException
.Cuando quiera actualizar una intención, 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
- conclusionStatement
-
La afirmación que quiere que Amazon Lex transmita al usuario después de que la función de Lambda haya cumplido correctamente la intención.
Este elemento solo es relevante si proporciona una función de Lambda en
fulfillmentActivity
. Si devuelve la intención a la aplicación cliente, no puede especificar este elemento.nota
followUpPrompt
yconclusionStatement
son mutuamente excluyentes. Puede especificar solo un valor.Tipo: objeto Statement
Obligatorio: no
- confirmationPrompt
-
Pide al usuario que confirme la intención. Esta pregunta debe tener una respuesta afirmativa o negativa.
Amazon Lex utiliza esta solicitud para confirmar que el usuario sabe que la intención puede cumplirse. Por ejemplo, con la intención
OrderPizza
, es posible que quiera confirmar que los detalles del pedido son correctos antes de procesarlo. En el caso de otras intenciones, como las intenciones que sirven únicamente para responder a preguntar del usuario, es posible que no quiera solicitar confirmación al usuario antes de proporcionar la información.nota
Debe proporcionar
rejectionStatement
yconfirmationPrompt
o ningún valor.Tipo: objeto Prompt
Obligatorio: no
- createVersion
-
Cuando se establece en
true
, se crea una nueva versión numerada de la intención. Se produce lo mismo que al llamar a la operaciónCreateIntentVersion
. Si no especificacreateVersion
, el valor predeterminado esfalse
.Tipo: Booleano
Obligatorio: no
- description
-
Una descripción de la intención.
Tipo: cadena
Limitaciones de longitud: longitud mínima de 0. La longitud máxima es de 200 caracteres.
Obligatorio: no
- dialogCodeHook
-
Especifica una función de Lambda para que se invoque para cada entrada del usuario. Puede invocar esta función de Lambda para personalizar la interacción del usuario.
Por ejemplo, supongamos que el bot determina que el usuario es John. La función de Lambda podría recuperar la información de John de una base de datos de back-end y rellenar previamente algunos de los valores. Por ejemplo, si descubre que John es intolerante al gluten, puede establecer la ranura de la intención correspondiente,
GlutenIntolerant
, en verdadero. Si encuentra el número de teléfono de John, puede configurar el atributo de la sesión correspondiente.Tipo: objeto CodeHook
Obligatorio: no
- followUpPrompt
-
Amazon Lex utiliza esta solicitud para solicitar actividad adicional una vez que se ha cumplido con una intención. Por ejemplo, si se cumple la intención
OrderPizza
, puede enviar una solicitud al usuario para saber si quiere pedir bebida.La acción que Amazon Lex realiza depende de la respuesta del usuario, tal como se indica a continuación:
-
Si el usuario dice “sí”, responde con la pregunta aclaratoria que se ha configurado para el bot.
-
Si el usuario dice “sí” y continua con un enunciado que activa una intención, inicia una conversación para cumplir con la intención.
-
Si el usuario dice “no”, responde con la afirmación de rechazo configurada para la pregunta de seguimiento.
-
Si no reconoce el enunciado, repite la pregunta de seguimiento.
Los campos
followUpPrompt
yconclusionStatement
son mutuamente excluyentes. Puede especificar solo un valor.Tipo: objeto FollowUpPrompt
Obligatorio: no
-
- fulfillmentActivity
-
Obligatorio. Describe cómo se cumple con la intención. Por ejemplo, cuando un usuario ha proporcionado toda la información necesaria para pedir una pizza,
fulfillmentActivity
define cómo el bot realiza el pedido en una pizzería local.Puede configurar Amazon Lex para que devuelva toda la información de la intención a la aplicación cliente o indicar a Amazon Lex que invoque una función de Lambda que pueda procesar la intención (por ejemplo, realizar un pedido en una pizzería).
Tipo: objeto FulfillmentActivity
Obligatorio: no
- inputContexts
-
Una matriz de objetos
InputContext
que enumera los contextos que deben estar activos para que Amazon Lex elija la intención en una conversación con el usuario.Tipo: matriz de objetos InputContext
Miembros de la matriz: número mínimo de 0 artículos. La cantidad máxima es de 5 artículos.
Obligatorio: no
- kendraConfiguration
-
Información de configuración necesaria para utilizar la intención
AMAZON.KendraSearchIntent
con la finalidad de conectarse a un índice de Amazon Kendra. Para obtener más información, consulte AMAZON. KendraSearchIntent.Tipo: objeto KendraConfiguration
Obligatorio: no
- outputContexts
-
Una matriz de objetos
OutputContext
que enumera los contextos en los que la intención se activa cuando esta se cumple.Tipo: matriz de objetos OutputContext
Miembros de la matriz: número mínimo de 0 artículos. Número máximo de 10 artículos.
Obligatorio: no
- parentIntentSignature
-
Un identificador único para la intención integrada en la cual se debe basar esta intención. Para encontrar la firma de una intención, consulte Intenciones integradas estándar
en Alexa Skills Kit. Tipo: cadena
Requerido: no
- rejectionStatement
-
Cuando el usuario responde “no” a la pregunta definida en
confirmationPrompt
, Amazon Lex responde con esta afirmación para confirmar que la intención se ha cancelado.nota
Debe proporcionar
rejectionStatement
yconfirmationPrompt
o ningún valor.Tipo: objeto Statement
Obligatorio: no
- sampleUtterances
-
Una matriz de enunciados (cadenas) que un usuario podría decir para indicar la intención. Por ejemplo, «Quiero {PizzaSize} pizza», «Pedir {cantidad} {PizzaSize} pizzas».
En cada enunciado se incluye un nombre de ranura entre llaves.
Tipo: matriz de cadenas
Miembros de la matriz: número mínimo de 0 artículos. La cantidad máxima es de 1500 elementos.
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 200 caracteres.
Obligatorio: no
- slots
-
Una matriz de ranuras de intención. En tiempo de ejecución, Amazon Lex obtiene los valores de ranura del usuario a través de las solicitudes definidas en las ranuras. Para obtener más información, consulte Funcionamiento de Amazon Lex.
Tipo: matriz de objetos Slot
Miembros de la matriz: número mínimo de 0 artículos. Número máximo de 100 artículos.
Obligatorio: no
Sintaxis de la respuesta
HTTP/1.1 200
Content-type: application/json
{
"checksum": "string",
"conclusionStatement": {
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"confirmationPrompt": {
"maxAttempts": number,
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"createdDate": number,
"createVersion": boolean,
"description": "string",
"dialogCodeHook": {
"messageVersion": "string",
"uri": "string"
},
"followUpPrompt": {
"prompt": {
"maxAttempts": number,
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"rejectionStatement": {
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
}
},
"fulfillmentActivity": {
"codeHook": {
"messageVersion": "string",
"uri": "string"
},
"type": "string"
},
"inputContexts": [
{
"name": "string"
}
],
"kendraConfiguration": {
"kendraIndex": "string",
"queryFilterString": "string",
"role": "string"
},
"lastUpdatedDate": number,
"name": "string",
"outputContexts": [
{
"name": "string",
"timeToLiveInSeconds": number,
"turnsToLive": number
}
],
"parentIntentSignature": "string",
"rejectionStatement": {
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"sampleUtterances": [ "string" ],
"slots": [
{
"defaultValueSpec": {
"defaultValueList": [
{
"defaultValue": "string"
}
]
},
"description": "string",
"name": "string",
"obfuscationSetting": "string",
"priority": number,
"responseCard": "string",
"sampleUtterances": [ "string" ],
"slotConstraint": "string",
"slotType": "string",
"slotTypeVersion": "string",
"valueElicitationPrompt": {
"maxAttempts": number,
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
}
}
],
"version": "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.
- checksum
-
La suma de comprobación de la versión
$LATEST
de la intención creada o actualizada.Tipo: cadena
- conclusionStatement
-
Una vez que la función de Lambda especificada en la intención
fulfillmentActivity
cumple con la intención, Amazon Lex transmite esta afirmación al usuario.Tipo: objeto Statement
- confirmationPrompt
-
Si se define en la intención, Amazon Lex solicita al usuario que confirme la intención antes de cumplirla.
Tipo: objeto Prompt
- createdDate
-
La fecha en que se creó la intención.
Tipo: marca temporal
- createVersion
-
Es
True
si se ha creado una nueva versión de la intención. Si el campocreateVersion
no se ha especificado en la solicitud, el campocreateVersion
se establece en “false” en la respuesta.Tipo: Booleano
- description
-
Una descripción de la intención.
Tipo: cadena
Limitaciones de longitud: longitud mínima de 0. La longitud máxima es de 200 caracteres.
- dialogCodeHook
-
Si se define en la intención, Amazon Lex invoca esta función de Lambda para cada entrada del usuario.
Tipo: objeto CodeHook
- followUpPrompt
-
Si se define en la intención, Amazon Lex utiliza esta solicitud para solicitar actividad adicional del usuario una vez que se ha cumplido con la intención.
Tipo: objeto FollowUpPrompt
- fulfillmentActivity
-
Si se define en la intención, Amazon Lex invoca esta función de Lambda para cumplir con la intención una vez que el usuario haya proporcionado toda la información que requiere la intención.
Tipo: objeto FulfillmentActivity
- inputContexts
-
Una matriz de objetos
InputContext
que enumera los contextos que deben estar activos para que Amazon Lex elija la intención en una conversación con el usuario.Tipo: matriz de objetos InputContext
Miembros de la matriz: número mínimo de 0 artículos. La cantidad máxima es de 5 artículos.
- kendraConfiguration
-
Información de configuración, si procede, para conectarse a un índice de Amazon Kendra y utilizar la intención
AMAZON.KendraSearchIntent
.Tipo: objeto KendraConfiguration
- lastUpdatedDate
-
La fecha de actualización de la intención. Cuando se crea un recurso, la fecha de creación y la fecha de la última actualización son la misma.
Tipo: marca temporal
- name
-
El nombre de la intención.
Tipo: string
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 100 caracteres.
Patrón:
^([A-Za-z]_?)+$
- outputContexts
-
Una matriz de objetos
OutputContext
que enumera los contextos en los que la intención se activa cuando esta se cumple.Tipo: matriz de objetos OutputContext
Miembros de la matriz: número mínimo de 0 artículos. Número máximo de 10 artículos.
- parentIntentSignature
-
Un identificador único para la intención integrada en la cual se basa esta intención.
Tipo: cadena
- rejectionStatement
-
Si el usuario responde “no” a la pregunta definida en
confirmationPrompt
, Amazon Lex responde con esta afirmación para confirmar que la intención se ha cancelado.Tipo: objeto Statement
- sampleUtterances
-
Una matriz de enunciados de muestra configurados para la intención.
Tipo: matriz de cadenas
Miembros de la matriz: número mínimo de 0 artículos. La cantidad máxima es de 1500 elementos.
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 200 caracteres.
- slots
-
Una matriz de ranuras de intención configuradas para la intención.
Tipo: matriz de objetos Slot
Miembros de la matriz: número mínimo de 0 artículos. Número máximo de 100 artículos.
- version
-
La versión de la intención. En el caso de una intención nueva, 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]+
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: