Главная/Блог/Аналитика/Batch API от OpenRouter: как снизить…
Аналитика9 мин чтения · 23 сентября 2026 г.

Batch API от OpenRouter: как снизить стоимость инференса на 50%

Откройте для себя Batch API от OpenRouter: асинхронный способ запуска LLM с экономией до 50% на токенах. Разбираем тайминги, ограничения и практическое применение.

Batch API от OpenRouter: как снизить стоимость инференса на 50%

В мире генеративного искусственного интеллекта скорость и стоимость часто выступают главными барьерами для масштабирования. Если вы когда-либо пытались обработать большой массив данных с помощью больших языковых моделей (LLM), вы наверняка сталкивались с дилеммой: платить премию за мгновенный ответ или экономить, но ждать. Традиционно эти два параметра были жестко связаны — чем быстрее результат, тем выше цена. Однако появление асинхронных интерфейсов меняет правила игры, позволяя разработчикам гибко управлять ресурсами без потери качества моделей.

Платформа OpenRouter, ставшая де-факто стандартом для агрегации доступа к сотням моделей от разных провайдеров, представила свою Batch API. Это не просто еще один эндпоинт, а фундаментальный сдвиг в архитектуре взаимодействия с ИИ. Суть инновации проста: вы отправляете пачку запросов, а провайдер выполняет их в удобное для себя время в течение 24-часового окна. В обмен на эту гибкость вы получаете скидку, которая в среднем составляет 50% от стандартной стоимости токенов. Это открывает двери для задач, которые не требуют мгновенной реакции, но требуют огромных вычислительных мощностей.

В этой статье мы подробно разберем, как работает Batch API, какие модели поддерживаются, как оптимизировать время ожидания и где именно в ваших проектах эта технология может сэкономить значительную часть бюджета. Мы также проанализируем реальные данные бета-тестирования, чтобы вы могли планировать свои процессы с точностью до минут.

01Как работает Batch API: асинхронность как преимущество

Batch API — это асинхронный интерфейс, предназначенный для рабочих нагрузок, где приемлемы значительные задержки ответа. В отличие от стандартных REST-запросов, которые блокируют соединение до получения результата, Batch API позволяет вам отправить запрос и заняться другими делами, периодически проверяя статус выполнения. Это идеально подходит для фоновых задач, таких как аннотирование корпусов данных, заполнение эмбеддингов для баз знаний, оценка наборов данных (eval sets) или суммирование тысяч тикетов поддержки за ночь.

Механизм работы строится на принципе «отправил и забыл». Вы формируете список запросов, указываете желаемую форму ответа (например, chat completions, responses, messages или embeddings) и отправляете их на эндпоинт api/v1/batches. После этого система принимает запрос и начинает его обработку. Вы не получаете ответ сразу, но получаете уникальный ID пакета, с помощью которого можете отслеживать прогресс через polling-запросы к GET /api/v1/batches/:id.

Важно понимать, что Batch API не является «медленной» моделью в традиционном смысле. Это оптимизация распределения ресурсов. Провайдеры могут планировать выполнение ваших запросов в периоды низкой нагрузки или использовать более эффективные методы батчинга на уровне GPU, что и позволяет им предлагать скидку. Для пользователя это выглядит как стандартный вызов API, но с измененной временной характеристикой.

Batch API от OpenRouter: как снизить стоимость инференса на 50%

02Скорость выполнения: мифы и реальность

Одно из самых частых опасений при использовании асинхронных API — это страх, что обработка займет целые сутки. Однако данные, собранные OpenRouter за двухнедельный период бета-тестирования на более чем 230 000 завершенных пакетов, показывают совершенно иную картину. Среднее время выполнения (медиана) составляет всего 7 минут. Это означает, что для половины всех запросов вы получите результат быстрее, чем успеете заварить кофе.

Статистика распределения времени выполнения выглядит следующим образом:

  • Медиана: 7 минут.
  • 90-й перцентиль: 1 час. То есть 90% всех пакетов завершаются в течение часа.
  • 99-й перцентиль: 10,3 часа. Лишь малая доля запросов задерживается на такое время.

