Mi flujo de trabajo actual sigue recibiendo errores al hacer inferencia en el nodo Google Vertex Chat Model debido a una solicitud incorrecta. Hasta donde puedo ver, el mensaje indicador está escrito correctamente, por lo que debería funcionar. El modelo que estoy intentando usar es ‘gemini-3.1-flash-lite’.
¡Hola @Irrazional! ¡Bienvenido!
En Vertex, gemini-3.1-flash-lite solo se sirve en el endpoint de la región global, por lo que una credencial fijada a una ubicación específica (cualquier región us- o europe-) devuelve este 400. Los modelos 2.5 aún se ejecutan en endpoints regionales, pero los modelos 3.x se trasladaron solo a global. Abre tu credencial de Google Service Account, establece Region en global, y si global no aparece en el menú desplegable, activa Expression (fx) en ese campo e ingresa global manualmente, luego vuelve a ejecutar.
Ve esto:
n8n 2.29.0 también incluye manejo de este lado del nodo, por lo que actualizar desde 2.27.3 ayuda junto con el cambio de región.
Por separado, este es un modelo de chat de texto, por lo que devuelve texto, no imágenes. Para generar las imágenes que describe tu prompt, usa un modelo de imagen como Gemini 3.1 Flash Image (Nano Banana) a través del nodo HTTP Request, no del AI Agent.
¡Ah, muchas gracias, el error está resuelto! Pero es verdad lo que mencionaste, todavía no puedo generar imágenes con este flujo de trabajo. ¿Quizás conoces una guía paso a paso que pueda ayudarme a configurar esa parte del flujo?
Hola @Irrazional
El nodo integrado de Google Gemini tiene una operación “Generar una imagen” para exactamente esto, sin necesidad de configuración HTTP. Pasos:
Añade un nodo de Google Gemini.
Crea una credencial de “Google Gemini (PaLM) API” con una clave API de Google AI Studio (aistudio.google.com) y selecciónala en el nodo.
Establece Resource en “Image” y Operation en “Generate an Image”.
Coloca tu texto de indicación en el campo “Prompt” (el mismo texto que tenías en el AI Agent).
Devuelve la imagen como binaria, así que conéctala directamente a tu nodo de carga de Google Drive existente.
Esto reemplaza el par de AI Agent y Vertex Chat Model para el paso de imagen.
Mira esto:
Oh, disculpa, se me olvidó aclarar de mi parte. Estoy intentando resolver esto a través de Vertex AI porque Gemini ya no admite el uso del crédito gratuito de $300 de GCP. El equipo de soporte de facturación de Google me ayudó a configurarlo a través de Vertex AI en lugar de AI Studio, ya que dijeron que es posible usar esos créditos. ¿Hay alguna forma de que pueda configurar la conexión al modelo 3.1 Flash Image Lite a través de Vertex?
Hemos examinado este problema y no podemos confirmar que sea un bug. Por ahora hemos cerrado el ticket interno, pero si empieza a parecer que es un bug, nuestro equipo de moderación lo marcará de nuevo.
Hola @Irrazional
El nodo Vertex Chat Model no puede hacer esto, es un subnodo LangChain solo de texto, y n8n no tiene un nodo Vertex de imagen integrado, así que en Vertex el modelo de imagen debe llamarse con el nodo HTTP Request usando tu credencial de Service Account existente. Eso mantiene todo en la facturación de GCP, así que tu crédito de $300 sigue siendo válido. Una corrección sobre el modelo: el modelo de imagen es gemini-3.1-flash-image-preview (Nano Banana), no existe flash-image-lite, los niveles -lite son solo texto. Confirma el ID exacto en Model Garden para tu proyecto.
Configuración:
Abre tu credencial de Google Service Account, activa «Set up for use in HTTP Request node», añade el alcance https://www.googleapis.com/auth/cloud-platform y guarda.
Añade un nodo HTTP Request, método POST, Autenticación configurada a Predefined Credential Type > Google Service Account API, y selecciona esa misma credencial.
URL (punto de conexión global, ya que los modelos 3.x son solo globales, la misma razón que tu corrección de región anterior):
Activa Send Body, Body Content Type JSON. Pon todo el cuerpo en modo expresión (comienza el campo con =) para que la etiqueta se interpole, y solicita una imagen con responseModalities:
La imagen vuelve como base64 en candidates[0].content.parts[0].inlineData.data. Añade un nodo Convert to File (cadena base64 a archivo) para convertirlo en binario, luego aliméntalo en tu nodo de carga de Drive existente. Google Service Account | Nodes | n8n Docs
Un 400 Bad Request del Modelo Google Vertex Chat generalmente significa que la API recibió tu solicitud, pero el payload o la configuración estaban mal formados. No es un timeout de red ni un bloqueo de autenticación (que típicamente lanzarían un 401 o 403).
Basándome en los detalles que proporcionaste, aquí están los culpables más probables y cómo solucionarlos:
1. ID de Proyecto de Google Cloud Incorrecto (Más Crítico)
Tu nodo actualmente está usando algo como gen-lang-client-... como projectId. Esto parece un ID de cliente interno, no un ID de Proyecto de Google Cloud estándar.
Ve a tu Consola de Google Cloud.
Haz clic en el selector de proyecto en la parte superior.
Copia tu ID de Proyecto real (generalmente es una cadena en minúsculas con guiones, como my-gemini-project-12345).
Reemplaza el valor actual en ambos nodos de Google Vertex con este ID correcto.
2. Credenciales Faltantes o no Vinculadas
Si tu JSON de flujo de trabajo muestra credentials: {}, el nodo no está explícitamente vinculado a una credencial de Google Cloud. Depender de credenciales de host predeterminadas a veces puede fallar.
En n8n, ve a Credenciales y crea una nueva credencial “Google Cloud API”.
En Google Cloud (IAM & Admin > Service Accounts), crea una Cuenta de Servicio con permisos “Vertex AI User”.
Genera una clave JSON para esta cuenta, descárgala y pega su contenido en tu credencial de n8n.
Vuelve a tu flujo de trabajo y selecciona explícitamente esta nueva credencial en ambos nodos de Vertex.
3. Habilita la API de Vertex AI
Como una verificación rápida, asegúrate de que la “API de Vertex AI” esté realmente habilitada para tu proyecto específico en la Consola de Google Cloud (APIs & Services > Library).
Una vez que el ID de Proyecto esté corregido y la Cuenta de Servicio esté correctamente vinculada, el error 400 debería desaparecer. ¡Déjame saber si esto funciona para ti!