MÓDULO 8 · CLOSED SOURCE MODELS · 20 MIN

Dos puertas a los modelos de Google

Los mismos modelos Gemini se sirven por dos planos distintos: Google AI Studio, con una clave estática, y Vertex AI, con un token OAuth2 que caduca. Lo que cambia entre ellos no es la calidad del modelo: es la credencial, la URL, quién paga y qué catálogo ves. Elegir plano es una decisión de infraestructura que tomas antes de escribir la primera línea.
01 — Topología
Los dos planos, lado a lado

La guía del módulo entra siempre por la izquierda. El ejercicio de Imagen te obliga a entrar por la derecha, y ahí es donde suele romperse la intuición: no falla el modelo, falla que estás llamando a otra puerta con la llave de la primera.

Google AI Studio

La puerta de la guía
  • Credencial: una API key, una cadena en tu .env.
  • Vive hasta que tú la revoques.
  • La URL no sabe nada de ti: ni proyecto ni región.
  • Alta en segundos, con cuota gratuita para desarrollo.
  • Catálogo: la familia Gemini.
generativelanguage.googleapis.com

Vertex AI (Google Cloud)

La puerta del ejercicio de Imagen
  • Credencial: una cuenta de servicio que canjeas por un token de vida corta.
  • El token caduca; hay que renovarlo.
  • La URL lleva dentro tu proyecto y tu región.
  • Alta: proyecto, facturación, API habilitada, rol IAM.
  • Catálogo: Gemini y el resto del Model Garden, Imagen incluido.
{REGION}-aiplatform.googleapis.com/v1/projects/{PROJECT_ID}/…
02 — Consecuencias
Qué cambia de verdad en tu código
DecisiónAI StudioVertex AI
Qué guardas en secretoUna cadenaUn fichero JSON de credenciales
Vida de la credencialIndefinidaCorta: el token expira y se renueva
La URL identifica…Nada tuyoProyecto y región
Quién pagaTu cuenta personalEl proyecto de Cloud, con su facturación
Coste de arranqueMinutosVarios pasos de IAM antes de la primera llamada

La fila de la vida de la credencial es la que más código cambia. Con AI Studio lees la clave una vez al arrancar y ya no vuelves a pensar en ella. Con Vertex AI, la credencial es un objeto con estado: pedir un token y guardarlo para siempre funciona en la primera ejecución y falla en la siguiente.

// una clave que no caduca es cómoda hasta el día que aparece en un commit

Y una consecuencia menos obvia: el 400 Bad Request / User location is not supported que la guía lista en su tabla de errores es un problema del plano, no del modelo. La disponibilidad por región no es la misma en las dos puertas, así que un mismo modelo puede responderte por una y rechazarte por la otra.

03 — Nomenclatura
Los nombres de modelo que aparecen en el material

Antes de copiar un GenerativeModel('…') de la guía, mira lo que la propia guía escribe. Esto es un inventario literal, no una interpretación:

Dónde apareceNombre que escribe la guía
Primer script de generación de textogemini-1.5-flash
Ejemplo de GenerationConfig, misma leccióngemini-1.2-flash
Puente con LangChain, misma leccióngemini-2.5-flash
Validación de esa misma lecciónmodels/gemini-2.5-flash

Cuatro nombres en una sola lección de treinta minutos. Ese models/ del cuarto no es un descuido: es el identificador completo que devuelve el listado de la API, mientras que el constructor acepta la forma corta. Los otros tres sí piden explicación.

# El listado es la fuente de verdad, no el PDF
for m in genai.list_models():
    if 'generateContent' in m.supported_generation_methods:
        print(m.name)
Auditoría Dos preguntas para responder tú, no para creerte. Una: ¿cuál de esos cuatro nombres responde hoy cuando corres el listado de arriba, y hubo alguna vez una serie gemini-1.2? Si no aparece, ¿es un error tipográfico de la guía o un modelo retirado? Dos: la guía instala google-generativeai y hace import google.generativeai as genai en los cinco scripts del módulo. ¿Sigue siendo ese el paquete que Google recomienda para código nuevo, o hay un SDK posterior con otro nombre de import? La respuesta no cambia una línea: cambia la primera línea de todos los scripts que escribas a partir de aquí.
Para hacer
Contrastar el PDF con la API

Corre el listado de arriba con tu clave y compara la salida con los cuatro nombres de la tabla. Anota en auditoria/ cuáles existen, cuáles no y qué versión del paquete tienes instalada (pip show google-generativeai). Es un minuto de trabajo y te ahorra depurar un 404 creyendo que el problema es tu clave.