Batch-гайд: от строки JSONL до файла результатов за −50%
Зачем эта страница: создать batch-задачу в формате OpenAI или Anthropic, понять статусы, ретраи брака и посчитать экономию в ₽.
Вход OpenAI-формата
Вход — JSONL-файл: одна строка на один запрос. Загрузка файла: POST /v1/files с purpose="batch". Создание задачи: POST /v1/batches с телом {"input_file_id", "endpoint": "/v1/chat/completions", "completion_window": "24h"}. До 50 000 запросов на задачу. Результаты готовой задачи приходят файлами output_file_id и error_file_id.
{"custom_id":"row-001","method":"POST","url":"/v1/chat/completions","body":{"model":"mid-class-chat","messages":[{"role":"user","content":"…"}]}}Ожидаемый вывод:
{"id":"batch_…","status":"validating","completion_window":"24h"}Вход Anthropic-формата
Загрузка файла не нужна: POST /v1/messages/batches принимает inline-массив requests в теле запроса. До 100 000 запросов на задачу. Результаты: GET /v1/messages/batches/{id}/results — JSONL-поток.
{"requests":[{"custom_id":"row-001","params":{"model":"mid-class-chat","max_tokens":1024,"messages":[{"role":"user","content":"…"}]}}]}Ожидаемый вывод:
{"id":"batch_…","status":"in_progress"}Окно и статусы
Окно выполнения — 24h: значение completion_window. Задача проходит статусы validating → in_progress → finalizing → completed | expired | failed. Отмена: cancelling → cancelled.
Anthropic-формат: in_progress → ended с исходами выполнен / expired / canceled. Русские строки статусов и кнопки ретрая — на экране batch-задач кабинета.
Цена: −50% к цене единиц
Единицы batch-запросов тарифицируются со скидкой −50% относительно обычных. Расчёт: 1 000 строк mid-class-chat (1,5K+1K) вне batch — 420 ₽, в batch — 210 ₽. Скидка видна batch-колонкой каталога до запроса и парой „списано / было бы вне batch” после.
Брак и ретраи
Строки с ошибками (400 формата, 429 вендора) попадают в error-файл и не тарифицируются. Повтор — только ими: новая задача из error-файла с теми же custom_id. Ретраи внутри строки — по правилам D3: 429 и 5xx, backoff 1с → 2с → 4с, не более трёх повторов.
Прерванная задача и резервы
Задача expired или cancelled: завершённые строки тарифицированы, остальные возвращены без списания. Резерв: на старте задачи баланс резервирует оценку всех строк; по мере завершения строк резерв превращается в списания, остаток возвращается при завершении задачи.
Лимиты
Batch не расходует RPM/TPM мгновенно: исполнение распределено во времени. Рублёвые лимиты ключа и месяца расходует полностью (K3).
Создать задачу из примера
Подставьте свой ключ и выполните curl своего формата. Ключ — одно значение на оба формата; значение начинается с ruslo-sk-….
curl https://api.farvater.copul4.com/v1/batches \
-H "Authorization: Bearer $RUSLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input_file_id":"file_…","endpoint":"/v1/chat/completions","completion_window":"24h"}'Ожидаемый вывод:
{"id":"batch_…","status":"validating","completion_window":"24h"}curl https://api.farvater.copul4.com/v1/messages/batches \
-H "x-api-key: $RUSLO_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"requests":[{"custom_id":"row-001","params":{"model":"mid-class-chat","max_tokens":1024,"messages":[{"role":"user","content":"…"}]}}]}'Ожидаемый вывод:
{"id":"batch_…","status":"in_progress"}Обновлено: 2026-10-26