¿Cómo conectar "vllm gpt-oss-20b" ejecutándose localmente desde n8n?

Describe el problema/error/pregunta

Quiero acceder a mi llm local (vllm gpt-oss-20b) con url (http://localhost:8000/v1). ¿Cómo puedo conectarme?

¿Cuál es el mensaje de error (si hay alguno)?

Por favor comparte tu flujo de trabajo

(Selecciona los nodos en tu lienzo y usa los atajos de teclado CMD+C/CTRL+C y CMD+V/CTRL+V para copiar y pegar el flujo de trabajo.)

Comparte el resultado devuelto por el último nodo

Información sobre tu configuración de n8n

  • versión de n8n: 2.29.8
  • Base de datos (predeterminada: SQLite): predeterminada
  • configuración n8n EXECUTIONS_PROCESS (predeterminada: own, main):
  • Ejecutando n8n a través de (Docker, npm, n8n cloud, aplicación de escritorio):
  • Sistema operativo:

hola @doyoungim999

Depende de cómo tengas instalado n8n. Si es un contenedor Docker, tendrás que mover el LLM a otro contenedor Docker y acceder a él por el nombre del contenedor (lo más simple), o permitir el acceso desde el contenedor Docker al servicio del host

¡Bienvenido @doyoungim999!

vLLM expone una API compatible con OpenAI, por lo que puedes usar el nodo OpenAI Chat Model en n8n para conectarte a ella. En la credencial de OpenAI, establece la URL base en http://localhost:8000/v1 (o la dirección IP del host real si n8n se ejecuta en Docker - usa http://host.docker.internal:8000/v1 en Mac/Windows, o la dirección IP de LAN de tu máquina en Linux). Pon cualquier cadena no vacía como clave API ya que vLLM no requiere autenticación de forma predeterminada. Luego en el nodo OpenAI Chat Model, escribe el nombre del modelo manualmente - debe coincidir con el ID del modelo que vLLM está sirviendo (verifica con curl http://localhost:8000/v1/models`).

@nguyenthieutoan lo clavó, Localhost es lo que te está atrapando aquí. Cámbialo a tu dirección IP de LAN:8080

vLLM ya expone una API compatible con OpenAI, así que no necesitas un nodo especial — usa el nodo OpenAI apuntando a tu servidor local.

Paso a paso:

  1. Crea una credencial “OpenAI” en n8n.
  2. En Base URL coloca la dirección de tu vLLM terminando en /v1 (en tu caso, localhost en el puerto 8000 seguido de /v1). El /v1 al final es esencial — es el path que vLLM sirve.
  3. En el campo API Key, vLLM normalmente no exige clave, pero n8n requiere que el campo esté rellenado: pon cualquier valor, p. ej.: sk-local.
  4. En el nodo, en Model, usa exactamente el nombre que vLLM está sirviendo (el --served-model-name / --model, probablemente gpt-oss-20b). Si el nombre no coincide, da error de model not found.

Trampa más común: si n8n corre en Docker, localhost apunta al contenedor y no a tu máquina. En ese caso cambia localhost por host.docker.internal (Mac/Windows) o por la IP de tu máquina en la LAN, manteniendo el puerto 8000 y el /v1. Para confirmar que la URL es correcta antes de conectarla en n8n, haz un curl al endpoint /v1/models — si lista el gpt-oss-20b, solo replica la misma dirección en la credencial.

Oye, entonces: probablemente el problema es que tu n8n se ejecuta dentro de Docker, y allí “localhost” no es tu computadora, es el contenedor mismo. Entonces cuando le dices que busque vLLM en localhost:8000, está buscando dentro de sí mismo, donde obviamente no hay nada, y lanza el error.

La solución es cambiar la Base URL a esto:

http://host.docker.internal:8000/v1

Si estás en Linux también necesitas iniciar n8n con --add-host host.docker.internal:host-gateway, de lo contrario no reconocerá esa dirección (o, más simple, simplemente coloca la IP de tu máquina directamente).

Luego dos cosas rápidas: asegúrate de haber iniciado vLLM con --host 0.0.0.0 (de lo contrario solo escucha a sí mismo), y en el campo API Key simplemente escribe algo aleatorio como dummy, porque n8n lo requiere aunque vLLM no lo use.

El único caso donde localhost habría funcionado es si n8n no está en Docker sino instalado directamente en tu máquina — pero probablemente no sea tu configuración, así que usa host.docker.internal y deberías estar bien.

Fuentes (documentación de n8n — las páginas de Ollama, pero la solución de Docker localhost se aplica igual a vLLM ya que usa la misma API compatible con OpenAI):

@Michael_Frostbutter después de que cambié la IP (http://x.x.x.x:8000/v1) puedo acceder exitosamente. Gracias

gracias, funciona. Cambié a x.x.x.x en lugar de localhost.

Encantado de ayudar, localhost nunca se resolverá dentro de un contenedor docker.

@doyoungim999

Una nota aquí. Si lo aloja en un dispositivo que alguna vez sale de tu LAN y se conecta a otra red, tu dirección IP cambiará, además, si no tienes una reserva DHCP en tu enrutador doméstico para ese dispositivo, también existe la posibilidad de que tu dirección IP cambie y se rompa.

como se mencionó anteriormente, intenta host.docker.internal:PORT y si eso se resuelve, esa es la solución duradera que soluciona ambos problemas con una IP estática anterior