Gemini
TL;DR
ONGRID_GEMINI_API_KEY=...
ONGRID_GEMINI_MODEL=gemini-2.5-pro # padrão
ONGRID_GEMINI_BASE_URL= # padrão generativelanguage.googleapis.com em modo OAIProvider id: gemini. Adapter SDK: modo de compatibilidade OpenAI na API generativelanguage do Google.
Env vars
| Var | Padrão | Notas |
|---|---|---|
ONGRID_GEMINI_API_KEY | — | Vazio = provider removido |
ONGRID_GEMINI_MODEL | gemini-2.5-pro | Modelo padrão |
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 do catálogo |
Catálogo padrão
gemini-3.5-flash— frontier; rápido e surpreendentemente barato.gemini-2.5-pro— o padrão do catálogo; balanceado.gemini-2.5-flash— o barato.
Por que o endpoint OAI-compat
O Gemini tem duas superfícies de API:
- Nativa do Google
generativelanguage.googleapis.com/v1beta/— formatogenerateContent, distinto do OpenAI. - Uma camada de compatibilidade OpenAI em
.../v1beta/openai/— aceita requests estilo OpenAIchat/completions, retorna respostas em formato OpenAI.
O Ongrid usa #2. A camada de compatibilidade significa que o adapter eino-openai funciona sem mudanças, e tool calls / system messages / streaming todos se comportam como o slot de qualquer outro provider. Sem tratamento especial.
Se você precisa de uma feature Gemini-only que a superfície OAI-compat não expõe (ex.: inputs de mídia que o formato OAI não consegue representar), entre com um adapter custom — isso está fora da configuração suportada.
Tornando o Gemini o padrão
ONGRID_LLM_DEFAULT_PROVIDER=geminiBaseURL
O default roteia por generativelanguage.googleapis.com. Use o override de BaseURL para:
- Endpoints de proxy Vertex AI (tipicamente
us-central1-aiplatform...). - Relays corporativos do Google Cloud.
O hint mostrado na UI de Settings para este campo é "Google generativelanguage.googleapis.com (OpenAI compatibility mode)".
Pegadinhas
- Restrições de região — alguns modelos Gemini não estão disponíveis em toda região. Um 403 do upstream pousa no transcript do chat como um erro de API regular; cheque a matriz de regiões do provider se você pegar isso.
- Filtros de segurança — os filtros de conteúdo do Google podem retornar uma mensagem vazia com um
finishReason: SAFETY. O adapter do Ongrid renderiza isso como uma mensagem "blocked by safety filter" explícita no chat em vez de uma resposta vazia. - Vision — inputs de imagem funcionam pela camada OAI-compat usando o bloco de conteúdo padrão
image_url; a superfície do BaseTool ainda não expõe params de imagem.