6. Agentes conversacionales de IA para WhatsApp

0 de 11 lecciones completas (0%)

Evolution API

7. Unificación de Rutas y Gestión de la Memoria de Mensajes

Descarga el WorkFlow de la lección:

En las lecciones anteriores, construimos con éxito las rutas para procesar texto, imágenes, audios y documentos. Cada ruta termina con un nodo Edit Fields que formatea la información en una variable llamada input.

Ahora, nuestro desafío es unificar estas cuatro rutas en un solo camino y empezar a construir la lógica que permitirá a nuestro agente tener conversaciones coherentes, esperando a que el usuario termine de escribir antes de responder.

Objetivos de esta lección:

  • Unificar las cuatro ramas de procesamiento en una sola ruta de datos.
  • Implementar un sistema con Redis para almacenar temporalmente los mensajes de una conversación.
  • Añadir una pausa estratégica (Wait) para agrupar mensajes enviados de forma consecutiva por el usuario.

Paso 1: Unificar las Rutas de Entrada (Input)

Tener múltiples caminos que hacen lo mismo no es eficiente. Vamos a crear un «embudo» para que, sin importar el tipo de mensaje original, el resto del flujo sea idéntico.

  1. Añade un nodo Edit Fields en el centro del canvas, donde puedas conectar fácilmente las cuatro ramas.
  2. Renómbralo a unificar_input.
  3. Conecta la salida de los cuatro nodos finales de las ramas anteriores a este nuevo nodo:
    • texto.
    • imagen.
    • audio.
    • documento.
  4. Dentro de unificar_input, crea un único valor:
    • Nombre: input
    • Mode: Cambia a Expression.
    • Valor: Escribe la siguiente expresión: {{ $json.input }}

Análisis de la Expresión: Esta simple pero poderosa expresión {{ $json.input }} le dice a N8n: «Toma el valor del campo llamado input que viene del nodo que me acaba de activar, sin importar cuál de los cuatro fue». De esta manera, consolidamos la salida de todas las ramas en una única variable input.

Paso 2: Almacenar Mensajes con Redis (Base de Datos Temporal)

Cuando chateamos, a menudo enviamos varios mensajes seguidos para expresar una idea completa. «Hola», «qué tal?», «tengo una pregunta». Si nuestro agente respondiera al primer «Hola», la conversación sería antinatural. Para solucionar esto, guardaremos los mensajes en una base de datos temporal (caché) llamada Redis.

Requisito: Redis debe estar instalado y configurado en tu infraestructura de servidor, al igual que N8n y Evolution API.

  1. Añade un nodo Redis después de unificar_input.
  2. Renómbralo a guardar_mensajes.
  3. Configúralo de la siguiente manera:
    • Operation: Push (que significa «añadir a una lista»).
    • List: Esta es la clave única para cada conversación. Para que los mensajes de diferentes usuarios no se mezclen, debemos usar un identificador único para cada uno: su número de teléfono. Arrastra la variable numero_remitente desde nuestro primer nodo organizar_datos.
    • Data: Este es el mensaje que queremos guardar. Arrastra la variable input desde la salida del nodo anterior unificar_input.
    • Asegúrate de que esté seleccionada la opción Tail.

Ahora, cada vez que llegue un mensaje, se añadirá al final de una lista específica para ese usuario en Redis.

Paso 3: Esperar a que el Usuario Termine de Escribir

Una vez guardado el mensaje, ¿cómo sabemos si el usuario va a escribir otro? La solución es simple: esperar un poco.

  1. Añade un nodo Wait después de guardar_mensajes.
  2. Renómbralo a esperar_mas_mensajes.
  3. Establece un tiempo de espera. Un valor entre 10 y 15 segundos suele funcionar bien.
    • Lógica: Si el usuario envía otro mensaje antes de que se acabe este tiempo, se iniciará una nueva ejecución del flujo. Ese nuevo mensaje también se guardará en Redis, y el contador de espera se reiniciará para ese nuevo mensaje. El flujo solo continuará más allá de este nodo Wait para el último mensaje que se reciba después de una pausa de 10-15 segundos.

Resumen de la Lección:

Hemos dado un paso de gigante en la lógica de nuestro agente. Ahora el flujo es mucho más limpio y robusto.

En esta lección hemos aprendido a:

  • Consolidar múltiples ramas de un flujo de N8n en una sola para simplificar el procesamiento posterior.
  • Utilizar Redis como una base de datos en caché para almacenar temporalmente los mensajes de una conversación.
  • Implementar un sistema de espera que permite al usuario enviar varios mensajes seguidos antes de que el agente proceda a responder.

Próximos Pasos:

Ya tenemos los mensajes agrupados en Redis. En la siguiente lección, aprenderemos a recuperarlos todos juntos, unirlos en un solo texto coherente y, finalmente, ¡enviárselos a nuestro agente de IA principal para que genere una respuesta!

Resumen de privacidad
Logo JeroCuevas.com

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Analítica

Esta web utiliza Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.