Crea los intents de flujo de secuencia

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

  1. Un intent principal "Secuencia"
    • Detecta las expresiones para iniciar la colección de secuencias.
    • Se invoca un evento de seguimiento para continuar 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"
    • Captura las declaraciones que indican que la secuencia está completa.

En la próxima sección, verás cómo se conectará el webhook a todas ellas, pero primero configuraremos los intents.

Crear el intent "Secuencia"

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

  1. Deja los contextos de entrada vacíos 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 correctos y finales durante el flujo.
  3. Agrega un contexto de salida "editing-sequence" y establece la vida útil en 0. Activaremos este contexto con una vida útil del intent "Secuencia: Editar" en la sección siguiente, y es importante borrar ese contexto aquí, de manera que el contexto "edición-secuencia" solo sea activo 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 a fin de iniciar el flujo. En este ejemplo, se usan frases como "cuál es el estado de mi pedido", "haz un seguimiento de mi pedido", "dónde está mi pedido", etc.

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

  7. Agrega un parámetro obligatorio "new_sequence" 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 opcional "existing_sequence" con el valor "#continue-sequence.existing_sequence" para extraer la nueva secuencia existente del evento. Puede dejar el tipo de entidad vacío.

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

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

Crear el intent "Secuencia: Editar"

Este intent detecta declaraciones que indican que la agente anterior no tenía en cuenta la secuencia anterior. Configúrala como se muestra a continuación:

  1. Agrega un contexto de entrada “collecting-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 repite con Dialogflow el 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 activo "editing-sequence" activo para proporcionar una respuesta provisional con "volver a intentarlo" 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 de webhook.

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

  6. Habilita las llamadas de webhook para este intent.

Crea un intent "Secuencia: Finalizado".

  1. Agrega un contexto de entrada “collecting-sequence”
  2. Para agregar el contexto, agrega un contexto de salida “collecting-sequence” y establece la duración del valor 0. Borrarla evita que se vuelvan a activar los intents "Editar" y "Listo" para que el agente termine de recopilar la secuencia.
  3. Agrega frases de entrenamiento, como " listo", "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 de webhook para este intent.

Cómo vincular los intents con 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 a fin de completar el flujo de validación de secuencias.