El uso de chatbots se ha vuelto esencial en la atención al cliente y la interacción con usuarios. Sin embargo, a menudo nos enfrentamos al desafío de limpiar y formatear el texto antes de enviarlo al usuario. En este tutorial, aprenderás a utilizar un sencillo script que permita simplificar y limpiar textos en tu chatbot de N8N. ¡Mejorarás la presentación de tus mensajes de modo fácil y rápido! 🚀
Paso 1: Estructura del Código
Primero, veamos la estructura básica del código que implementaremos. Este es el núcleo de nuestro script para limpiar texto:
for (const item of $input.all()) {
let output = item.json.output || '';
// Reemplazar **texto** por *texto*
output = output.replace(/\*\*(.*?)\*\*/g, '*$1*');
// Reemplazar [texto](enlace) por "texto: enlace"
output = output.replace(/\[(.*?)\]\((.*?)\)/g, '$1: $2');
// Reemplazar [texto] por texto
output = output.replace(/\[(.*?)\]/g, '$1');
// Reemplazar {texto} por texto
output = output.replace(/\{(.*?)\}/g, '$1');
item.json.cleanedOutput = output;
}
return $input.all();
Este código se ejecuta en el módulo de código de N8N y será el responsable de limpiar y reformatear los textos que tu chatbot envía. Ahora desglosamos línea por línea.
Paso 2: Desglose del Código
- Iteración sobre los items:
for (const item of $input.all()) {
Aquí comenzamos un bucle que recorre todos los inputs disponibles, lo cual es crucial para procesar múltiples mensajes de una vez.
- Definición de la salida:
let output = item.json.output || '';
Se establece que
output
es el texto que vamos a limpiar. Si no hay texto, se inicializa como una cadena vacía. - Reemplazo de
**texto**
por*texto*
:output = output.replace(/\*\*(.*?)\*\*/g, '*$1*');
Este fragmento utiliza una expresión regular para convertir el formato de texto en negrita a cursiva. ¡Perfecto para resaltar información!
- Reemplazo de
[texto](enlace)
portexto: enlace
:output = output.replace(/\[(.*?)\]\((.*?)\)/g, '$1: $2');
Aquí, convertimos enlaces de formato Markdown a un formato más amigable para el usuario.
- Reemplazo de
[texto]
portexto
:output = output.replace(/\[(.*?)\]/g, '$1');
Este código elimina los corchetes, presentando solo el texto limpio.
- Reemplazo de
{texto}
portexto
:output = output.replace(/\{(.*?)\}/g, '$1');
Finalmente, los corchetes dobles son eliminados, dejando solo el texto para facilitar la lectura.
- Asignación del texto limpio:
item.json.cleanedOutput = output;
Asumimos que el texto procesado se guarda en
cleanedOutput
, listo para ser utilizado en el flujo. - Retorno de todos los items:
return $input.all();
Al final, retornamos todos los items con sus nuevos textos limpios.
Paso 3: Personalización y Mejoras
Puedes personalizar el código según tus necesidades:
- Modifica las expresiones regulares para crear otros formatos de texto.
- Añade más transformaciones según los requisitos de tu chatbot.
- Asegúrate de que el обработка abd el estilo del idioma sean consistentes para tus usuarios.