Descripcion general
Google ofrece dos SDKs oficiales:@google/genai (JavaScript / TypeScript) y google-genai (Python), que cubren todos los endpoints de la API de Gemini. Al apuntar la baseUrl al gateway de AIHubMix y usar tu API Key de la plataforma, puedes invocar Interactions, Embeddings, Context Caching y otras capacidades no cubiertas por la capa compatible con OpenAI a traves del SDK nativo, sin modificar ningun codigo de negocio.
Inicio rapido
Instalacion
Inicializar el cliente
Interactions API
Interactions es la interfaz de inferencia de nueva generacion de Gemini. Devuelve objetosInteraction estructurados y admite generacion de texto, generacion nativa de imagenes (Nano Banana) y razonamiento en multiples pasos. Se admiten tanto el modo sincrono (interactions.create()) como el modo asincrono (Background Interactions: create(background: true) + get / cancel / delete).
Generacion de texto
Llama ainteractions.create() para iniciar una inferencia. El objeto Interaction devuelto proporciona la propiedad de conveniencia output_text para obtener directamente la ultima salida de texto del modelo.
Generacion nativa de imagenes
Configura la modalidad de salida como imagen medianteresponse_format. El objeto Interaction devuelto proporciona la propiedad de conveniencia output_image, cuyo campo data contiene los datos de imagen codificados en Base64.
Parametros de response_format:
Salida en streaming
Pasastream: true para habilitar la transmision en streaming mediante Server-Sent Events (SSE). Los eventos llegan en el siguiente orden:
event.delta.text; el campo de tipo de evento es event_type.
JavaScript
Modo asincrono (Background Interactions)
Pasabackground: true para iniciar una inferencia en segundo plano. La solicitud devuelve de inmediato un objeto Interaction con status igual a in_progress y con id como identificador de la tarea, mientras el modelo continua la inferencia en segundo plano. Consulta interactions.get(id) mediante polling para obtener el resultado, con un intervalo recomendado de 3 a 5 segundos. Resulta adecuado para inferencias largas y evita mantener una conexion persistente.
Cancelar y eliminar
JavaScript
Embeddings
Obtiene representaciones vectoriales (embeddings) de contenido textual o multimodal a traves del endpointembedContent.
embedContent
Obtener embeddings por lotes
Pasa un array deContent al parametro contents de embedContent para obtener embeddings de multiples textos en una sola llamada:
JavaScript
Modelos y parametros disponibles
gemini-embedding-001 admite la especificacion del proposito del embedding mediante config.taskType para optimizar la calidad vectorial en tareas posteriores especificas:
gemini-embedding-2-preview no admite el parametro taskType. En su lugar, el tipo de tarea se especifica mediante un prefijo en el prompt (p. ej., search_query: ... o search_document: ...).Context Caching (Cache explicito)
El cache explicito permite a los desarrolladores crear, consultar, referenciar y eliminar manualmente objetosCachedContent, ideal para escenarios donde el mismo contexto extenso necesita reutilizarse en multiples solicitudes. A diferencia del cache implicito, el cache explicito gestiona activamente el ciclo de vida desde el lado de la aplicacion.
El cache explicito solo esta disponible para la API
generateContent. La Interactions API solo admite cache implicito.Crear CachedContent
Crea un cache mediantecaches.create(). ttl (Time-To-Live) controla el periodo de validez del cache; al expirar, se elimina automaticamente.
Referenciar cache en generateContent
Pasacache.name al parametro cachedContent (JS) o cached_content (Python) para utilizar el cache durante la inferencia. El numero de tokens acertados se refleja en usageMetadata.cachedContentTokenCount.
Consultar y eliminar
Matriz de capacidades admitidas
Preguntas frecuentes
interactions.create() devuelve un error de legacy schema
interactions.create() devuelve un error de legacy schema
La version del SDK es demasiado antigua.
@google/genai debe ser >= 2.0.0 y google-genai debe ser >= 2.0.0. Ejecuta npm install @google/genai@latest o pip install -U google-genai para actualizar a la ultima version.El modelo devuelve 404 Not Found
El modelo devuelve 404 Not Found
Algunos nombres de modelos anteriores (como
gemini-2.5-flash-image-preview) han sido retirados de la Interactions API. Usa identificadores de modelo actuales como gemini-3.1-flash-image (Nano Banana 2). La API generateContent no se ve afectada.response_modalities devuelve 400 Bad Request
response_modalities devuelve 400 Bad Request
Los valores de
response_modalities en la Interactions API deben estar en minusculas ("text", "image"). Las mayusculas "TEXT" / "IMAGE" son la sintaxis de la API generateContent y no son aceptadas en la Interactions API.El polling de una tarea asincrona devuelve 400 / 403
El polling de una tarea asincrona devuelve 400 / 403
El resultado aun no esta listo. Antes de que termine la generacion,
interactions.get() devuelve 400 o 403. Continua el polling cada 3 a 5 segundos en lugar de darlo por fallido. Cuando se devuelva 200, lee status para determinar el estado terminal.Eliminar una tarea asincrona devuelve 409
Eliminar una tarea asincrona devuelve 409
La tarea aun no ha alcanzado un estado terminal. Recupera primero el resultado terminal con polling de
interactions.get() y llama despues a interactions.delete().Se puede usar vertexai: true?
Se puede usar vertexai: true?
No. El modo
vertexai: true del SDK requiere GCP OAuth + parametros project/location, y es incompatible con apiKey (el SDK lanza Project/location and API key are mutually exclusive). Al integrarte a traves de AIHubMix, usa la forma Gemini Developer API — el backend enruta automaticamente.La creacion de cache reporta: context caching is not available for model
La creacion de cache reporta: context caching is not available for model
El gateway bloquea las solicitudes
caches.create() para modelos sin precios de almacenamiento configurados, para evitar costos de almacenamiento no contabilizados. Los modelos principales (gemini-2.5-flash, gemini-2.5-pro, etc.) ya estan configurados. Si encuentras este error, verifica que el modelo admita cache explicito.Ultima actualizacion: 2026-08-14