Skip to main content
Google Gemini — это очень мощная система диалогового ИИ, которая может генерировать плавные и естественные ответы за несколько секунд посредством ввода подсказки. В этом документе в основном описывается способ использования Gemini Generate Content API — это официальный нативный формат API Google, поддерживающий два эндпоинта: generateContent и streamGenerateContent.

Отличия от Chat Completions API

Gemini Generate Content API использует официальный нативный формат запросов Google (поле contents), а не формат, совместимый с OpenAI (поле messages). Если вы уже используете Google Gemini SDK или знакомы с официальным форматом API, вы можете напрямую использовать этот API без изменения формата запросов.

Текущий поддерживаемый охват

Интерфейс принимает текстовый, графический, видео- и аудиоввод (через inlineData или fileData), конфигурацию рассуждений и объявления пользовательских функций. Для нативных полей, таких как аудиовывод, встроенные инструменты и явное кэширование контекста, пока нет гарантии единой доступности; ориентируйтесь на фактический ответ конкретной модели. При отправке аудио и других файлов с использованием fileData.fileUri убедитесь, что файл доступен напрямую по HTTPS, не зависит от состояния входа в систему, а срок действия подписанной ссылки покрывает всё время обработки запроса. Непотоковый аудиоанализ возвращает результат только после завершения обработки моделью и может занять более 90 секунд; клиенту следует устанавливать достаточно длительный общий тайм-аут в зависимости от размера файла и бизнес-сценария, чтобы избежать разрыва соединения, пока сервер всё ещё выполняет обработку.

Процесс подачи заявки

Перед использованием Gemini Generate Content API сначала перейдите на страницу Gemini Generate Content API и нажмите кнопку «Получить», чтобы получить учётные данные, необходимые для запроса. Если вы ещё не вошли в систему или не зарегистрировались, вы будете автоматически перенаправлены на страницу входа. При первой заявке предоставляется бесплатная квота.

Базовое использование

Non-Streaming(без потоковой передачи)

Отправьте POST-запрос на /v1beta/models/{model}:generateContent:
Подсказка: flash серии gemini-3.x является моделью рассуждений и сначала расходует reasoning tokens; установите generationConfig.maxOutputTokens выше 512, иначе может быть возвращено только пустое содержимое.
Пример возвращаемого результата:
Поля token в usageMetadata тарифицируются в соответствии с нативной семантикой Gemini:
  • promptTokenCount включает cachedContentTokenCount; часть, попавшая в кэш, рассчитывается по цене чтения из кэша и не учитывается повторно как обычный ввод.
  • promptTokensDetails и cacheTokensDetails нормализуются как text_tokens, image_tokens, video_tokens, audio_tokens и соответствующие детали cached_* в usage.prompt_tokens_details. Эти значения соответственно включены в prompt_tokens и cached_tokens; разные модальности пересчитываются только по своим ценам и не тарифицируются повторно.
  • candidatesTokenCount и thoughtsTokenCount оба рассчитываются по цене выходных token.
  • toolUsePromptTokenCount является независимым token ввода инструмента и рассчитывается по цене входных token.
Ace Data Cloud дополнительно возвращает нормализованный объект usage; для разных протоколов моделей стоимость этого вызова единообразно считывается из usage.cost. cost — это необязательный предварительный расчёт стоимости; когда предварительный расчёт цены временно недоступен, ответ модели всё равно будет возвращён нормально, но может не содержать это поле. Окончательный счёт определяется записями об использовании.

Streaming(потоковая передача)

Отправьте POST-запрос на /v1beta/models/{model}:streamGenerateContent?alt=sse:
Потоковый ответ будет постепенно возвращать содержимое в формате SSE (Server-Sent Events). Промежуточные события обычно содержат только инкрементальное содержимое; финальное событие с авторитетными данными об использовании будет содержать usageMetadata и нормализованный usage, при этом стоимость по-прежнему находится в usage.cost:
Закрытие соединения означает завершение потока; нативный поток Gemini не отправляет data: [DONE]. Если предварительный расчёт цены для финального состояния временно недоступен, usage всё равно вернёт использование token, но опустит cost.

Поддерживаемые модели

Расширенные функции

Системные инструкции

Конфигурация генерации

Режим JSON

Режим размышлений (Thinking)

Модели, поддерживающие функцию размышлений (например, gemini-2.5-flash, gemini-2.5-pro), могут включать режим размышлений:

Вызов функций

Многораундовый диалог

Понимание изображений

Настройки безопасности

Контентную фильтрацию можно контролировать через safetySettings:

Обработка ошибок