Curso RAG Agents: Construye Aplicaciones y GPTs con APIs, MCP, LangChain y n8n

0 de 63 lecciones completas (0%)

6- Construyendo Chatbots y Agentes RAG con n8n

6.8- Convirtiendo un Sitio Web en un Chatbot RAG mediante Solicitudes HTTP y Web Scraping

No tienes acceso a esta lección

Por favor, inscríbete o accede para acceder al contenido del curso.

Introducción

En esta lección aprenderás cómo crear un chatbot RAG (Retrieval-Augmented Generation) que puede extraer información de sitios web completos de forma gratuita usando solicitudes HTTP y técnicas de web scraping en n8n.

¿Qué haremos?

Crearemos un flujo de trabajo que:

  1. Extrae URLs de un sitio web
  2. Obtiene el contenido HTML de todas las páginas
  3. Convierte el HTML a Markdown para facilitar el procesamiento
  4. Limpia la información innecesaria
  5. Almacena todo en una base de datos vectorial Pinecone
  6. Permite conversar con el contenido a través de un chatbot RAG

⚠️ Scraping Ético: Lo Primero Es Lo Primero

IMPORTANTE: Siempre debemos hacer scraping de forma ética y legal.

Cómo verificar si puedes hacer scraping de un sitio

Antes de extraer datos de cualquier sitio web, debes verificar si está permitido:

  1. Visita el sitio web que quieres analizar
  2. Añade /robots.txt al final de la URL
  3. Revisa el contenido del archivo robots.txt

Ejemplos prácticos:

✅ Sitio que PERMITE scraping (Flowwise):

https://flowwise.ai/robots.txt

Resultado: «Allow: *» (Todo permitido)

❌ Sitios que NO PERMITEN scraping:

GitHub:

https://github.com/robots.txt

Resultado: «Disallow: *» (Todo prohibido)

YouTube:

https://youtube.com/robots.txt

Resultado: «Disallow: *» (Todo prohibido)

Regla de oro

Si un sitio web prohíbe el scraping en su archivo robots.txt, NO lo hagas. Respeta siempre estas reglas.

Arquitectura del Sistema

Nuestro sistema consta de dos flujos de trabajo principales:

Flujo 1: Extracción y Procesamiento

  1. Formulario de entrada – Donde introduces la URL
  2. Normalización de URLs – Limpia y estandariza la URL
  3. Verificación de robots.txt – Comprueba permisos
  4. Extracción de sitemap – Encuentra todas las URLs del sitio
  5. Solicitudes HTTP – Obtiene el contenido HTML
  6. Conversión a Markdown – Simplifica el contenido
  7. Limpieza de datos – Elimina información innecesaria
  8. Almacenamiento vectorial – Guarda en Pinecone

Flujo 2: Chatbot RAG

  1. Interfaz de chat – Donde haces preguntas
  2. Búsqueda vectorial – Encuentra contenido relevante
  3. Generación de respuestas – Usa GPT para responder

Paso a Paso: Cómo Funciona el Scraping

1. Normalización de URLs

El primer nodo usa GPT-4o Mini para limpiar la URL:

  • Añade https:// si no está presente
  • Elimina www. innecesario
  • Remueve rutas, consultas y parámetros
  • Convierte a minúsculas
  • Preserva subdominios

Ejemplo de transformación:

Entrada: www.ejemplo.com/pagina?param=valor
Salida: https://ejemplo.com

2. Verificación de Robots.txt

El sistema busca el archivo robots.txt en la URL base:

https://sitio.com/robots.txt

Este archivo contiene:

  • User-agent: Qué bots pueden acceder
  • Allow/Disallow: Qué se puede o no extraer
  • Sitemap: Ubicación del mapa del sitio

3. Extracción del Sitemap

El sitemap es crucial porque nos da una lista completa de URLs para extraer.

Tipos de sitemap que el sistema maneja:

  • sitemap.xml – Formato estándar
  • sitemap_index.xml – Índice de múltiples sitemaps
  • sitemap.json – Formato JSON alternativo
  • site.map.xml – Variante de nomenclatura

Dos estructuras posibles:

Estructura Simple (URLs directas):

<urlset>
  <url>
    <loc>https://sitio.com/pagina1</loc>
  </url>
  <url>
    <loc>https://sitio.com/pagina2</loc>
  </url>
</urlset>

Estructura Categorizada (XMLs anidados):

<sitemapindex>
  <sitemap>
    <loc>https://sitio.com/categoria1.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://sitio.com/categoria2.xml</loc>
  </sitemap>
</sitemapindex>

4. Procesamiento Diferenciado

El sistema detecta automáticamente el tipo de estructura:

Para URLs Directas:

  1. Extrae todas las URLs del sitemap
  2. Hace solicitudes HTTP a cada URL
  3. Procesa el HTML directamente

Para Categorías XML:

  1. Extrae los enlaces a XMLs de categorías
  2. Hace solicitudes HTTP a cada XML de categoría
  3. Extrae las URLs de cada categoría
  4. Hace solicitudes HTTP a todas las URLs encontradas

5. Conversión y Limpieza

