Construye un Pipeline RAG Local con n8n y Ollama: Consulta los Documentos de tu Empresa con IA
Construye un Pipeline RAG Local con n8n y Ollama: Consulta los Documentos de tu Empresa con IA
Toda empresa tiene un problema de conocimiento. Las politicas viven en PDFs que nadie lee. La documentacion de procesos esta en unidades compartidas. Los nuevos empleados hacen las mismas preguntas que ya se respondieron en una pagina de Confluence hace tres anos. RAG --- Generacion Aumentada por Recuperacion (Retrieval-Augmented Generation) --- resuelve esto permitiendo que un modelo de IA responda preguntas usando tus documentos reales como material fuente, no sus datos de entrenamiento.
Este tutorial te muestra como construir un pipeline RAG completo que funciona enteramente en hardware local. Sin claves de API en la nube. Sin costes por consulta. Sin datos saliendo de tu red.
Que es RAG en Terminos Sencillos
Un modelo de lenguaje grande sabe lo que aprendio durante su entrenamiento. No conoce tu politica de vacaciones, tu checklist de despliegue ni tu proceso de onboarding de clientes. RAG arregla esto anadiendo un paso de recuperacion antes de la generacion:
- Tu pregunta llega
- El sistema busca en tus documentos los pasajes relevantes
- Esos pasajes se inyectan en el prompt como contexto
- El LLM genera una respuesta fundamentada en tu documentacion real
El resultado: respuestas precisas y respaldadas por fuentes en lugar de generalidades inventadas.
Vision General de la Arquitectura
Aqui esta el pipeline completo desde la ingestion de documentos hasta la generacion de respuestas:
graph LR
A[Documentos<br/>PDF, DOCX, TXT] --> B[Chunker<br/>Dividir en pasajes]
B --> C[Modelo de Embedding<br/>nomic-embed-text]
C --> D[Base de Datos Vectorial<br/>ChromaDB]
E[Pregunta del Usuario] --> F[Embed Pregunta]
F --> G[Busqueda Vectorial<br/>Top 5 resultados]
G --> H[Construir Prompt<br/>Contexto + Pregunta]
D --> G
H --> I[Ollama LLM<br/>Llama 3.1 8B]
I --> J[Respuesta con Fuentes]
style A fill:#0B1628,color:#FAFAFA
style J fill:#F5A623,color:#0B1628
Que Necesitas
| Componente | Proposito | Instalacion |
|---|---|---|
| n8n | Orquestacion de workflows | docker run -d -p 5678:5678 n8nio/n8n |
| Ollama | Inferencia local LLM + embeddings | brew install ollama |
| ChromaDB | Base de datos vectorial | pip install chromadb |
| Llama 3.1 8B | Modelo de generacion de respuestas | ollama pull llama3.1:8b |
| nomic-embed-text | Modelo de embeddings | ollama pull nomic-embed-text |
Requisito de hardware: un Mac Mini M4 con 16GB+ de RAM maneja todo esto comodamente. Para la guia completa de hardware, consulta nuestras recomendaciones de hardware para IA edge.
Paso 1: Ingestar y Fragmentar Documentos
El workflow de ingestion en n8n vigila una carpeta en busca de nuevos documentos, los divide en fragmentos, genera el embedding de cada fragmento y almacena los vectores en ChromaDB.
Crea un workflow en n8n con un Schedule Trigger que se ejecute cada 15 minutos:
{
"nodes": [
{
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"parameters": {
"rule": {
"interval": [{ "field": "minutes", "minutesInterval": 15 }]
}
}
},
{
"name": "Read Files",
"type": "n8n-nodes-base.readWriteFile",
"parameters": {
"operation": "list",
"folderPath": "/data/company-docs/"
}
}
]
}
Para cada documento, divide el texto en fragmentos solapados de 500 tokens con 50 tokens de solapamiento. Esto asegura que no se pierde informacion en los limites entre fragmentos.
Generar Embedding de Cada Fragmento via Ollama
Usa un nodo HTTP Request para llamar al endpoint de embeddings de Ollama:
{
"url": "http://localhost:11434/api/embed",
"method": "POST",
"body": {
"model": "nomic-embed-text",
"input": "{{ $json.chunk_text }}"
}
}
La respuesta contiene un vector de 768 dimensiones. Almacenalo en ChromaDB junto con el texto original y metadatos (nombre de archivo, numero de pagina, indice de fragmento).
Paso 2: Pipeline de Consulta
Cuando un usuario hace una pregunta, el pipeline de consulta genera el embedding de la pregunta, busca en ChromaDB los 5 fragmentos mas similares y los pasa como contexto a Ollama para generar la respuesta.
{
"url": "http://localhost:11434/api/embed",
"method": "POST",
"body": {
"model": "nomic-embed-text",
"input": "Cual es nuestra politica de vacaciones?"
}
}
Busqueda Vectorial
Consulta ChromaDB con el embedding de la pregunta para recuperar los fragmentos de documentos mas relevantes:
import chromadb
client = chromadb.PersistentClient(path="/data/chromadb")
collection = client.get_collection("company_docs")
results = collection.query(
query_embeddings=[question_embedding],
n_results=5,
include=["documents", "metadatas", "distances"]
)
Generar Respuesta con Ollama
Construye el prompt con el contexto recuperado y envialo a Ollama:
{
"url": "http://localhost:11434/api/chat",
"method": "POST",
"body": {
"model": "llama3.1:8b",
"messages": [
{
"role": "system",
"content": "Responde usando SOLO el contexto proporcionado. Si el contexto no contiene la respuesta, dilo. Cita el documento fuente."
},
{
"role": "user",
"content": "Contexto:\n{{ $json.retrieved_chunks }}\n\nPregunta: Cual es nuestra politica de vacaciones?"
}
],
"stream": false
}
}
Paso 3: Ejemplo Practico
Un empleado pregunta: “Cual es nuestra politica de vacaciones?”
El pipeline:
- Genera el embedding de la pregunta usando nomic-embed-text (2ms)
- Busca en ChromaDB y encuentra 5 fragmentos relevantes de
Politica-RRHH-2026.pdf(8ms) - Construye un prompt con esos fragmentos como contexto
- Ollama genera: “Segun el documento de Politica de RRHH (Seccion 4.2), los empleados disponen de 23 dias laborables de vacaciones pagadas al ano. Las solicitudes deben enviarse con 15 dias de antelacion a traves del portal de RRHH. Los dias no utilizados pueden trasladarse al Q1 del ano siguiente.”
Tiempo total de respuesta en un Mac Mini M4: menos de 3 segundos. Coste por consulta: cero.
Comparacion: RAG Local vs RAG en la Nube
| Factor | Local (Ollama + ChromaDB) | Nube (OpenAI + Pinecone) |
|---|---|---|
| Coste por consulta | 0,00 EUR | 0,01-0,05 EUR |
| Coste mensual (1000 consultas/dia) | 19 EUR electricidad | 300-1.500 EUR |
| Latencia | 1-3 segundos | 2-5 segundos |
| Privacidad de datos | Total --- nunca sale de la red | Requiere DPA + confianza |
| Cumplimiento RGPD | Integrado | Requiere acuerdo de procesador |
| Complejidad de setup | Media | Baja |
| Calidad del modelo (general) | Buena (modelos 8B) | Excelente (GPT-4o) |
| Calidad del modelo (dominio) | Excelente tras fine-tuning | Buena con prompt engineering |
Para un analisis de costes mas detallado, consulta nuestro desglose de costes IA nube vs local.
Ajuste de Rendimiento
Tres configuraciones que marcan la mayor diferencia:
- Tamano de fragmento: 500 tokens funciona para la mayoria de documentos. Usa 300 para manuales tecnicos densos, 800 para contenido conversacional.
- Solapamiento: 10% del tamano de fragmento previene la perdida de informacion en los limites.
- Top-K de recuperacion: Empieza con 5. Incrementa a 8-10 para preguntas complejas que abarcan multiples secciones del documento.
Para orientacion sobre seleccion de modelos, nuestra comparativa de mejores modelos LLM locales cubre las diferencias entre Llama, Mistral y Qwen para distintos casos de uso.
Automatizacion con n8n
El verdadero poder viene de conectar este pipeline a tus herramientas existentes. n8n puede disparar la consulta RAG desde:
- Un mensaje de Slack en un canal
#preguntar-rrhh - Un envio de formulario en tu intranet
- Un email a una direccion designada
- Un resumen programado que responde las 10 preguntas sin responder mas frecuentes de la semana
Para mas patrones de automatizacion con n8n, consulta nuestro tutorial de automatizacion IA con n8n.
Lecturas relacionadas
- Automatiza la revision de codigo con IA: Tutorial n8n + Ollama
- Google Gemma 3: El Primer Modelo Multimodal Abierto que Cabe en un Mac Mini
- NVIDIA Releases AITune: An Open-Source Inference Toolkit That Automatically Finds the Fastest Inference Backend for Any PyTorch Model — Resumen en Espanol
Fuentes
- Documentacion de n8n: Workflows de IA --- Guia oficial para construir workflows con IA en n8n
- Referencia de API de Ollama --- Documentacion completa de la API para endpoints de embeddings y chat
- Tutorial RAG de LangChain --- Arquitectura de referencia para patrones de diseno de pipelines RAG
Un pipeline RAG convierte tus documentos estaticos de empresa en una base de conocimiento interactiva que cualquier empleado puede consultar en lenguaje natural. Con n8n orquestando el workflow y Ollama manejando la inferencia localmente, todo el sistema funciona en un solo Mac Mini sin costes recurrentes y sin datos saliendo de tu red. Si quieres ayuda para desplegar un sistema RAG en tu organizacion, contacta con nosotros. Construimos estos pipelines para PYMEs espanolas cada semana.