¿Cómo puedo cambiar el flujo de mi bot de Amazon Lex mediante una función de AWS Lambda de inicialización/validación o cumplimiento?

4 minutos de lectura
0

Quiero cambiar el flujo de mi bot de Amazon Lex mediante una función de AWS Lambda de inicialización/validación o cumplimiento. ¿Cómo puedo hacerlo con la consola de Amazon Lex?

Descripción corta

Puede utilizar enlaces de código de AWS Lambda de inicialización/validación o cumplimiento para hacer modificaciones en el flujo de diálogo de su bot de Amazon Lex. La consola de Amazon Lex cuenta con el campo dialogAction, que indica a Amazon Lex cuál es el procedimiento siguiente para interactuar con los usuarios. Este campo describe a Amazon Lex qué esperar de un usuario después de enviar una respuesta al cliente.

El campo Tipo indica el siguiente procedimiento del bot. También determina los demás campos que la función Lambda debe proporcionar como parte del valor dialogAction. Hay cinco tipos:

  1. ElicitIntent: informa a Amazon Lex que se espera que el usuario responda con un enunciado que incluya una intención.
  2. ElicitSlot: informa a Amazon Lex que se espera que el usuario proporcione un valor de ranura en la respuesta.
  3. Cerrar: informa a Amazon Lex que no debe esperar una respuesta del usuario. Por ejemplo, "Tu pedido de pizza se ha realizado" no requiere respuesta.
  4. ConfirmIntent: informa a Amazon Lex que se espera que el usuario dé una respuesta afirmativa o negativa para confirmar o denegar la intención actual.
  5. Delegar: indica a Amazon Lex que elija el siguiente procedimiento en función de la configuración del bot

Resolución

Nota: Los pasos de este artículo utilizan la versión 2 de la consola de Amazon Lex. Si actualmente usa la versión 1, elija Switch to the new Lex v2 console (Cambiar a la nueva consola Lex versión 2) en el panel de navegación.

Lambda response syntax (Sintaxis de respuesta de Lambda) especifica el formato en el que Amazon Lex espera una respuesta de la función de Lambda.

Revise la siguiente información sobre los campos de respuesta:

  • sessionState: este campo es obligatorio. Describe el estado actual de la conversación con el usuario. El contenido real de la estructura depende del tipo de acción del diálogo.
  • dialogAction: este campo determina el tipo de acción que Amazon Lex debe realizar en respuesta a la función de Lambda. El campo Tipo siempre es obligatorio. El campo SlotToElicit solo es obligatorio cuando DialogAction.type es ElicitSlot.
  • intent (intención): el nombre de la intención que usa Amazon Lex. Este campo no es obligatorio cuando DialogAction.type es Delegar o ElicitIntent.
  • state (estado): Este campo es obligatorio. El estado solo puede estar ReadyForFulfillment si DialogAction.type es Delegar.
  • messages (mensajes): este campo es obligatorio si DialogAction.type es ElicitIntent. Describe uno o más mensajes que Amazon Lex muestra al cliente para el siguiente turno de la conversación. Si usted no proporciona mensajes, Amazon Lex utilizará un mensaje apropiado que definió cuando se creó el bot. Para obtener más información, consulte el tipo de datos Mensaje.
  • contentType: describe el tipo de mensaje que se utilizará.
  • contenido: si el tipo de mensaje es PlainText, CustomPayload o SSML, entonces este campo contiene el mensaje que se va a enviar al usuario.
  • ImageResponseCard: si el tipo de mensaje es ImageResponseCard, este campo contiene la definición de la tarjeta de respuesta que se mostrará al usuario. Para obtener más información, consulte el tipo de datos ImageResponseCard.

Cambiar el flujo de diálogo mediante el tipo ElicitSlot

Para cambiar el flujo de diálogo mediante el tipo ElicitSlot, transmita la respuesta del enlace de código de Lambda en este formato:

{
    "sessionState": {
        "dialogAction": {
            "slotToElicit": "<slot-name-to-elicit>",
            "type": "ElicitSlot"
        },
        "intent": {
            "name": "<intent-name-to-elicit>",
            "state": "<state>"
        }
    }
}

Después de devolver la respuesta, Amazon Lex obtiene un espacio llamado slot-name-to-elicit que pertenece a la intención de intent-name-to-elicit.

Cambiar el flujo de diálogo mediante el tipo ElicitIntent

Para cambiar el flujo de diálogo mediante el tipo ElicitIntent, transmita la respuesta del enlace de código Lambda en este formato:

   {
     "sessionState": {
         "dialogAction": {
             "type": "ElicitIntent"
         }
     },
     "messages": [{
         "contentType": "<content-type>",
         "content": "<message>"
     }]
 }

Tras devolver esta respuesta, se muestra al usuario el mensaje especificado en el marcador de posición del mensaje. La siguiente entrada del usuario se toma como una expresión de intención, que invoca la intención con la puntuación más alta de nluConfidence.


Información relacionada

Formato de respuesta

amazon-lex-v2-dialogation

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años