Una vez obtenido el HTML:

  1. Conversión a Markdown – Elimina etiquetas HTML innecesarias
  2. Eliminación de ruido – Remueve elementos como menús, footers, ads
  3. Fragmentación – Divide el contenido en chunks manejables
  4. Embeddings – Convierte texto a vectores numéricos

6. Almacenamiento en Pinecone

Los datos procesados se almacenan en Pinecone con:

  • Embeddings OpenAI (text-embedding-3-small)
  • Fragmentación recursiva para optimizar búsquedas
  • Metadatos que incluyen URL fuente y título

Configuración del Chatbot RAG

Componentes del agente:

  1. Prompt del sistema: Eres un asistente útil para FlowWise, LangChain y n8n. Tienes acceso a una base de datos vectorial con información sobre estos temas. Úsala para responder preguntas precisas.
  2. Memoria de ventana: Mantiene contexto de la conversación
  3. Modelo de chat: GPT-4 Omni para respuestas
  4. Retriever vectorial: Top-K=4 para encontrar contenido relevante
  5. Embeddings: Mismos que para almacenamiento (consistencia)

Ejemplos Prácticos

Ejemplo 1: Flowwise (Estructura Simple)

URL: https://flowwise.ai
Robots.txt: ✅ Permitido
Sitemap: URLs directas
Resultado: 4 registros en Pinecone
Capacidad: Responde preguntas sobre precios, características

Ejemplo 2: LangChain (Sin Robots.txt)

URL: https://langchain.com
Robots.txt: ❌ No existe (pero sitemap sí)
Sitemap: 37 URLs directas
Resultado: 131 registros en Pinecone
Capacidad: Responde sobre LangSmith, APIs, integraciones

Ejemplo 3: n8n (Estructura Compleja)

URL: https://n8n.io
Robots.txt: ✅ Permitido
Sitemap: Categorías XML (12 categorías)
URLs extraídas: 57+ páginas
Resultado: 452 registros en Pinecone
Capacidad: Responde sobre integraciones, workflows, APIs

Flujo de Datos Completo

URL de entrada
    ↓
Normalización de URL
    ↓
Verificación robots.txt
    ↓
┌─────────────────┐
│ ¿Tiene robots?  │
└─────────────────┘
    ↓           ↓
   Sí          No
    ↓           ↓
Extrae sitemap  Busca sitemap
del robots.txt  directamente
    ↓           ↓
    └─────┬─────┘
          ↓
    Solicitud HTTP
    al sitemap
          ↓
┌─────────────────────┐
│ ¿URLs o categorías? │
└─────────────────────┘
    ↓               ↓
URLs directas    Categorías XML
    ↓               ↓
Extraer URLs    Extraer XMLs
    ↓               ↓
    └─────┬─────────┘
          ↓
    Solicitudes HTTP
    a todas las URLs
          ↓
    Conversión a
    Markdown
          ↓
    Limpieza de
    contenido
          ↓
    Fragmentación
    de texto
          ↓
    Generación de
    embeddings
          ↓
    Almacenamiento
    en Pinecone
          ↓
    Chatbot RAG
    listo para usar

Consejos para el Éxito

1. Verificación Previa

  • Siempre revisa robots.txt antes de hacer scraping
  • Respeta los límites de velocidad implícitos
  • No sobrecargues los servidores con demasiadas solicitudes simultáneas

2. Gestión de Errores

  • Implementa reintentos para solicitudes fallidas
  • Maneja timeouts adecuadamente
  • Registra errores para debugging

3. Optimización de Contenido

  • Ajusta los parámetros de fragmentación según tu contenido
  • Experimenta con diferentes modelos de embeddings
  • Fine-tunea el prompt del sistema para tu dominio específico

4. Mantenimiento

  • Actualiza periódicamente el contenido extraído
  • Monitorea cambios en la estructura del sitemap
  • Revisa la calidad de las respuestas del chatbot

Casos de Uso Ideales

✅ Perfecto para:

  • Documentación técnica
  • Sitios de productos/servicios
  • Bases de conocimiento públicas
  • Blogs y sitios informativos
  • Sitios con sitemap bien estructurado

❌ No recomendado para:

  • Sitios que prohíben scraping
  • Contenido dinámico (JavaScript pesado)
  • Sitios con autenticación requerida
  • Contenido que cambia constantemente
  • Sitios con estructura muy compleja

Conclusión

Este sistema te permite crear chatbots RAG potentes que pueden responder preguntas basadas en el contenido completo de sitios web. La clave está en:

  1. Respetar las reglas de scraping
  2. Entender la estructura del sitemap
  3. Procesar el contenido adecuadamente
  4. Configurar el RAG correctamente

Con esta base, puedes crear asistentes especializados en cualquier dominio que tenga documentación web accesible.

Próximos Pasos

  1. Descarga el workflow de n8n
  2. Configura tus API keys (OpenAI, Pinecone)
  3. Prueba con sitios pequeños primero
  4. Experimenta con diferentes configuraciones
  5. Escala a sitios más grandes gradualmente

¡Ahora eres un experto en web scraping para RAG! Recuerda siempre hacerlo de forma ética y legal.

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 de terceros

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.