n8n con UberLLM: modelos de Agente de IA más baratos y generación de video
Crea una credencial n8n de OpenAI con tu clave de UberLLM y la Base URL https://api.uberllm.dev/v1,, úsala en un nodo de Modelo de Chat de OpenAI con "Use Responses API" desactivado, y elige cualquier modelo de UberLLM. Para video, llama a /v1/video/generations con el nodo de Solicitud HTTP y consulta hasta que el trabajo termine.
Parte 1: modelos de chat en el Agente de IA
- Crea una clave en tu página de claves y añade crédito.
- En n8n ve a Credentials → Create credential → OpenAI.
- Rellena:
- API Key: tu clave
ull_… - Base URL:
https://api.uberllm.dev/v1Deja el ID de organización vacío. Guarda: n8n prueba la credencial listando modelos, y debería pasar.
- API Key: tu clave
- En tu flujo de trabajo, añade un nodo de Agente de IA y, como su modelo de chat, un nodo de OpenAI Chat Model usando esa credencial.
- En el nodo de OpenAI Chat Model:
- Model: elige Por ID e introduce
deepseek/deepseek-v4.1-flash(o selecciona de la lista, que ahora muestra los modelos de UberLLM) - Desactiva Use Responses API. Está activado por defecto en versiones recientes de n8n. UberLLM también sirve la Responses API, pero este flujo de trabajo fue probado con chat completions.
- Model: elige Por ID e introduce
- Ejecuta el flujo de trabajo.
La misma credencial funciona en la Basic LLM Chain y otros nodos que usan un modelo de chat.
Usa el Agente de IA o la Basic LLM Chain con el nodo de OpenAI Chat Model, o el nodo de HTTP Request de abajo. La acción "Message a model" del nodo "OpenAI" independiente siempre llama a la Responses API, y sus herramientas integradas (búsqueda web, búsqueda de archivos) se ejecutan solo en los propios servidores de OpenAI.
Parte 2: hacer un video con solicitud HTTP
Un video tarda un minuto o más, así que es un trabajo: iniciarlo, esperar, verificar, repetir hasta que esté hecho.
Credencial. Crea una credencial Bearer Auth con Bearer Token = tu clave ull_…. (O elige la credencial de OpenAI de la Parte 1 en Tipo de Credencial Predefinida; envía el mismo encabezado.)
Nodo 1, solicitud HTTP (iniciar el trabajo)
- Método: POST
- URL:
https://api.uberllm.dev/v1/video/generations - Autenticación: Tipo de Credencial Genérica → Bearer Auth
- Enviar Cuerpo: activado, JSON:
{
"model": "fal-ai/vidu/q3/text-to-video/turbo",
"prompt": "a red ball bouncing on green grass, slow motion",
"duration_seconds": 5
}
La respuesta tiene el trabajo id, status (queued) y estimated_cost_usd.
Nodo 2, Esperar: Reanudar = Después de un Intervalo de Tiempo, 10 segundos.
Nodo 3, solicitud HTTP (verificar el trabajo)
- Método: GET
- URL:
https://api.uberllm.dev/v1/video/generations/{{ $('HTTP Request').item.json.id }}(usa el nombre de tu primer nodo) - Misma credencial Bearer Auth
Nodo 4, Si: {{ $json.status }} es queued o running → conecta de nuevo al nodo Esperar. De lo contrario, continúa.
Nodo 5: cuando status es succeeded, el enlace del video está en results[0].url. Descárgalo con una solicitud HTTP más (GET, misma credencial, y en Opciones → Respuesta establece Formato de Respuesta en Archivo) o pasa el enlace. failed viene con error.message en palabras sencillas, y un trabajo fallido no cuesta nada.
Cada modelo solo produce ciertas longitudes y tamaños. Si pides uno que no produce, la primera solicitud es rechazada con un mensaje que enumera lo que sí produce, antes de que se cobre nada. Las opciones de cada modelo están en su página.
Solución de problemas
- La prueba de credenciales falla: La Base URL debe ser
https://api.uberllm.dev/v1exactamente; la clave no debe tener espacios. - 404 del OpenAI Chat Model: a la Base URL de la credencial le falta
/v1. - El agente nunca llama a las herramientas: elige un modelo de la primera tabla; los modelos muy pequeños omiten las herramientas.
- 400
wrong_endpoint: se envió un modelo de video al nodo de chat, o un modelo de chat a la URL de video. - El bucle nunca termina: el nodo If debe comparar
status, y el Wait debe ir antes de cada verificación. - 402 créditos insuficientes: añade crédito en la página de créditos. Un video retiene su
max_cost_usdmientras se ejecuta.
Sigue leyendo
- Página de referencia: [documentación n8n]](/docs/n8n), y [flujos de trabajo de video predefinidos n8n para importar]](/docs/n8n-video)
- [Crear un video o imagen: cada campo]](/docs/media)
- [Precios de la API de video]](/video-api-pricing)