Programación de citas - 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.

Programación de citas

El bot de ejemplo en este ejercicio programa citas para un dentista. El ejemplo también muestra el uso de tarjetas de respuesta para obtener las entradas del usuario con botones. En concreto, el ejemplo ilustra cómo se generan tarjetas de respuesta de forma dinámica en el tiempo de ejecución.

Puede configurar tarjetas de respuesta en tiempo de creación (también denominadas tarjetas de respuesta estáticas) o generarlas de forma dinámica en una función AWS Lambda. En este ejemplo, el bot utiliza las siguientes tarjetas de respuesta:

  • Una tarjeta de respuesta que enumera los botones para el tipo de cita. Para ver un ejemplo, consulte la siguiente imagen:

    Tarjeta de respuesta en la que se pide el tipo de cita a programar y tres opciones: “cleaning (30 minutes)”, “root canal (60 minutes)” y "whitening (30 minutes)”.
  • Una tarjeta de respuesta que enumera los botones para la fecha de la cita. Para ver un ejemplo, consulte la siguiente imagen:

    Tarjeta de respuesta en la que pregunta por la fecha en la que se desea programar la cita y tres opciones: 2-15, 2-16 y 2-17.
  • Una tarjeta de respuesta que enumera botones para confirmar una propuesta de hora para la cita. Para ver un ejemplo, consulte la siguiente imagen:

    Tarjeta de respuesta en la que se solicita confirmación de la fecha y hora de la cita, con dos opciones: yes y no.

Las fechas y horas disponibles para la cita varían, por lo que debe generan tarjetas de respuesta en el tiempo de ejecución. Puede utilizar una función AWS Lambda para generar estas tarjetas de respuesta de forma dinámica. La función de Lambda devuelve tarjetas de respuesta en su respuesta a Amazon Lex. Amazon Lex incluye la tarjeta de respuesta en su respuesta al cliente.

Si un cliente (por ejemplo, Facebook Messenger) admite tarjetas de respuesta, el usuario puede seleccionarlas en la lista de botones o escribir la respuesta. Si no las admite, el usuario simplemente escribe la respuesta.

Además del botón que se muestra en el ejemplo anterior, también puede incluir imágenes, archivos adjuntos y otra información útil en las tarjetas de respuesta. Para obtener más información sobre las tarjetas de respuesta, consulte Tarjetas de respuesta.

En este ejercicio, hará lo siguiente:

  • Crear y probar un bot (con el proyecto ScheduleAppointment). Para este ejercicio deberá utilizar un proyecto de bot para configurar y probar rápidamente el bot. Para ver una lista de los proyectos disponibles, consulte Esquemas de Amazon Lex y AWS Lambda. Este bot está preconfigurado con una intención (MakeAppointment).

     

  • Crear y probar una función de Lambda (con el esquema lex-make-appointment-python proporcionado por Lambda). A continuación, deberá configurar la intención MakeAppointment para utilizar esta función de Lambda como enlace de código para realizar las tareas de inicialización, validación y cumplimiento.

    nota

    La función de Lambda del ejemplo muestra una conversación dinámica basada en la disponibilidad simulada de una cita en un dentista. En una aplicación real, se suele utilizar un calendario para programar una cita.

  • Actualizar la configuración de la intención MakeAppointment para utilizar la función de Lambda como enlace de código. A continuación, probará la experiencia integral.

  • Publicar el bot de programación de citas en Facebook Messenger para ver las tarjetas de respuesta en acción (actualmente, el cliente en la consola de Amazon Lex no admite tarjetas de respuesta).

En las siguientes secciones se incluye información resumida sobre los proyectos que va a utilizar en este ejercicio.

Descripción general del proyecto de bot (ScheduleAppointment)