Эти цифры демонстрируют, что Batch API достаточно быстр для многих интерактивных сценариев, где можно допустить небольшую задержку, но критична стоимость. Например, если вы строите чат-бота, который может «подумать» 10 минут перед выдачей сложного аналитического отчета, это вполне приемлемо для пользователя, особенно если цена такого отчета снижена вдвое.

03Время суток имеет значение: как ускорить обработку

Хотя среднее время выполнения впечатляет, оно сильно зависит от того, в какое время вы отправляете запрос. Анализ данных показал, что время отправки (hour of submission) влияет на скорость больше, чем размер самого пакета. Это связано с глобальной загрузкой серверов провайдеров.

Наиболее медленные результаты наблюдаются при отправке пакетов в период с 5:00 до 12:00 по тихоокеанскому времени (Pacific Time). В это время серверы загружены максимальным количеством запросов от пользователей по всему миру. Для самых медленных 10% запросов, отправленных в этот промежуток, время ожидания может составлять от 2 до 4,5 часов.

Однако, если вы отправите запрос в любое другое время, ситуация кардинально меняется. 90-й перцентиль времени выполнения падает ниже 1,1 часа. А если вы отправите пакет после 18:00 по тихоокеанскому времени, медианное время выполнения сокращается до 50 минут. Это создает четкую стратегию оптимизации: планируйте тяжелые вычисления на ночное время или раннее утро по вашему локальному времени, если вы находитесь в Европе или Азии, чтобы избежать пиковых нагрузок.

Влияние размера пакета на скорость

Размер пакета также играет роль, но вторичную по сравнению со временем суток. Одиночный запрос в пакете обрабатывается за 5–11 минут в зависимости от часа отправки. Пакеты объемом 1000 и более запросов занимают от 12 до 21 минуты. Как видно, увеличение размера в 1000 раз добавляет лишь несколько минут к общему времени, что говорит о высокой эффективности внутренней оптимизации OpenRouter.

Однако есть исключение: самые медленные 10% пакетов с более чем 100 запросами, отправленных в период с полуночи до полудня по тихоокеанскому времени, могут обрабатываться до 6,8 часов. Это подчеркивает важность избегания пиковых часов при работе с большими объемами данных.

Batch API от OpenRouter: как снизить стоимость инференса на 50%
Batch API от OpenRouter: как снизить стоимость инференса на 50%

04Что поддерживается в Batch API

Batch API от OpenRouter поддерживает широкий спектр форматов запросов, которые вы уже используете в стандартном API. Это включает в себя:

  • Chat Completions: Стандартные диалоги с моделями.
  • Responses: Новые форматы ответов от некоторых провайдеров.
  • Messages: Работа с историей сообщений.
  • Embeddings: Генерация векторных представлений текста.

Каждый результат возвращается независимо. Это означает, что если один запрос в пакете содержит ошибку (например, некорректный JSON или нарушение политик безопасности), он будет помечен как failed, но остальные 999 запросов в том же пакете продолжат выполнение и вернут свои результаты. Это критически важно для обработки больших датасетов, где наличие нескольких «битых» строк не должно останавливать весь процесс.

Также поддерживается маршрутизация через ваш собственный ключ провайдера (BYOK - Bring Your Own Key). Если у вас есть ключ от конкретного провайдера (например, Anthropic или Google), и этот провайдер поддерживает батчинг, запросы будут маршрутизироваться через ваш ключ, и вы будете платить только по ставке BYOK, которая часто еще ниже стандартных тарифов OpenRouter.

💡
Совет по оптимизации. Если вы используете BYOK, убедитесь, что ваш ключ провайдера активен и имеет достаточный лимит. В этом случае Batch API позволяет получить максимальную скидку, комбинируя оптимизацию OpenRouter с прямым доступом к провайдеру.

05Ограничения и особенности

