Ahora que tienes tu entidad de secuencia, puedes crear los intents para recopilar la secuencia del usuario final. Necesitarás al menos tres intents con estas responsabilidades:
- Un intent principal “Secuencia”
- Detecta las expresiones para iniciar la recopilación de secuencias.
- Se invoca a través de eventos de seguimiento para continuar capturando secuencias hasta que la el usuario final dice que está listo.
- 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.
- Un intent contextual “Secuencia: Listo”
- Detecta las expresiones que indican que la secuencia está completa.
En la próxima sección, verás cómo webhook los conectará todas, pero primero configuremos los intents.
Crea el intent “Secuencia”
Este es el intent principal para recopilar secuencias. Configúralo de la siguiente manera:
- Deja vacíos los contextos de entrada para que los usuarios finales puedan activar este intent al inicio de la llamada.
- Agrega un contexto de salida “collecting-sequence”. Usaremos este contexto para habilitar los intents de corrección y finalización durante el flujo.
- 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”.
Agrega un evento “continue-sequence” para que tu webhook pueda repetir el intent con el fin de recopilar todas las secuencias parciales.
Agregar 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étera.
Agrega un nombre de acción "handle-secuencia" 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.
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”.
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.
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.
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:
- 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”.
- 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.
Agrega frases de entrenamiento, como “no”, “no es correcto”, etcétera.
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.
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.
Habilita las llamadas del webhook para este intent.
Crea un intent “Secuencia: Finalizado”.
- Agrega un contexto de entrada “collecting-sequence”
- 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.
Agrega frases de entrenamiento, como “listo”, “todo listo”, etcétera.
Agrega un parámetro "secuencia" con el valor "#collecting-sequence.existing_sequence" para extraer la secuencia final del contexto.
Habilita las llamadas del webhook para este intent.
Vincula los intents con el webhook
Ahora tienes todo lo que necesitas para programar la lógica de estos intents. En la próxima verás cómo codificar el webhook para que use todos estos contextos, acciones parámetros y eventos para completar el flujo de validación de secuencias.