Искусственный интеллект стремительно меняет то, как мы работаем с данными, но при масштабировании проектов разработчики часто сталкиваются с двумя проблемами: ограничениями API по количеству запросов и высокими расходами.
Google AI предлагает элегантное решение для этих задач — Пакетный API (Batch API) для моделей Gemini. Если вам нужно обрабатывать большие объемы запросов, для которых не требуется мгновенный ответ в реальном времени, этот инструмент станет вашим лучшим помощником.
В этой статье мы подробно разберем, что такое Пакетный API Gemini, в чем его главные преимущества и как интегрировать его в ваши проекты.
Что такое Пакетный API от Gemini?
Batch API (Пакетный API) — это интерфейс для асинхронной обработки больших пулов запросов к нейросети. В отличие от стандартного (синхронного) API, где вы отправляете запрос и ждете ответ в ту же секунду, пакетный режим позволяет загрузить тысячи задач одновременно и забрать готовый результат позже.
Целевое время выполнения пакетного задания составляет 24 часа, однако на практике (особенно для небольших пулов) задачи обрабатываются значительно быстрее.
Главные преимущества использования Batch API:
- 💰 Скидка 50% на стоимость токенов. Это самое важное преимущество! Использование пакетного режима обходится ровно в два раза дешевле по сравнению со стандартным API (Pay-as-you-go).
- 🚀 Огромные лимиты. Пакетный API позволяет обойти жесткие лимиты на количество запросов в минуту (RPM), так как задачи ставятся в фоновую очередь.
- 🛠 Идеально для тяжелых задач. Отлично подходит для классификации огромных датасетов, перевода больших архивов текстов, генерации SEO-описаний для десятков тысяч карточек товаров или анализа логов.
Два способа отправки запросов
Google AI предоставляет разработчикам два варианта загрузки данных для пакетной обработки, в зависимости от объема вашей задачи:
1. Встроенные запросы (Inline requests)
Подходит для небольших партий данных (общий размер запроса до 20 МБ). В этом случае вы передаете список объектов напрямую в тело запроса BatchGenerateContentRequest. Это отличный вариант для быстрых тестов и микро-скриптов.
2. Входной файл (Input file) — Рекомендуемый метод
Если у вас серьезный объем данных, используйте формат файлов JSON Lines (JSONL).
- Каждая строка в файле содержит уникальный ключ пользователя и сам запрос.
- Вы загружаете этот файл на серверы Google с помощью File API.
- Максимально допустимый размер файла составляет целых 2 ГБ.
Как это работает: пошаговое руководство
Рассмотрим классический пайплайн работы с Batch API при помощи входного файла на языке Python.
Шаг 1. Подготовка JSONL файла и его загрузка
Создайте файл, где каждая строка — это отдельный JSON-объект с вашим промптом. Затем загрузите его в облако:
import json
from google import genai
from google.genai import types
client = genai.Client()
# Создаем файл JSONL
with open("my-batch-requests.jsonl", "w") as f:
requests = [
{"key": "req-1", "request": {"contents": [{"parts": [{"text": "Опиши процесс фотосинтеза."}]}]}},
{"key": "req-2", "request": {"contents": [{"parts": [{"text": "Главные ингредиенты пиццы Маргарита?"}]}]}}
]
for req in requests:
f.write(json.dumps(req) + "\n")
# Загружаем файл через File API
uploaded_file = client.files.upload(
file='my-batch-requests.jsonl',
config=types.UploadFileConfig(display_name='my-batch', mime_type='jsonl')
)
Шаг 2. Создание пакетного задания
После загрузки файла инициализируйте асинхронную задачу:
file_batch_job = client.batches.create(
model="gemini-3-flash-preview", # или другая доступная модель
src=uploaded_file.name,
config={'display_name': "my-first-batch-job"}
)
print(f"Задание создано! ID: {file_batch_job.name}")
Шаг 3. Мониторинг статуса (Polling)
Так как процесс асинхронный, вам нужно периодически проверять его статус (JOB_STATE_SUCCEEDED, JOB_STATE_FAILED, и т.д.):
import time
job_name = file_batch_job.name
batch_job = client.batches.get(name=job_name)
while batch_job.state.name not in ['JOB_STATE_SUCCEEDED', 'JOB_STATE_FAILED']:
print(f"Текущий статус: {batch_job.state.name}")
time.sleep(30) # Проверяем каждые 30 секунд
batch_job = client.batches.get(name=job_name)
Шаг 4. Получение результатов
Когда статус сменится на “Успешно”, вы сможете скачать выходной файл, который также будет в формате JSONL. Ключи (key), которые вы задали на первом шаге, будут сопоставлены с ответами модели, что позволит легко связать запрос и результат.
Где применять Batch API? (Лучшие Use-Cases)
Для бизнеса в России и СНГ, а также IT-компаний по всему миру, Пакетный API открывает огромные возможности по автоматизации рутины:
- E-commerce: Массовая генерация уникальных описаний товаров, тегов и SEO-статей для интернет-магазинов.
- Аналитика данных: Предварительная очистка данных, извлечение сущностей (NER) из сотен тысяч отзывов клиентов или расшифровок звонков.
- Локализация продукта: Пакетный перевод документации, субтитров или интерфейсов на десятки языков.
- Мультимодальные задачи: Генерация или анализ большого массива изображений (Batch API поддерживает не только текстовые запросы, но и работу с картинками!).
Резюме
Если скорость ответа для вас не является критическим фактором, Gemini Batch API — это инструмент №1 для оптимизации ваших расходов на ИИ. Загрузка данных в формате JSONL, асинхронная обработка и скидка 50% делают этот метод стандартом для серьезных production-решений.
Начните интегрировать пакетную обработку в ваши проекты уже сегодня! Ознакомиться с полной официальной документацией Google AI можно по этой ссылке.
А как вы используете генеративный ИИ в своих проектах? Делитесь в комментариях ниже!