Back to blog
    n8n + Ollama + modelos ajustados: el stack de automatización sin costo de API
    n8nollamafine-tuningautomationzero-costsegment:builder

    n8n + Ollama + modelos ajustados: el stack de automatización sin costo de API

    Construye automatizaciones de IA potentes en n8n que no cuestan nada por ejecución. Esta guía te muestra cómo reemplazar cada nodo de OpenAI con un modelo ajustado ejecutándose localmente vía Ollama.

    EErtas Team·

    n8n es una de las mejores herramientas en el mundo de la automatización. Autoalojado, open-source, infinitamente flexible. Puedes conectar cientos de flujos de trabajo que mueven datos entre aplicaciones, procesan documentos, clasifican entradas y generan salidas — todo sin escribir un backend tradicional.

    Pero en el momento en que agregas un nodo de IA a un flujo de trabajo de n8n, introduces un costo variable que escala con cada ejecución. Cada vez que ese flujo se ejecuta — cada email clasificado, cada documento resumido, cada lead puntuado — estás pagándole a OpenAI por tokens.

    A 100 ejecuciones por día, es insignificante. A 1,000 por día, empiezas a notarlo. A más de 10,000 por día, es tu gasto operativo más grande después del hosting.

    Esta guía te muestra cómo eliminar ese costo por completo reemplazando cada nodo de OpenAI en tus flujos de n8n con un modelo ajustado ejecutándose localmente a través de Ollama.

    El costo oculto de los nodos de IA en n8n

    Empecemos con lo que realmente sucede detrás de escena cuando usas un nodo de OpenAI en n8n.

    Cada vez que un flujo de trabajo de n8n con un nodo de IA se ejecuta, envía una solicitud a la API de OpenAI. Esa solicitud incluye tu prompt de sistema, los datos de entrada del nodo anterior y cualquier contexto que hayas inyectado. OpenAI lo procesa, devuelve la respuesta y te cobra según el conteo de tokens.

    Esto es lo que cuesta para patrones de automatización comunes:

    Tipo de flujoTokens de entrada prom.Tokens de salida prom.Costo por ejecución1K ejecuciones/día (mensual)
    Clasificación de emails80050$0.027$810/mes
    Resumen de documentos2,500400$0.099$2,970/mes
    Puntuación de leads600100$0.024$720/mes
    Enrutamiento de tickets de soporte1,00080$0.035$1,050/mes
    Extracción de datos de facturas1,500200$0.057$1,710/mes

    Esos números asumen precios de nivel GPT-4 ($30/1M entrada, $60/1M salida). Incluso si usas GPT-3.5-turbo a precios 10 veces menores, ejecutar 1,000 ejecuciones por día aún cuesta $70-300/mes dependiendo del flujo.

    Y la mayoría de los usuarios avanzados de n8n no ejecutan un solo flujo. Ejecutan docenas. Una agencia gestionando automatizaciones de clientes podría tener más de 50 flujos con nodos de IA entre todos sus clientes. El costo se acumula rápido.

    La peor parte: la mayoría de estas tareas son limitadas y repetitivas. Clasificar emails en 5 categorías. Extraer nombres y fechas de facturas. Puntuar leads como caliente/tibio/frío. Estas no son tareas que requieren el conocimiento de GPT-4 sobre sonetos de Shakespeare. Son tareas de coincidencia de patrones que un modelo pequeño y especializado maneja perfectamente.

    El stack: n8n + Ollama + modelos ajustados

    Aquí está la arquitectura que construiremos:

    ┌─────────────┐     ┌─────────────┐     ┌──────────────────┐
    │   n8n        │────▶│   Ollama     │────▶│  Fine-Tuned Model │
    │  Workflow    │◀────│   Server     │◀────│  (GGUF format)    │
    └─────────────┘     └─────────────┘     └──────────────────┘
         │                     │
         │  HTTP Request       │  Local inference
         │  (localhost:11434)  │  (zero API cost)
         │                     │
    

    n8n orquesta tus flujos de trabajo — triggers, enrutamiento de datos, transformaciones, acciones de salida. Esto no cambia.

    Ollama se ejecuta en el mismo servidor (o un VPS cercano) y sirve tu modelo ajustado a través de un endpoint API compatible con el formato de OpenAI. n8n le habla de la misma manera que le habla a OpenAI — solo en una URL diferente.

    Tu modelo ajustado es un modelo de 7B parámetros entrenado con los datos específicos de tu flujo. Sabe cómo hacer las tareas exactas que tus automatizaciones necesitan, y nada más. Se ejecuta en CPU (no se requiere GPU para modelos 7B al rendimiento de escala de automatización).

    El resultado: cada ejecución cuesta $0 en tarifas de API. Tus únicos costos son el VPS ($30/mes) y la plataforma de fine-tuning ($14.50/mes para Ertas).

    Paso 1: identifica tus flujos de IA

    Empieza auditando tu instancia de n8n. Abre la lista de flujos y busca cualquier flujo que contenga:

    • Nodo OpenAI (el más obvio)
    • Nodo AI Agent con un modelo de OpenAI configurado
    • Nodo HTTP Request apuntando a api.openai.com
    • Nodos LangChain usando OpenAI como proveedor de LLM

    Para cada flujo, anota:

    • Qué tarea realiza la IA (clasificación, extracción, generación, resumen)
    • Cuántas veces se ejecuta por día/semana
    • El prompt de sistema que se está usando
    • El formato típico de entrada y salida

    Los mejores candidatos para reemplazo son flujos donde:

    • La tarea es limitada y bien definida (clasificar en N categorías, extraer campos específicos, generar desde una plantilla)
    • El flujo se ejecuta frecuentemente (más de 100 veces por día)
    • El formato de salida es predecible (JSON, texto corto, etiquetas de categoría)

    Objetivos comunes de alto valor:

    • Triaje y clasificación de emails
    • Puntuación y enrutamiento de leads
    • Extracción de datos de facturas y recibos
    • Categorización de tickets de soporte
    • Moderación de contenido
    • Análisis de sentimiento

    Paso 2: recopila datos de entrenamiento de tus flujos

    Este es el paso que la mayoría de las guías omiten, y es el más importante. Tu modelo ajustado es tan bueno como los datos con los que lo entrenas. La buena noticia: n8n ya ha estado generando tus datos de entrenamiento.

    Cada vez que tu flujo de n8n se ejecuta, registra la entrada y la salida. Estos logs de ejecución son tu dataset de entrenamiento.

    Aquí te mostramos cómo extraerlos:

    Opción A: historial de ejecuciones de n8n (UI)

    1. Abre el flujo que quieres reemplazar
    2. Haz clic en "Executions" en la barra lateral izquierda
    3. Filtra por ejecuciones exitosas
    4. Para cada ejecución, haz clic para ver los datos en el nodo de OpenAI
    5. Copia la entrada (lo que se envió a OpenAI) y la salida (lo que OpenAI devolvió)

    Esto funciona para datasets pequeños (menos de 200 ejemplos) pero se vuelve tedioso a escala.

    Opción B: API de n8n (programático)

    n8n tiene una API REST. Puedes extraer datos de ejecución programáticamente:

    GET /api/v1/executions?workflowId={id}&status=success&limit=500
    

    Para cada ejecución, extrae los datos en el nodo de IA y formátealos como un par de entrenamiento:

    {
      "input": "The system prompt + user input that was sent to OpenAI",
      "output": "The response OpenAI returned"
    }
    

    Opción C: agrega un nodo de registro

    Si quieres empezar a recopilar datos a futuro, agrega un nodo Function justo después de tu nodo de OpenAI que escriba cada par de entrada/salida en una Google Sheet, Airtable o un archivo JSON. Después de unas semanas, tendrás un dataset limpio.

    ¿Cuántos datos necesitas?

    Tipo de tareaEjemplos mínimosRecomendado
    Clasificación binaria100300+
    Clasificación multiclase (5-10 clases)200500+
    Extracción de datos200500+
    Generación de texto corto300800+
    Resumen3001,000+

    La calidad importa más que la cantidad. 300 ejemplos limpios y representativos superarán a 3,000 ruidosos.

    Paso 3: ajusta con Ertas

    Ahora tienes un dataset. Es hora de construir tu modelo.

    1. Regístrate en Ertas en ertas.io. La plataforma cuesta $14.50/mes e incluye todo lo que necesitas para fine-tuning.

    2. Sube tu dataset. Ertas acepta JSONL (un objeto JSON por línea con campos "input" y "output"), CSV (dos columnas: input y output), o puedes pegar datos directamente en la interfaz de Studio.

    3. Selecciona un modelo base. Para tareas de automatización, recomendamos:

      • Qwen 2.5 7B — el mejor en general para clasificación y extracción
      • Llama 3.3 8B — fuerte para tareas de generación y salidas más largas
      • Mistral 7B — inferencia rápida, bueno para flujos de alto rendimiento
    4. Configura y entrena. Ertas auto-selecciona el rango LoRA, learning rate y conteo de épocas basado en tu dataset. Puedes ajustar estos si sabes lo que haces, pero los valores por defecto funcionan bien para el 90% de los casos de uso. Haz clic en "Start Training" y espera — típicamente 15-45 minutos dependiendo del tamaño del dataset.

    5. Evalúa. Ertas ejecuta tu modelo contra un conjunto de prueba retenido y te muestra métricas de precisión. Para tareas de clasificación, verás precisión, recall y puntuaciones F1. Para tareas de generación, verás salidas de ejemplo comparadas contra las salidas esperadas.

    6. Exporta a GGUF. Haz clic en "Export" y selecciona formato GGUF con cuantización Q4_K_M (el mejor balance de calidad y tamaño de archivo para modelos 7B). Descarga el archivo — será de 4-5GB.

    Paso 4: despliega con Ollama

    Ollama es el puente entre tu modelo ajustado y n8n. Sirve tu modelo GGUF a través de una API local compatible con el formato de OpenAI.

    Instala Ollama en tu VPS:

    curl -fsSL https://ollama.com/install.sh | sh
    

    Crea un Modelfile para tu modelo ajustado:

    FROM /path/to/your-model.gguf
    
    PARAMETER temperature 0.1
    PARAMETER num_ctx 4096
    

    La temperatura baja (0.1) es importante para tareas de automatización — quieres salidas consistentes y determinísticas, no variación creativa.

    Crea y ejecuta el modelo:

    ollama create my-workflow-model -f Modelfile
    ollama run my-workflow-model "Test input here"
    

    Verifica que la API sea accesible:

    curl http://localhost:11434/api/generate -d '{
      "model": "my-workflow-model",
      "prompt": "Test input",
      "stream": false
    }'
    

    Para producción, asegúrate de que Ollama inicie con el arranque del sistema y sea accesible desde tu instancia de n8n. Si n8n y Ollama están en el mismo servidor, localhost funciona. Si están en servidores diferentes, configura Ollama para enlazar a 0.0.0.0 y asegura la conexión.

    Dimensionamiento de VPS:

    Tamaño de modeloVPS mínimoVPS recomendadoCosto mensual
    7B (Q4)4 vCPU, 8GB RAM4 vCPU, 16GB RAM$20-30/mes
    13B (Q4)8 vCPU, 16GB RAM8 vCPU, 32GB RAM$40-60/mes

    Un VPS de $30/mes de Hetzner o DigitalOcean maneja un modelo 7B cómodamente, procesando 10-20 solicitudes por segundo para tareas cortas de clasificación/extracción.

    Paso 5: actualiza los nodos de n8n

    Ahora conéctalo todo. Para cada flujo donde estás reemplazando el nodo de OpenAI:

    Opción A: reemplaza el nodo OpenAI con un nodo HTTP Request

    1. Elimina (o desactiva) el nodo OpenAI
    2. Agrega un nodo HTTP Request
    3. Configúralo:
      • Método: POST
      • URL: http://localhost:11434/api/chat
      • Body (JSON):
    {
      "model": "my-workflow-model",
      "messages": [
        {
          "role": "system",
          "content": "Your system prompt here"
        },
        {
          "role": "user",
          "content": "{{ $json.input_field }}"
        }
      ],
      "stream": false
    }
    
    1. Agrega un nodo Function después del HTTP Request para extraer la respuesta:
    const response = $input.first().json;
    return [{
      json: {
        result: response.message.content
      }
    }];
    

    Opción B: usa el nodo Ollama (si está disponible)

    Las versiones recientes de n8n incluyen un nodo nativo de Ollama en la sección de nodos de IA. Configúralo con:

    • URL base: http://localhost:11434
    • Modelo: my-workflow-model

    Esto es más simple pero te da menos control sobre los parámetros.

    Prueba exhaustivamente. Ejecuta 20-30 ejecuciones reales a través del flujo actualizado y compara las salidas contra lo que OpenAI estaba produciendo. Para tareas de clasificación, verifica que las categorías coincidan. Para tareas de extracción, verifica que todos los campos se capturen correctamente.

    Comparación de costos

    Aquí están las matemáticas para una agencia ejecutando múltiples flujos de IA:

    Ejecuciones mensualesCosto API OpenAICosto local fine-tunedAhorro
    10,000$270 - $990$44.5084-95%
    50,000$1,350 - $4,950$44.5097-99%
    100,000$2,700 - $9,900$44.5098-99.5%
    500,000$13,500 - $49,500$44.50*99.7%+

    *A más de 500K ejecuciones mensuales, podrías necesitar un VPS más potente ($60-100/mes) para el rendimiento. Aún así es un error de redondeo comparado con los costos de API.

    La columna de costo local es $14.50/mes por Ertas + $30/mes por el VPS. Eso es todo. Sin tarifa por ejecución. Sin cargo por token. Sin factura sorpresa al final del mes.

    Para agencias gestionando automatizaciones a través de múltiples clientes, esto es transformador. En lugar de trasladar costos de API a los clientes (y verlos irse cuando las facturas suben), ofreces un servicio de tarifa fija con costo marginal cercano a cero por ejecución.

    Cuándo este stack funciona mejor

    No toda tarea de IA debería ser ajustada. Aquí es donde el stack n8n + Ollama + modelo ajustado entrega las mayores ganancias:

    Tareas de clasificación — Enrutamiento de emails, categorización de tickets, análisis de sentimiento, puntuación de leads. Este es el punto dulce. La tarea está bien definida, el formato de salida está restringido, y un modelo ajustado de 7B típicamente iguala o supera la precisión de GPT-4.

    Extracción de datos — Extraer datos estructurados de facturas, recibos, formularios, emails. Los modelos ajustados sobresalen aquí porque aprenden tu esquema específico y nombres de campos.

    Generación con plantillas — Redactar respuestas desde plantillas, generar descripciones de productos desde especificaciones, escribir emails de seguimiento basados en notas de reuniones. La salida sigue un patrón predecible que un modelo pequeño aprende rápidamente.

    Resumen — Condensar documentos, emails o transcripciones en puntos clave. Los modelos ajustados producen resúmenes que coinciden con tu estilo y extensión preferidos.

    Cuándo seguir usando APIs:

    • Razonamiento complejo de múltiples pasos a través de dominios diversos
    • Tareas que requieren información actualizada (noticias, eventos actuales)
    • Tareas creativas puntuales donde la consistencia no importa
    • Flujos con menos de 100 ejecuciones mensuales (los ahorros de costo no justifican la configuración)

    La regla 80/20 aplica: el 80% de tu gasto en automatización de IA probablemente viene del 20% de tus flujos. Apunta primero a esos flujos de alto volumen y tarea específica y capturarás la mayoría de los ahorros inmediatamente.

    Escalando el stack

    A medida que tu volumen de automatización crece, así escala el stack:

    10K-50K ejecuciones/mes: Un solo VPS con un modelo maneja esto fácilmente. Un modelo 7B en un VPS de 4 vCPU / 16GB RAM puede procesar 15-20 solicitudes por segundo para tareas cortas.

    50K-200K ejecuciones/mes: Podrías necesitar un VPS ligeramente más potente (8 vCPU / 32GB RAM, ~$50/mes) u optimizar con agrupación de modelos. Aún dramáticamente más barato que los costos de API.

    Más de 200K ejecuciones/mes: Considera ejecutar múltiples instancias de modelo detrás de un balanceador de carga simple. Dos instancias VPS de $30 te dan redundancia y doble rendimiento. Tu costo total de infraestructura es $75/mes comparado con más de $5,000 en costos de API.

    Múltiples modelos para diferentes tareas: Puedes ejecutar varios modelos ajustados en la misma instancia de Ollama. Uno para clasificación de emails, otro para extracción de datos, un tercero para resumen. Cada modelo se carga en memoria cuando se llama y se descarga cuando está inactivo. Un VPS de 16GB RAM puede servir 2-3 modelos 7B concurrentemente.

    Empieza hoy

    Aquí está la ruta mínima a tu primer flujo de IA sin costo:

    1. Elige tu flujo de IA de mayor volumen en n8n — el que se ejecuta con más frecuencia
    2. Exporta más de 300 ejemplos de ejecución como pares de entrada/salida
    3. Ajusta en Ertas — sube datos, elige Qwen 2.5 7B, entrena, exporta GGUF
    4. Despliega en Ollama — instala en tu VPS, carga el modelo, verifica el endpoint
    5. Intercambia el nodo — reemplaza el nodo OpenAI con un HTTP Request apuntando a Ollama
    6. Monitorea por una semana — compara salidas y confirma que la calidad coincide

    Una vez que hayas validado el primer flujo, repite para cada flujo de IA en tu instancia de n8n. La mayor parte del trabajo está en el Paso 2 (recopilar los datos). El fine-tuning y despliegue se vuelven rutina después de haberlo hecho una vez.

    Tus automatizaciones de n8n no deberían tener un impuesto por ejecución. Construye el stack una vez, ejecútalo para siempre.


    Ship AI that runs on your users' devices.

    Ertas early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Lectura adicional

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.

    Keep reading