Contenido
Tutorial de RAG en n8n: crea una base de conocimiento con IA que responde según tus documentos
Los modelos de IA no conocen las normas de tu empresa, los manuales de productos ni las preguntas frecuentes. RAG consiste en guardar primero los documentos en una «base de datos vectorial». Cuando alguien hace una pregunta, se buscan los fragmentos más relevantes y se entregan al modelo para que responda basándose en ellos.
En n8n, RAG suele dividirse en dos flujos de trabajo:
① Importar documentos: [Obtener documentos] ─▶ [Vector Store: insertar] ← [Embeddings] + [Document Loader + Text Splitter]
② Preguntas y respuestas: [Chat Trigger] ─▶ [AI Agent] ← [Chat Model] + [Memory] + [herramienta Vector Store ← Embeddings]
Para consultar una explicación de los conceptos, visita Embeddings de texto y RAG con Ollama.
Elige una base de datos vectorial
| Nodo | Características | Adecuado para |
|---|---|---|
| Simple Vector Store | Se almacena en la memoria de n8n; no requiere instalación | Aprendizaje y pruebas (los datos desaparecen al reiniciar) |
| Qdrant Vector Store | Base de datos vectorial especializada que puedes alojar con Docker | Uso en producción |
| Postgres PGVector Store | PostgreSQL + la extensión pgvector | Si ya usas PostgreSQL |
| Pinecone, Supabase, etc. | Servicios en la nube | Si no quieres ocuparte del mantenimiento |
Primero usaremos Simple Vector Store como ejemplo y, al final, explicaremos cómo cambiar a Qdrant.
Flujo de trabajo ①: importar documentos
1. Configura el activador y obtén los documentos
- Para hacer pruebas, puedes usar Form Trigger con un campo para subir archivos y cargar un PDF directamente.
- Para producción, puedes usar Google Drive Trigger (cuando aparece un archivo nuevo en la carpeta) junto con el nodo Google Drive para descargarlo.
2. Añade el nodo Vector Store
Añade Simple Vector Store y selecciona el modo Insert Documents. En Memory Key, escribe un nombre, por ejemplo, company_docs (debes usar el mismo nombre para las preguntas y respuestas).
3. Conecta Embeddings
En la ranura Embeddings, elige un modelo de embeddings:
- Embeddings OpenAI
- Embeddings Ollama (gratis en local; para chino, se recomienda
bge-m3)
La importación y las consultas deben usar el mismo modelo de embeddings; de lo contrario, los vectores no se podrán comparar.
4. Conecta Document Loader y Text Splitter
- Default Data Loader: selecciona Binary (archivos) o JSON (datos de texto) en Type of Data.
- Conecta Recursive Character Text Splitter debajo de Data Loader:
- Chunk Size: número de caracteres por fragmento; para documentos en chino, puedes empezar con 500–800.
- Chunk Overlap: cantidad de caracteres compartidos entre fragmentos adyacentes; por ejemplo, 100.
Al ejecutar el flujo una vez, el documento se dividirá en fragmentos, se convertirá en vectores y se almacenará.
Flujo de trabajo ②: preguntas y respuestas
- When chat message received → AI Agent.
- Conecta Chat Model y Memory a AI Agent (consulta también Introducción a AI Agent).
- Añade Simple Vector Store en la ranura Tool y selecciona el modo Retrieve Documents (As Tool for AI Agent):
- Memory Key:
company_docs - Description:
Consulta las normas internas y los documentos de productos de la empresa. Úsalo antes de responder cualquier pregunta sobre políticas de la empresa o especificaciones de productos. - Limit: número de fragmentos que se recuperan cada vez; por ejemplo, 4.
- Memory Key:
- Este Vector Store también debe conectarse al mismo modelo de Embeddings.
- El prompt del sistema de AI Agent:
Eres el asistente de la base de conocimiento interna de la empresa. Responde en español.
Antes de responder, consulta siempre la herramienta de la base de conocimiento.
Responde solo basándote en el contenido encontrado. Si no encuentras información relevante, di directamente «No hay información relevante en la base de conocimiento» y no hagas suposiciones.
Haz clic en Open chat para probarlo y pregunta sobre el contenido de los documentos.
Los datos de Simple Vector Store se almacenan en la memoria. Ambos flujos de trabajo deben ejecutarse en la misma instancia de n8n y, después de reiniciar n8n, tendrás que volver a importarlos.
Cambia a Qdrant (para producción)
Añade Qdrant a Docker Compose:
qdrant:
image: qdrant/qdrant
volumes:
- qdrant_data:/qdrant/storage
restart: unless-stopped
(Acuérdate de añadir qdrant_data: al bloque volumes:.)
En ambos flujos de trabajo, sustituye Simple Vector Store por Qdrant Vector Store, escribe http://qdrant:6333 en el campo URL de las credenciales y especifica el mismo nombre de Collection. Los datos se conservarán de forma permanente.
Mejora la calidad de las respuestas
- La calidad de los documentos es lo más importante: primero convierte a texto los PDF escaneados; es posible que la información de las tablas y las imágenes no se lea correctamente.
- Ajusta el tamaño de los fragmentos: aumenta Chunk Size si a las respuestas les falta contexto; redúcelo si incluyen contenido irrelevante.
- Añade metadatos: agrega metadatos como el nombre y la categoría del documento en Data Loader. Así, las respuestas pueden indicar la fuente y también puedes filtrar por categoría.
- Actualiza los documentos: cuando se actualice un documento, elimina primero los vectores antiguos y vuelve a importarlo; de lo contrario, se recuperará tanto el contenido antiguo como el nuevo.
- Elige un buen modelo de embeddings: para contenido en chino, se recomienda un modelo multilingüe de embeddings.
Más allá de los documentos
También puedes aplicar el mismo método a:
- Preguntas y respuestas históricas de atención al cliente → respuestas automáticas a preguntas frecuentes
- Catálogos de productos → asistente de recomendaciones de productos
- Actas de reuniones → «¿Qué se decidió en la última reunión?»
Actualizado 12 de octubre de 2026