¿Cómo utilizo una función de Lambda de inicialización/validación o cumplimiento para cambiar el flujo de diálogo de mi bot de Amazon Lex?

3 minutos de lectura
0

Quiero usar una función de AWS Lambda de inicialización/validación o cumplimiento para cambiar el flujo de diálogo de mi bot de Amazon Lex.

Solución

Nota: El ejemplo de este artículo utiliza la versión 2 de la consola Amazon Lex. Si usa la versión 1, elija Cambiar a la nueva consola Lex v2 en el panel de navegación.

La sintaxis de respuesta de Lambda especifica el formato en el que Amazon Lex espera que esté la respuesta de la función de Lambda. Asegúrese de incluir los campos obligatorios en la respuesta.

Utilizar el tipo ElicitSlot para cambiar el flujo del diálogo

Para usar el tipo ElicitSlot para cambiar el flujo de diálogo, pase la respuesta del enlace de código Lambda en el siguiente formato:

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

Cuando devuelve la respuesta, Amazon Lex obtiene un espacio denominado slot-name-to-elicit que pertenece al intento intent-name-to-elicit.

Por ejemplo, tiene un intento de CreateUser con un espacio que solicita un nombre de usuario. Utilice una función de Lambda para comprobar si el nombre de usuario ya existe. Si el nombre de usuario existe, vuelve a obtener el espacio nombre de usuario para el mismo intento.

Utilizar el tipo ElicitIntent para cambiar el flujo del diálogo

Para usar el tipo ElicitIntent para cambiar el flujo de diálogo, pase la respuesta del enlace de código Lambda en el siguiente formato:

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

Cuando Amazon Lex devuelva la respuesta, el usuario verá el mensaje especificado en el marcador de posición del mensaje. La siguiente entrada del usuario se toma como una expresión de intento e invoca el intento con la puntuación más alta de nluConfidence.

Por ejemplo, si su bot cumple un intento para su usuario, póngalo en estado de Escuchar. El usuario puede entonces proporcionar otro enunciado para invocar otro intento.

Utilice el tipo Delegado para cambiar el flujo del diálogo

Puede usar el tipo Delegado para cambiar el inicio de un inicio al especificar uno nuevo. Para usar el tipo Delegado, pase la respuesta del enlace de código Lambda en el siguiente formato:

{
    'sessionState': {
        'dialogAction': {
            'type': 'Delegate'
        },
        'intent': {
            'name': '<intent-name-to-elicit>',
            'state': 'InProgress'
        }
    }
}

Por ejemplo, sus bots tiene los intentos A, B y C. Si el usuario responde a un espacio del intento A, la función de Lambda comprueba la entrada del usuario. A continuación, la función invoca el intento B o C.

Información relacionada

amazon-lex-v2-dialogation en el sitio web de GitHub

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 9 meses