Назад ко всем статьям
Руководства

Как вызывать Gemini API через OpenAI SDK: настройка base_url, имени модели и цены Gemini 3.5 Flash

14 июня 2026 г. · 10 мин чтения · Claude / GPT / Gemini

Схема миграции API для разработчиков на кремовом фоне: слева угольно-серая карточка кода OpenAI SDK, в центре терракотовый переключатель base_url, справа карточка модели Gemini 3.5 Flash, снизу небольшие ценники: ввод $1.50/M, вывод $9.00/M, общий вид

Документация Google по совместимости с OpenAI была обновлена 2026-05-18 и прямо указывает: модели Gemini можно вызывать через OpenAI Python / JavaScript SDK, изменив всего три ключевых параметра: api_key, base_url, model (Google). Сегодня 2026-06-14, и на странице цен для стандартного платного уровня gemini-3.5-flash указано: ввод — $1.50 / 100 万 token, вывод с учетом thinking-токенов — $9.00 / 100 万 token (Google Pricing).

Моя оценка проста: если у вас уже есть проект на OpenAI SDK, сначала не переписывайте его. Сначала подключите Gemini как OpenAI-compatible backend, проверьте стоимость, стриминг и вызов инструментов, а уже потом решайте, стоит ли мигрировать на нативный Gemini SDK.

Сравнительная схема до и после миграции на кремовом фоне: слева карточка конфигурации OpenAI SDK, справа карточка конфигурации Gemini, в центре выделены только три изменившиеся строки — api_key, base_url, model; обе стороны соединены терракотовой стрелкой

1. Минимальные изменения: заменить только endpoint и имя модели

Сначала установите официальный OpenAI SDK для Python:

pip install openai
export GEMINI_API_KEY="你的 Gemini API Key"

Затем измените клиент так:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["GEMINI_API_KEY"],
    base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)

resp = client.chat.completions.create(
    model="gemini-3.5-flash",
    reasoning_effort="low",
    messages=[
        {"role": "system", "content": "你是一个直接、准确的代码助手。"},
        {"role": "user", "content": "用三句话解释 SSE 流式输出。"},
    ],
)

print(resp.choices[0].message.content)

chat.completions.create, messages, tools и похожие структуры по-прежнему остаются в стиле OpenAI Chat Completions; собственная справка OpenAI API также определяет Chat Completions как интерфейс, который генерирует ответ на основе списка сообщений (OpenAI). Поэтому главный фокус миграции — не бизнес-код, а конфигурационный слой.

2. Не забудьте последний слэш в base_url

Адрес в документации Google выглядит так:

https://generativelanguage.googleapis.com/v1beta/openai/

Если не поставить последний /, у некоторых клиентов при склейке путей могут возникать странные проблемы. В продакшен-коде лучше вынести это в переменные окружения:

OPENAI_BASE_URL="https://generativelanguage.googleapis.com/v1beta/openai/"
OPENAI_API_KEY="$GEMINI_API_KEY"
OPENAI_MODEL="gemini-3.5-flash"

Если вы хотите не переключаться между аккаунтами, лимитами и счетами разных провайдеров, onehop — более простой путь: замените base_url на https://api.onehop.ai/v1 и вызывайте Claude, GPT, Gemini через единый набор OpenAI / Anthropic-совместимых интерфейсов. Новым аккаунтам дают $10, привязка карты не требуется; удобно сначала сделать PoC, а затем решить, подключаться ли напрямую к официальному API.

from openai import OpenAI

client = OpenAI(
    api_key="你的 onehop key",
    base_url="https://api.onehop.ai/v1",
)

resp = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "给我一个 FastAPI 健康检查接口"}],
)
print(resp.choices[0].message.content)

Вход здесь: вызывать Claude и другие модели через onehop, получить $10 пробного баланса сразу после регистрации.

3. Сначала считайте цену по output-токенам

Стандартный уровень gemini-3.5-flash — это не «настолько дешево, что можно не следить». Цена вывода в 6 раз выше цены ввода:

Модель Уровень Ввод / 1 млн token Вывод / 1 млн token
gemini-3.5-flash Стандартный $1.50 $9.00
gemini-3.5-flash Пакетный $0.75 $4.50
gemini-3.5-flash Flex $0.75 $4.50

Цифры для пакетного режима и Flex взяты с той же страницы цен Google. При разработке приложения нужно ограничивать max_completion_tokens, особенно для суммаризации, генерации кода и циклов инструментов в Agent. Длинный ввод еще можно кэшировать, а неконтролируемый вывод — это прямые расходы.

Компактная столбчатая диаграмма: по горизонтальной оси три уровня — стандартный, пакетный, Flex; по вертикальной оси доллары за миллион token; в каждой группе два столбца, ввод — угольно-серый, вывод — терракотовый, подчёркнуто, что вывод дороже

4. Как сопоставляется reasoning_effort

Совместимый слой Google принимает OpenAI-стиль reasoning_effort и сопоставляет его с конфигурацией thinking в Gemini (Google):

reasoning_effort Gemini 3 Flash thinking_level
minimal minimal
low low
medium medium
high high

Если параметр не передавать, используется значение модели по умолчанию. В документации Google также указано важное ограничение: в Gemini 3 нельзя отключить thinking; none применим только к некоторым моделям 2.5. Моя рекомендация для продакшена — по умолчанию ставить low и повышать до medium или high только для сложного планирования и длинных цепочек вызова инструментов. Поскольку цена вывода включает thinking-токены, интенсивность рассуждений — не бесплатный переключатель.

5. Стриминг и function calling: работает, но нужно учитывать пустые chunk

Стриминговый вызов остается в стиле OpenAI SDK:

stream = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "写一个 Redis 缓存封装"}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

Здесь if delta очень полезен. В стриминговом ответе могут быть роль, вызов инструмента или пустая дельта, поэтому не стоит предполагать, что в каждом chunk есть текст.

Function calling также идет через tools и tool_choice="auto". В совместимой документации Google приведен пример функции погоды и подтверждено, что Gemini API поддерживает function calling (Google). В реальном проекте не ограничивайтесь печатью ответа модели; нужно проверять message.tool_calls, выполнять локальную функцию, а затем передавать результат инструмента обратно модели как сообщение следующего раунда.

Вывод: минимальная стоимость миграции на Gemini — это три строки конфигурации; по-настоящему следить нужно за output-токенами, уровнем thinking, пустыми chunk в стриминге и замкнутым циклом вызова инструментов. Если вы просто хотите быстро поместить Claude, GPT и Gemini в один проект на OpenAI SDK, единый вход onehop сэкономит немало времени на конфигурации: вызывать Claude и другие модели через onehop или сначала получить $10 пробного баланса сразу после регистрации.