Несмотря на гибкость, Batch API имеет ряд ограничений, о которых нужно знать заранее:

  1. Один провайдер на пакет: Каждый пакет выполняется на одном провайдере. OpenRouter автоматически выбирает самого дешевого провайдера, доступного для выбранной модели, с учетом ваших настроек (allowlist, политика данных, BYOK). Вы не можете распределить один пакет между несколькими провайдерами для ускорения.
  2. Хранение данных: Входы и результаты хранятся в течение 30 дней или до тех пор, пока вы не удалите пакет вручную через DELETE. Это позволяет вам перепроверить результаты или использовать их в дальнейшем.
  3. Мультимедиа: Изображения и файлы должны быть доступны по публичным URL. Локальные файлы загрузить нельзя. Аудио, видео и плагин веб-поиска OpenRouter на данный момент не поддерживаются в Batch API.
  4. Веб-поиск: Вызовы с использованием веб-поиска тарифицируются по стандартным ставкам, без скидки. Это связано с тем, что поиск требует реального времени и не может быть отложен.

Все результаты отображаются во вкладке «Batches» в логах вашего аккаунта, где вы можете видеть модель, провайдера, статус и стоимость каждого запроса. Это обеспечивает полную прозрачность расходов.

06Пример использования: суммирование тикетов поддержки

Давайте рассмотрим практический пример. Представьте, что у вас есть 1000 тикетов в службе поддержки, и вам нужно сгенерировать краткое резюме каждого из них для анализа тенденций. Использование стандартного API потребовало бы 1000 отдельных запросов, что заняло бы много времени и стоило бы дорого. С Batch API вы можете отправить все 1000 запросов одновременно.

Вот как выглядит запрос:

terminalbash
curl https://openrouter.ai/api/v1/batches \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-d '{
  "endpoint": "/v1/chat/completions",
  "model": "google/gemini-3.8-flash",
  "requests": [
    { "custom_id": "ticket-0001", "body": { "messages": [{ "role": "user", "content": "Summarize this ticket in one sentence." }] } },
    { "custom_id": "ticket-0002", "body": { "messages": [{ "role": "user", "content": "Summarize this ticket in one sentence." }] } }
  ]
}'

После отправки вы получаете ID пакета. Затем вы можете написать скрипт, который будет опрашивать статус пакета каждые несколько минут. Как только статус изменится на completed, вы получите все результаты в одном ответе. Если один из тикетов был некорректным, вы увидите его в статусе failed, но остальные 999 резюме будут готовы.

⚠️ Важно.
Убедитесь, что вы используете custom_id для каждого запроса. Это позволит вам сопоставить результат с исходным тикетом, так как порядок результатов в ответе может не совпадать с порядком в запросе.

07Что это значит на практике

Внедрение Batch API в ваши рабочие процессы означает переход от реактивной модели использования ИИ к проактивной. Вместо того чтобы ждать ответа от модели в реальном времени, вы можете планировать вычисления на периоды низкой нагрузки, экономя до 50% бюджета. Это особенно актуально для:

  • Обработки больших датасетов: Аннотирование, классификация, извлечение сущностей.
  • Генерации контента: Создание описаний товаров, статей, переводов.
  • Аналитики: Анализ тональности, суммирование документов, извлечение ключевых точек.

Ключевым фактором успеха является правильное планирование. Отправляйте пакеты в периоды низкой нагрузки (после 18:00 по тихоокеанскому времени), чтобы минимизировать время ожидания. Используйте BYOK, если у вас есть доступ к дешевым ключам провайдеров. И не бойтесь асинхронности — в большинстве случаев вы получите результат за считанные минуты, а не часы.

Batch API от OpenRouter — это мощный инструмент, который делает продвинутые возможности LLM доступными для более широкого круга задач, снижая барьер входа за счет стоимости. Начните с небольших пакетов, протестируйте тайминги в вашем часовом поясе и постепенно масштабируйте свои процессы, используя экономию для увеличения объема обрабатываемых данных.

📌 Факт.
Batch API работает более чем с 70 моделями. Полный список поддерживаемых моделей и их стоимость можно найти в документации OpenRouter.

Источник: OpenRouter ↗