generateContent, batchEmbedContents, Imagen predict). Switch to the
OpenAI-compatible endpoint when you need compatibility behavior the native
adapter does not implement yet (notably remote image_url values).
Configure
config.yaml:
USE_GOOGLE_GEMINI_NATIVE_API is still honored as a legacy global toggle
when per-provider GEMINI_API_MODE is unset. Prefer GEMINI_API_MODE.Base URLs
GoModel keeps separate internal bases for native Gemini and the OpenAI-compatible API:- native chat/models:
https://generativelanguage.googleapis.com/v1beta - OpenAI-compatible:
https://generativelanguage.googleapis.com/v1beta/openai
GEMINI_BASE_URL overrides them. When the value ends in /openai, GoModel
uses it for the OpenAI-compatible client and derives the native base by
stripping /openai. Files and batches always use the OpenAI-compatible
surface; chat, embeddings, and images follow the API mode.
Embeddings
In native mode, embeddings are served throughmodels/{model}:batchEmbedContents.
dimensions maps to outputDimensionality and encoding_format: "base64" is
honored. Gemini reports no embedding token usage on either API surface, so
embedding responses carry zero token counts and the usage row is flagged with
a cost-calculation caveat.
Image generation and edits
In native mode the OpenAI-compatible image endpoints work with Gemini image models (gemini-2.5-flash-image, …, via
generateContent). Google retired Imagen from the AI Studio API in August
2026; Imagen is still served on Vertex AI. Image edits
require native mode and a Gemini image model; masks are not supported. See the
Images API provider notes for parameter
mapping and pricing details.
Image input
For URL-hosted images in native mode, Google’s own examples fetch the URL
first and send the bytes to
generateContent.
Not yet integrated
- Automatic fetching of remote
image_urlvalues in native mode. - Uploading remote images through the Gemini Files API before a chat request.