Gemini
TL;DR
ONGRID_GEMINI_API_KEY=...
ONGRID_GEMINI_MODEL=gemini-2.5-pro # default
ONGRID_GEMINI_BASE_URL= # defaults to generativelanguage.googleapis.com OAI modeProvider id: gemini. Adapter SDK: modo de compatibilidad OpenAI sobre la API generativelanguage de Google.
Env vars
| Var | Default | Notas |
|---|---|---|
ONGRID_GEMINI_API_KEY | — | Vacío = provider descartado |
ONGRID_GEMINI_MODEL | gemini-2.5-pro | Modelo default |
ONGRID_GEMINI_BASE_URL | https://generativelanguage.googleapis.com/v1beta/openai | Endpoint OpenAI-compat |
ONGRID_GEMINI_MODELS | gemini-3.5-flash,gemini-2.5-pro,gemini-2.5-flash | Lista de catálogo |
Catálogo default
gemini-3.5-flash— frontier; rápido y sorprendentemente barato.gemini-2.5-pro— el default del catálogo; balanceado.gemini-2.5-flash— el barato.
Por qué el endpoint OAI-compat
Gemini tiene dos superficies de API:
- La nativa de Google
generativelanguage.googleapis.com/v1beta/— formagenerateContent, distinta de la de OpenAI. - Una capa de compatibilidad OpenAI en
.../v1beta/openai/— acepta requests estilo OpenAIchat/completions, devuelve respuestas con forma OpenAI.
Ongrid usa #2. La capa de compatibilidad significa que el adapter eino-openai funciona sin cambios, y tool calls / system messages / streaming se comportan como con cualquier slot de provider. Sin manejo especial.
Si necesitas una feature Gemini-only que la superficie OAI-compat no expone (p. ej. inputs de media que la forma OAI no puede representar), deja caer un adapter custom — eso está fuera de la configuración soportada.
Haciendo a Gemini el default
ONGRID_LLM_DEFAULT_PROVIDER=geminiBaseURL
El default rutea por generativelanguage.googleapis.com. Usa el override de BaseURL para:
- Endpoints de proxy de Vertex AI (típicamente
us-central1-aiplatform...). - Relays corporativos de Google Cloud.
El hint mostrado en la UI de Settings para este campo es "Google generativelanguage.googleapis.com (OpenAI compatibility mode)".
Quirks
- Restricciones de región — algunos modelos Gemini no están disponibles en cada región. Un 403 del upstream aterriza en la transcripción de chat como un error API regular; revisa la matriz de región del provider si obtienes esto.
- Safety filters — los content filters de Google pueden devolver un mensaje vacío con un
finishReason: SAFETY. El adapter de Ongrid lo renderiza como un mensaje explícito "blocked by safety filter" en el chat en vez de una respuesta vacía. - Vision — los inputs de imagen funcionan sobre la capa OAI-compat usando el bloque de contenido estándar
image_url; la superficie de BaseTool todavía no expone params de imagen.