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

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

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ón BadRequestException.

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 campo checksum o si la suma de comprobación no coincide con la versión $LATEST, obtendrá una excepción PreconditionFailedException.

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 y conclusionStatement 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 y confirmationPrompt 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ón CreateIntentVersion. Si no especifica createVersion, el valor predeterminado es false.

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 y conclusionStatement 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 y confirmationPrompt 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 campo createVersion no se ha especificado en la solicitud, el campo createVersion 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: