Skip to main content

Visao geral

O Google fornece dois SDKs oficiais: @google/genai (JavaScript / TypeScript) e google-genai (Python), cobrindo todos os endpoints da API Gemini. Ao apontar a baseUrl para o gateway do AIHubMix e usar sua API Key da plataforma, voce pode invocar Interactions, Embeddings, Context Caching e outras capacidades nao cobertas pela camada compativel com OpenAI atraves do SDK nativo, sem modificar nenhum codigo de negocio.

Inicio rapido

Instalacao

A Interactions API requer @google/genai >= 2.0.0 ou google-genai >= 2.0.0. Requisicoes com versoes anteriores do SDK serao rejeitadas pelo backend do Google (legacy Interactions schema no longer supported).

Inicializar o cliente

A baseUrl e fixa: https://aihubmix.com/gemini, diferente do endpoint compativel com OpenAI https://aihubmix.com/v1.

Interactions API

Interactions e a interface de inferencia de nova geracao do Gemini. Ela retorna objetos Interaction estruturados e suporta geracao de texto, geracao nativa de imagens (Nano Banana) e raciocinio em multiplas etapas. Tanto o modo sincrono (interactions.create()) quanto o modo assincrono (Background Interactions: create(background: true) + get / cancel / delete) sao suportados.

Geracao de texto

Chame interactions.create() para iniciar uma inferencia. O objeto Interaction retornado fornece a propriedade de conveniencia output_text para obter diretamente a ultima saida de texto do modelo.

Geracao nativa de imagens

Configure a modalidade de saida como imagem via response_format. O objeto Interaction retornado fornece a propriedade de conveniencia output_image, cujo campo data contem os dados da imagem codificados em Base64.
  • Modelo recomendado: gemini-3.1-flash-image (Nano Banana 2, modelo universal de geracao de imagens).
  • Os valores de response_modalities devem estar em minusculas: ['text', 'image']; maiusculas sao a sintaxe da API generateContent e retornam um 400 na Interactions API.
  • Nao envie delivery: 'inline' (400 Image delivery mode is not supported) — a Interactions API retorna dados de imagem em modo inline por padrao.
Parametros de response_format:

Saida em streaming

Passe stream: true para habilitar a transmissao em streaming via Server-Sent Events (SSE). Os eventos chegam na seguinte ordem:
O texto incremental e obtido via event.delta.text; o campo de tipo de evento e event_type.
JavaScript

Modo assincrono (Background Interactions)

Passe background: true para iniciar uma inferencia em segundo plano. A requisicao retorna imediatamente um objeto Interaction com status igual a in_progress e com id como identificador da tarefa, enquanto o modelo continua a inferencia em segundo plano. Faca polling em interactions.get(id) para obter o resultado, com intervalo recomendado de 3 a 5 segundos. Isso serve para inferencias demoradas e dispensa manter uma conexao persistente.
Enquanto o resultado nao esta pronto, get() retorna 400 ou 403. Isso indica que a geracao ainda nao terminou, portanto continue o polling em vez de tratar como falha. Somente uma resposta 200 traz um status terminal (completed / failed / cancelled).
O id comeca com iact1_. Guarde-o exatamente como veio e use-o em todas as chamadas seguintes de get / cancel / delete. Nao trunque nem reescreva.

Cancelar e excluir

JavaScript
  • background e stream nao podem ser usados juntos. Se ambos forem enviados, stream nao tem efeito e uma resposta JSON comum e retornada, fazendo o SDK falhar por nao obter o objeto de stream.
  • Modelos de imagem (como gemini-3.1-flash-image) nao suportam o modo assincrono. Enviar background: true retorna 400 Model 'xxx' does not support background interactions. Use o modo sincrono para geracao de imagens.

Embeddings

Obtenha representacoes vetoriais (embeddings) de conteudo textual ou multimodal atraves do endpoint embedContent.
Para o endpoint compativel com OpenAI /v1/embeddings, consulte Embeddings vetoriais.

embedContent

Obter embeddings em lote

Passe um array de Content ao parametro contents de embedContent para obter embeddings de multiplos textos em uma unica chamada:
JavaScript

Modelos e parametros disponiveis

gemini-embedding-001 suporta a especificacao do proposito do embedding via config.taskType para otimizar a qualidade vetorial em tarefas posteriores especificas:
gemini-embedding-2-preview nao suporta o parametro taskType. Em vez disso, o tipo de tarefa e especificado por um prefixo no prompt (p. ex., search_query: ... ou search_document: ...).

Context Caching (Cache explicito)

O cache explicito permite que desenvolvedores criem, consultem, referenciem e excluam manualmente objetos CachedContent, ideal para cenarios onde o mesmo contexto longo precisa ser reutilizado em multiplas requisicoes. Diferentemente do cache implicito, o cache explicito gerencia ativamente o ciclo de vida pelo lado da aplicacao.
O cache explicito esta disponivel apenas para a API generateContent. A Interactions API suporta apenas cache implicito.
Modelos sem precos de armazenamento configurados serao bloqueados pelo gateway em requisicoes de criacao de cache (context caching is not available for model), para evitar custos de armazenamento nao contabilizados. Os modelos principais (gemini-2.5-flash, gemini-2.5-pro, etc.) ja estao configurados.

Criar CachedContent

Crie um cache via caches.create(). ttl (Time-To-Live) controla o periodo de validade do cache; ao expirar, e excluido automaticamente.

Referenciar cache em generateContent

Passe cache.name ao parametro cachedContent (JS) ou cached_content (Python) para utilizar o cache durante a inferencia. O numero de tokens em cache utilizados e refletido em usageMetadata.cachedContentTokenCount.

Consultar e excluir


Matriz de capacidades suportadas


Perguntas frequentes

A versao do SDK esta muito antiga. @google/genai deve ser >= 2.0.0 e google-genai deve ser >= 2.0.0. Execute npm install @google/genai@latest ou pip install -U google-genai para atualizar para a versao mais recente.
Alguns nomes de modelos anteriores (como gemini-2.5-flash-image-preview) foram descontinuados na Interactions API. Use identificadores de modelos atuais como gemini-3.1-flash-image (Nano Banana 2). A API generateContent nao e afetada.
Os valores de response_modalities na Interactions API devem estar em minusculas ("text", "image"). Maiusculas "TEXT" / "IMAGE" sao a sintaxe da API generateContent e nao sao aceitas na Interactions API.
O resultado ainda nao esta pronto. Antes de a geracao terminar, interactions.get() retorna 400 ou 403. Continue o polling a cada 3 a 5 segundos em vez de tratar como falha. Quando 200 for retornado, leia status para determinar o estado terminal.
A tarefa ainda nao atingiu um estado terminal. Obtenha primeiro o resultado terminal com polling de interactions.get() e depois chame interactions.delete().
Nao. O modo vertexai: true do SDK requer GCP OAuth + parametros project/location, e e incompativel com apiKey (o SDK lanca Project/location and API key are mutually exclusive). Ao integrar via AIHubMix, use a forma Gemini Developer API — o backend roteia automaticamente.
O gateway bloqueia requisicoes caches.create() para modelos sem precos de armazenamento configurados, para evitar custos de armazenamento nao contabilizados. Os modelos principais (gemini-2.5-flash, gemini-2.5-pro, etc.) ja estao configurados. Se encontrar esse erro, verifique se o modelo suporta cache explicito.

Ultima atualizacao: 2026-08-14