Google Gemini API: настройка и использование
Google Gemini — мощная мультимодальная AI-модель от Google DeepMind. Gemini 1.5 Pro поддерживает контекстное окно до 1 миллиона токенов — больше, чем любой другой коммерческий API. Gemini 1.5 Flash — быстрый и бесплатный для небольших объёмов.
Получение API ключа
Перейдите на aistudio.google.com, создайте проект и получите API ключ. Бесплатный тариф: 15 RPM (запросов/мин) и 1 500 000 токенов/день для Gemini 1.5 Flash.
Первый запрос
pip install google-generativeai import google.generativeai as genai
import os
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Объясни принцип работы VPS хостинга в 3 предложениях.")
print(response.text) Мультиходовой чат
chat = model.start_chat(history=[])
response1 = chat.send_message("Я настраиваю nginx на Ubuntu.")
print(response1.text)
response2 = chat.send_message("Как добавить SSL сертификат?")
print(response2.text) # помнит контекст предыдущих сообщений Анализ изображений (Vision)
import google.generativeai as genai
from PIL import Image
model = genai.GenerativeModel("gemini-1.5-flash")
image = Image.open("server-screenshot.png")
response = model.generate_content([
"Опиши что изображено и найди возможные проблемы:",
image
])
print(response.text) PHP интеграция (через REST API)
<?php
function askGemini(string $prompt): string {
$apiKey = $_ENV['GEMINI_API_KEY'];
$url = "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={$apiKey}";
$data = [
'contents' => [['parts' => [['text' => $prompt]]]]
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($data),
]);
$r = json_decode(curl_exec($ch), true);
curl_close($ch);
return $r['candidates'][0]['content']['parts'][0]['text'] ?? '';
}
echo askGemini('Напиши короткое описание для страницы хостинга'); Цены Gemini (2025)
| Модель | Input (1M) | Output (1M) | Контекст |
|---|---|---|---|
| Gemini 1.5 Flash | $0.075 | $0.30 | 1M токенов |
| Gemini 1.5 Pro | $3.50 | $10.50 | 1M токенов |
| Gemini 2.0 Flash | $0.10 | $0.40 | 1M токенов |
Частые ошибки
Ошибки Gemini API обычно указывают на конкретную и легко устранимую причину, если не игнорировать текст поля message в ответе.
400 — API key not valid. Please pass a valid API key
Ключ скопирован с опечаткой, отозван в aistudio.google.com или используется не в том проекте Google Cloud, к которому привязан. Пересоздайте ключ и убедитесь, что переменная окружения читается без лишних пробелов и переносов строки.
429 — Resource has been exhausted (e.g. check quota)
Превышен лимит запросов в минуту или суточная квота токенов для выбранной модели. В отличие от временной перегрузки сервера, эта ошибка не пройдёт сама по себе в течение секунд — нужно либо снизить частоту запросов, либо перейти на платный тариф с более высокими лимитами.
Свободный и платный тариф: на что смотреть
| Параметр | Free tier | Платный тариф |
|---|---|---|
| Лимит запросов в минуту | Ограничен, зависит от модели | Заметно выше |
| Суточная квота токенов | Фиксированная, единая на день | Практически снята, тарификация по факту |
| Использование данных для обучения | Может использоваться, см. условия сервиса | Обычно исключено условиями платного тарифа |
| Подходит для | Прототипов, тестов, малой нагрузки | Продакшена с предсказуемым трафиком |
Когда Gemini API не подходит
- Критична приватность данных, и их нельзя передавать за пределы своей инфраструктуры — тогда нужен локальный вариант вроде Ollama.
- Продукт уже завязан на экосистему OpenAI (ассистенты, инструменты, формат function calling) — миграция форматов запросов и ответов потребует отдельного слоя совместимости.
- Нужна стабильная цена без сюрпризов при росте нагрузки — бесплатный тариф Gemini рассчитан на небольшие объёмы и не годится как основа продакшен-сервиса.
- Требуется гарантированная задержка ответа — как и у других облачных API, во время пиковой нагрузки провайдера время ответа не гарантировано.
Проверка, что ключ и запросы работают
curl -s "https://generativelanguage.googleapis.com/v1beta/models?key=$GEMINI_API_KEY" | head -c 200 Успешный ответ — это JSON со списком доступных моделей. Если возвращается ошибка 400 с текстом про недействительный ключ, проблема на уровне самого ключа, и разбираться с логикой чата или анализа изображений пока рано.
Частые вопросы
Нужно ли покупать ключ для Gemini API, или его выдают бесплатно?
Ключ для Gemini API не покупают отдельно — он создаётся бесплатно в Google AI Studio сразу после регистрации проекта, и платной становится не сама выдача ключа, а объём запросов сверх бесплатных лимитов. Любой владелец аккаунта Google получает доступ мгновенно, без обращения в поддержку и без договора на покупку лицензии заранее.
Подходит ли бесплатный тариф Gemini для рабочего проекта с реальным трафиком?
Бесплатный тариф рассчитан на тесты и небольшие прототипы: лимиты запросов и токенов фиксированы одинаково для всех, а задержка ответа в пиковые часы не гарантирована провайдером. Сервису с постоянным трафиком и предсказуемым временем отклика стоит перейти на платный тариф заранее, иначе приложение внезапно упрётся в лимит в самый неподходящий момент для посетителей.
Использует ли Google данные из запросов к Gemini API для обучения своих моделей?
Использование данных для обучения моделей описано в условиях сервиса и зависит от выбранного тарифа, а не задано одним фиксированным правилом для всех. На бесплатном тарифе данные запросов способны попадать в обучение, платный же план такое обычно исключает. Перед отправкой чувствительной информации стоит свериться с актуальными условиями именно подключённой версии API.
Какую модель Gemini выбрать для проекта — Flash или Pro?
Flash — быстрая и экономная модель для типовых задач вроде чат-ботов, коротких ответов и простого анализа изображений, а Pro лучше справляется со сложными рассуждениями и очень длинным контекстом диалога. Для большинства проектов на хостинге разумно начинать с Flash и переключаться на Pro только тогда, когда качество ответов окажется явно недостаточным для задачи.