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. SDK adapter: OpenAI-compatibility mode на Google generativelanguage API.
Env-переменные
| Var | По умолчанию | Заметки |
|---|---|---|
ONGRID_GEMINI_API_KEY | — | Пусто = provider выпадает |
ONGRID_GEMINI_MODEL | gemini-2.5-pro | Дефолтная модель |
ONGRID_GEMINI_BASE_URL | https://generativelanguage.googleapis.com/v1beta/openai | OpenAI-compat endpoint |
ONGRID_GEMINI_MODELS | gemini-3.5-flash,gemini-2.5-pro,gemini-2.5-flash | Каталог-список |
Дефолтный каталог
gemini-3.5-flash— frontier; быстрый и удивительно дешёвый.gemini-2.5-pro— каталог-дефолт; сбалансированный.gemini-2.5-flash— дешёвый.
Почему OAI-compat эндпоинт
У Gemini две API-поверхности:
- Нативный Google
generativelanguage.googleapis.com/v1beta/— формаgenerateContent, отличная от OpenAI. - OpenAI-compatibility layer на
.../v1beta/openai/— принимает OpenAI-stylechat/completionsзапросы, возвращает OpenAI-shaped ответы.
Ongrid использует #2. Compatibility layer означает, что eino-openai адаптер работает неизменённо, и tool calls / system-сообщения / streaming ведут себя как у каждого другого provider-slot. Без специальной обработки.
Если вам нужна Gemini-only фича, которую OAI-compat surface не выставляет (например, media-входы, которые OAI-shape не может представить), drop in custom-адаптер — это вне поддерживаемой конфигурации.
Сделать Gemini дефолтным
ONGRID_LLM_DEFAULT_PROVIDER=geminiBaseURL
Дефолт маршрутизирует через generativelanguage.googleapis.com. Используйте BaseURL override для:
- Vertex AI proxy-эндпоинтов (обычно
us-central1-aiplatform...). - Корпоративных Google Cloud relays.
Подсказка, показанная в Settings UI для этого поля, — «Google generativelanguage.googleapis.com (OpenAI compatibility mode)».
Особенности
- Region restrictions — некоторые Gemini-модели недоступны во всех регионах. 403 с upstream приземляется в chat-транскрипт как обычная API-ошибка; проверьте provider's region-матрицу, если получаете это.
- Safety filters — content-фильтры Google могут вернуть пустое сообщение с
finishReason: SAFETY. Ongrid-адаптер рендерит это как явное «blocked by safety filter» сообщение в chat, а не пустой ответ. - Vision — image-входы работают через OAI-compat layer, используя стандартный
image_urlcontent-блок; BaseTool-поверхность ещё не выставляет image-параметры.