Batch API позволяет отправить набор запросов на генерацию и получить результаты в течение 24 часов со скидкой 50%. Подходит для задач, где мгновенный ответ не нужен: предобработки данных, оценок качества, массовой генерации текста.
Через ProxyAPI поддерживается inline-режим: запросы передаются прямо в теле запроса на создание пакета, в формате generateContent. Поддерживаются только текстовые модели. Путь к API — https://api.proxyapi.ru/google, официальный SDK совместим.
- Создание пакета методом
:batchGenerateContentс массивом запросов в теле. - Опрос статуса по имени пакета, пока
stateне перейдёт в одно из завершающих состояний. - Получение результатов — ответы приходят прямо в объекте пакета (inline), каждый соотносится с запросом по своему ключу.
# Создание пакета curl "https://api.proxyapi.ru/google/v1beta/models/gemini-3.5-flash:batchGenerateContent" \ -H "Authorization: Bearer <КЛЮЧ>" \ -H "Content-Type: application/json" \ -X POST \ -d '{ "batch": { "display_name": "my-batch", "input_config": { "requests": { "requests": [ {"request": {"contents": [{"parts": [{"text": "Привет!"}]}]}, "metadata": {"key": "req-1"}}, {"request": {"contents": [{"parts": [{"text": "Как дела?"}]}]}, "metadata": {"key": "req-2"}} ] } } } }' # Проверка статуса (batch_id — имя из поля name ответа, без префикса batches/) curl "https://api.proxyapi.ru/google/v1beta/batches/abc123" \ -H "Authorization: Bearer <КЛЮЧ>" # Отмена curl "https://api.proxyapi.ru/google/v1beta/batches/abc123:cancel" \ -H "Authorization: Bearer <КЛЮЧ>" \ -X POST
Состояние пакета отражает поле state (в сыром ответе — metadata.state):
| Статус | Значение |
|---|---|
JOB_STATE_PENDING | пакет создан и ожидает обработки |
JOB_STATE_RUNNING | пакет обрабатывается |
JOB_STATE_SUCCEEDED | успешно завершён, результаты доступны |
JOB_STATE_FAILED | пакет завершился с ошибкой |
JOB_STATE_CANCELLED | пакет отменён пользователем |
JOB_STATE_EXPIRED | пакет не завершился за 48 часов; результатов нет |
| Операция | Метод и путь |
|---|---|
| Создание пакета | POST /google/v1beta/models/{model}:batchGenerateContent |
| Статус пакета | GET /google/v1beta/batches/{batch_id} |
| Отмена пакета | POST /google/v1beta/batches/{batch_id}:cancel |
batch_id — это значение поля name из ответа на создание (batches/abc123) без префикса batches/.
- Только inline-режим (запросы в теле), суммарный размер — до 20 МБ на пакет. Загрузка файлов (File API) и режим файлового ввода недоступны.
- Только текстовый
generateContent. Модели эмбеддингов и генерации изображений в пакетном режиме недоступны. - Окно — 24 часа (целевое). Если пакет не завершился за 48 часов, он переходит в
JOB_STATE_EXPIREDбез результатов. - Результаты доступны ~48 часов с момента создания пакета — это самый короткий срок среди провайдеров, забирайте их вовремя.
- Нет методов «список пакетов» и «удаление пакета». У Gemini они есть, но мы их не проксируем — доступны только создание, статус и отмена. Сохраняйте имя пакета на своей стороне.
- Если запрос ссылается на модель без batch-тарифа (эмбеддинги, генерация изображений и т.п.), пакет отклоняется при создании — модель в пакете одна и задаётся в пути.
Списание происходит по завершении пакета, по фактическому использованию из успешных ответов, по batch-ставке (−50%). За завершившиеся ошибкой запросы плата не взимается. Подробнее — в разделе «Пакетная обработка (Batch API)» в Основах.