Пакетная обработка Messages
Отправка независимых запросов формата Anthropic со стабильными идентификаторами приложения.
Совместимый интерфейс Message Batches сохраняет каждый элемент и выполняет его через обычный маршрут запросов Messages. Это не пакетный сервис поставщика со скидкой. Используйте постоянные учётные данные Model API; временные браузерные сеансы не подходят для пакетных запросов.
Запрос: создание
curl https://api.b2b-llm.com/v1/messages/batches \
-H "x-api-key: $B2B_API_KEY" -H 'anthropic-version: 2023-06-01' \
-H 'Content-Type: application/json' \
-d '{"requests":[{"custom_id":"invoice-summary-001","params":{"model":"claude-sonnet-4.6","max_tokens":256,"messages":[{"role":"user","content":"Summarize this invoice description."}]}}]}'
Ответ
{"id":"msgbatch_EXAMPLE","type":"message_batch","processing_status":"in_progress","request_counts":{"processing":1,"succeeded":0,"errored":0,"canceled":0,"expired":0},"results_url":null}
Чтение и управление
GET /v1/messages/batches
GET /v1/messages/batches/BATCH_ID
POST /v1/messages/batches/BATCH_ID/cancel
GET /v1/messages/batches/BATCH_ID/results
Результаты представлены в JSON Lines. Сопоставляйте их по custom_id, а не по порядку вывода:
{"custom_id":"invoice-summary-001","result":{"type":"succeeded","message":{"type":"message","content":[{"type":"text","text":"The invoice covers scheduled service."}]}}}
Назначайте каждому элементу уникальный ID и не включайте потоковый режим или вложенный async в пакете. Отмена не даёт запуститься ожидающим элементам; уже работающие могут завершиться. Используйте возвращённые срок действия и URL результата, не предполагая правила хранения самостоятельно.
Средства и расчёты
Создание пакета компании требует доступных средств и лимита расходов и ограничено квотами хранения, заданий и элементов. Чтение и управление существующими операциями могут оставаться доступны с действительным ключом при нулевом балансе. Для каждого элемента нужны права и доступный бюджет на момент запуска; ожидающая работа может продолжиться после пополнения или разрешённого изменения лимита. После прерываний возможно выполнение «как минимум один раз», поэтому внешние действия инструментов приложения должны иметь собственную идемпотентность.
У каждого выполненного элемента есть отдельная запись запроса с идентификатором пакета и сохранённым пакетным ценовым коэффициентом. Коэффициент задаётся тарифным шаблоном и по умолчанию равен единице. Официальные справочные цены и оценка обнуляемого usage учитываются отдельно от фактического списания.