Crear los intents de flujo de secuencia

Ahora que tienes tu entidad de secuencia, puedes crear los intents para recopilar la secuencia del usuario final. Te recomendamos que tengas al menos tres intents con estas responsabilidades:

  1. Un intent principal “Secuencia”
    • Detecta las expresiones para iniciar la recopilación de secuencias.
    • Los eventos de seguimiento lo invocan para seguir capturando secuencias hasta que el usuario final indique que terminó.
  2. Un intent contextual “Secuencia: Editar”
    • Detecta las expresiones para corregir la última secuencia recopilada.
    • De manera programática, repite el bucle al intent “Secuencia” para recopilar la secuencia corregida.
  3. Un intent contextual “Secuencia: Listo”
    • Detecta las expresiones que indican que la secuencia está completa.

En la siguiente sección, verás cómo el webhook conectará todo esto, pero primero configuremos los intents.

Crea el intent “Secuencia”

Este es el intent principal para recopilar secuencias. Configúralo de la siguiente manera:

  1. Deja vacíos los contextos de entrada para que los usuarios finales puedan activar este intent al inicio de la llamada.
  2. Agrega un contexto de salida “collecting-sequence”. Usaremos este contexto para habilitar los intents de corrección y finalización durante el flujo.
  3. Agrega un contexto de salida “editing-sequence” y establece la duración en 0. Activaremos este contexto con una duración del intent “Secuencia: Editar” en la sección siguiente, y es importante borrar ese contexto aquí, de manera que el contexto “editing-sequence” solo se active inmediatamente después de activar el intent “Editar”.
  4. Agrega un evento “continue-sequence” para que tu webhook pueda repetir el intent con el fin de recopilar todas las secuencias parciales.

  5. Agrega frases de entrenamiento para que el usuario final pueda activar este intent y comenzar el flujo. En este ejemplo, se usan frases como "cuál es el estado de mi pedido", "hacer un seguimiento de mi pedido", "dónde está mi pedido", etcétera.

  6. Agrega el nombre de acción "handle-sequence" para que el webhook sepa cuándo activarse. Programarás el webhook en la siguiente sección de este instructivo, después de configurar todos los intents.

  7. Agrega un parámetro “new_sequence” requerido con la entidad de expresión regular que creaste para recopilar secuencias parciales en la sección anterior. Configura el tipo de entidad como “@alphanumeric” y el valor en “$new_sequence”.

  8. Agrega un parámetro “existing_sequence” opcional con el valor “##continue-sequence.existing_sequence” para extraer la nueva secuencia existente del evento. Puedes dejar vacío el tipo de entidad.

  9. Agrega un parámetro “previous_sequence” opcional con el valor “#continue-sequence.previous_sequence” para extraer la secuencia anterior del evento. Puedes dejar vacío el tipo de entidad.

  10. Habilita las llamadas del webhook para este intent y la llamada del webhook para el llenado de ranuras.

Crea el intent “Secuencia: Editar”

Este intent detecta expresiones que indican que el agente no entendió la secuencia anterior. Configúralo como se muestra a continuación:

  1. Agrega un contexto de entrada “colling-sequence” para que solo se llame a este intent cuando esté en el medio del flujo de la secuencia. Este es el mismo contexto que activa el intent “Secuencia”.
  2. Agrega un contexto de salida “editing-sequence” para que nuestro webhook de entregas haga referencia. Cuando se activa este intent, el webhook repetirá Dialogflow al intent principal “Secuencia” para recopilar la siguiente secuencia. El webhook de la función de relleno de ranuras del intent “Secuencia” verificará si hay un contexto “editing-sequence” activo para proporcionar una respuesta “vuelve a intentarlo” provisional al usuario final.
  3. Agrega frases de entrenamiento, como “no”, “no es correcto”, etcétera.

  4. Agrega el nombre de acción “handle-sequence”. Esta es la misma acción que el intent “Secuencia” para que podamos volver a usar la misma lógica del webhook.

  5. Agrega un parámetro “new_sequence” con el valor “#colling-sequence.previous_sequence” para extraer la secuencia anterior del contexto, y, así, deshacer la última expresión. No agregaremos un parámetro “existing_sequence” aquí para que el webhook reemplace la secuencia existente con la anterior.

  6. Habilita las llamadas del webhook para este intent.

Crea un intent “Secuencia: Finalizado”.

  1. Agrega un contexto de entrada “collecting-sequence”
  2. Agrega un contexto de salida “colling-sequence” y establece la duración en 0 para borrar el contexto. Si se borra, se evita volver a activar los intents “Editar” y “Listo” luego de que el agente termine de recopilar la secuencia.
  3. Agrega frases de entrenamiento, como “listo”, “todo listo”, etcétera.

  4. Agrega un parámetro "secuencia" con el valor "#collecting-sequence.existing_sequence" para extraer la secuencia final del contexto.

  5. Habilita las llamadas del webhook para este intent.

Vincula los intents con el webhook

Ahora tienes todo lo que necesitas para codificar la lógica de estos intents. En la siguiente sección, verás cómo codificar el webhook para usar todos estos contextos, acciones, parámetros y eventos para completar el flujo de validación de secuencias.