El proyecto ScheduleAppointment que utiliza para crear un bot para este ejercicio está preconfigurado con lo siguiente:

  • Tipos de slot: un tipo de slot personalizado denominado AppointmentTypeValue con los valores de enumeración root canal, cleaning y whitening.

  • Intención: una intención (MakeAppointment), que está preconfigurada de la siguiente manera:

    • Slots: la intención está configurada con los siguientes slots:

      • Slot AppointmentType del tipo personalizado AppointmentTypes.

      • Slot Date del tipo integrado AMAZON.DATE.

      • Slot Time del tipo integrado AMAZON.TIME.

    • Enunciados: la intención está preconfigurada con los siguientes enunciados:

      • "Me gustaría concertar una cita"

      • "Concertar una cita"

      • "Concertar una {AppointmentType}"

      Si el usuario utiliza uno de estos enunciados, Amazon Lex determina que MakeAppointment es la intención y, a continuación, utiliza las preguntas para obtener datos de ranura.

    • Preguntas: la intención está preconfigurada con las siguientes preguntas:

      • Pregunta para el slot AppointmentType: "¿Qué tipo de cita desea concertar?"

      • Pregunta para el slot Date: "¿Cuándo debo concertar su {AppointmentType}?"

      • Pregunta para el slot Time: “¿A qué hora desea concertar su {AppointmentType}?” Protección de los datos

        "¿A qué hora el {Date}?"

      • Pregunta de confirmación: "{Time} está disponible. ¿Desea que continúe y programe la cita?"

      • Mensaje de cancelación: "De acuerdo, no programaré ninguna cita".

Descripción general del esquema de la función de Lambda (lex-make-appointment-python)

El esquema de la función de Lambda (lex-make-appointment-python) es un enlace de código para bots que crea con el esquema de bot ScheduleAppointment.

El código del esquema de la función de Lambda puede realizar tanto la tarea de inicialización o validación como la de cumplimiento.

  • El código de la función de Lambda muestra una conversación dinámica que se basa en un ejemplo de disponibilidad de una cita con el dentista (en aplicaciones reales, se suele utilizar un calendario). Para el día o la fecha que el usuario especifica, el código está configurado como sigue:

    • Si no hay citas disponibles, la función de Lambda devuelve una respuesta que indica a Amazon Lex que debe preguntar al usuario otro día o fecha (se establece el tipo dialogAction en ElicitSlot). Para obtener más información, consulte Formato de respuesta.

    • Si solo hay una cita disponible en el día o fecha especificada, la función de Lambda sugiere la hora disponible en la respuesta e indica a Amazon Lex que obtenga la confirmación del usuario fijando dialogAction en la respuesta a ConfirmIntent. Esto muestra cómo puede mejorar la experiencia del usuario al sugerir de forma proactiva la hora disponible para una cita.

    • Si hay varias citas disponibles, la función de Lambda devuelve una lista de horas disponibles en la respuesta a Amazon Lex. Amazon Lex devuelve una respuesta al cliente con el mensaje de la función de Lambda.

  • Como enlace de código de cumplimiento, la función de Lambda devuelve un mensaje de resumen que indica que hay una cita programada (es decir, se ha cumplido la intención).

nota

En este ejemplo le mostramos cómo utilizar tarjetas de respuesta. La función de Lambda crea y devuelve una tarjeta de respuesta a Amazon Lex. La tarjeta de respuesta enumera los días y las horas disponibles como botones entre los que elegir. Al probar el bot con el cliente proporcionado por la consola de Amazon Lex, no es posible ver la tarjeta de respuesta. Para verla, debe integrar el bot en una plataforma de mensajería, como Facebook Messenger. Para obtener instrucciones, consulte Integración de un bot de Amazon Lex con Facebook Messenger. Para obtener más información sobre las tarjetas de respuesta, consulte Administración de mensajes .

Cuando Amazon Lex invoca la función de Lambda, le pasa los datos del evento como entrada. Uno de los campos de evento es invocationSource, que la función de Lambda utiliza para elegir entre la actividad de validación de la entrada y la de cumplimiento. Para obtener más información, consulte Formato del evento de entrada.

Paso siguiente

Paso 1: creación de un bot de Amazon Lex