Batch API подходит для работы, которая может подождать, а не для ответа пользователю в чате. Вы отправляете набор заданий и забираете результаты позже, отдельно от отправки.
OpenAI заявляет скидку 50% относительно синхронного API и окно обработки 24 часа. Практические кандидаты: классификация каталога, массовое извлечение полей и оценка промптов. Условия приведены в официальном руководстве Batch.
Планируйте работу по документированному окну обработки. Даже если предыдущие пакеты завершались быстро, это не гарантирует такую же скорость следующего запуска.
Как связать задания с результатами
Входной JSONL содержит отдельный JSON-объект в каждой строке. Назначьте каждой строке уникальный custom_id и сохраните исходное задание под этим идентификатором.
Результаты могут прийти в другом порядке. Соединять вход и выход по номеру строки нельзя: используйте custom_id, как рекомендует документация.
Что означают статусы пакета
Статусы показывают этап обработки:
- validating: файл проверяют; failed: проверку пройти не удалось.
- in_progress: задания выполняются; finalizing: результаты подготавливаются.
- completed: пакет завершён; expired: не уложился в окно.
- cancelling и cancelled: отмена обрабатывается или завершена.
При завершении читайте request_counts: total (общее число заданий), completed (число завершённых) и failed (число ошибок).
Затем загрузите результаты по output_file_id и, если он есть, файл ошибок по error_file_id. Эти поля описаны в справочнике объекта Batch. Статус completed нельзя использовать вместо проверки отдельных заданий.
Что делать, если пакет просрочен
Статус expired означает истечение окна обработки. Не отправляйте весь файл заново автоматически. OpenAI сохраняет уже готовые результаты, а незавершённые задания отменяет; для просроченных строк предусмотрена ошибка batch_expired. Оплачиваются токены завершённых запросов. Это прямо описано в разделе о просрочке.
- Сопоставьте успешные результаты и ошибки с исходными custom_id.
- Проверьте причины неудач. При ошибке параметров исправьте входные данные.
- Соберите новый пакет только из действительно не выполненных заданий, не повторяя ошибочный ввод без изменений.
Удобно хранить собственный реестр: ID задания, версия промпта, ID пакета, исход, результат и число попыток. Он поможет пережить перезапуск обработчика и не записать один результат дважды. Выгоду считайте по стоимости успешно обработанного набора с учётом повторов, а не только по обещанной скидке.
Проверено 10 ноября 2026 года. Собственные замеры скорости не проводились.
Последнее редактирование: