B2BB2B LLM

Claude Message Batches

Използвайте партиди съобщения, съвместими с Anthropic, докато Model Gate изпълнява всеки елемент чрез своята издръжлива вътрешна опашка.

Claude Message Batches

Съществуващите партидни операции за четене/контрол остават налични при нулев баланс за иначе валидни активни идентификационни данни, но POST /v1/messages/batches изисква нов положителен баланс/допускане на разходи, преди да бъдат съхранени редове за работа/артикул. Следователно ключът с нулев баланс не може да създаде нова партида Claude или да използва хранилище за задържане на MariaDB. Действителните артикули проверяват повторно приемането, когато работниците ги поискат, и чакат на трайната опашка, ако средствата са изчерпани по-късно. Входящите данни се декодират постепенно елемент по елемент, вместо да се зареждат като пълен JSON документ от 256 MB в паметта, а квотите за активно задание/елемент на опашка за всеки потребител обвързват злоупотреба със съхранение независимо от таксуването.

Model Gate внедрява API за пакети съобщения, съвместим с Anthropic https://api.model-gate.com. Това е слой за съвместимост: Model Gate съхранява трайно партидата и изпълнява всеки елемент през нормалния Model Gate /v1/messages път. Това го прави не изпратете родна на доставчика Anthropic партида нагоре по веригата.

Използвайте нормален ключ за API на модела (mg_live_...). Всеки артикул се отчита като индивидуална заявка с request_mode=batch, batch_protocol=claude, ИД на партидата и нейния custom_id.

Поточното предаване не се поддържа в пакет. Псевдонимите на модела се разрешават, преди елементът да бъде поставен в опашка.

Създайте пакет от съобщения

Заявка

curl https://api.model-gate.com/v1/messages/batches \
  -H "x-api-key: mg_live_..." \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "requests": [
      {
        "custom_id": "summary-1",
        "params": {
          "model": "ch-47",
          "max_tokens": 256,
          "messages": [{"role":"user","content":"Summarize this text."}]
        }
      }
    ]
  }'

Отговор — 200

{
  "id": "msgbatch_01K...",
  "type": "message_batch",
  "processing_status": "in_progress",
  "request_counts": {
    "processing": 1,
    "succeeded": 0,
    "errored": 0,
    "canceled": 0,
    "expired": 0
  },
  "ended_at": null,
  "created_at": "2026-08-13T08:30:00Z",
  "expires_at": "2026-08-14T08:30:00Z",
  "cancel_initiated_at": null,
  "results_url": null
}

Извличане на партида

Заявка

curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
  -H "x-api-key: mg_live_..."

Отговор — приключи

{
  "id": "msgbatch_01K...",
  "type": "message_batch",
  "processing_status": "ended",
  "request_counts": {
    "processing": 0,
    "succeeded": 1,
    "errored": 0,
    "canceled": 0,
    "expired": 0
  },
  "ended_at": "2026-08-13T08:30:04Z",
  "results_url": "https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../results"
}

Прочетете резултатите

Резултатите се връщат като JSON линии. Не приемайте, че логиката на приложението зависи от първоначалния входен ред; резултати от мачове от custom_id.

Заявка

curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../results \
  -H "x-api-key: mg_live_..."

Отговор — 200

{"custom_id":"summary-1","result":{"type":"succeeded","message":{"id":"msg_...","type":"message","role":"assistant","content":[{"type":"text","text":"..."}]}}}

Избройте партиди

limit по подразбиране 20 и трябва да е от 1 към 100. Използвайте after_id или before_id за страниране на курсора; не изпращайте и двете в една заявка.

Заявка

curl "https://api.model-gate.com/v1/messages/batches?limit=20&after_id=msgbatch_01K..." \
  -H "x-api-key: mg_live_..."

Отговор — 200

{
  "data": [],
  "has_more": false,
  "first_id": null,
  "last_id": null
}

Отмяна на партида

Отказът спира заявяването на елементи от опашка. Елемент, който вече се обработва, може да завърши.

Заявка

curl -X POST https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../cancel \
  -H "x-api-key: mg_live_..."

Отговор — 200

{
  "id": "msgbatch_01K...",
  "type": "message_batch",
  "processing_status": "canceling",
  "request_counts": {
    "processing": 1,
    "succeeded": 0,
    "errored": 0,
    "canceled": 0,
    "expired": 0
  }
}

Изтриване на приключила партида

Изтриването се приема само след като партидата достигне крайно състояние.

Заявка

curl -X DELETE https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
  -H "x-api-key: mg_live_..."

Отговор — 200

{
  "id": "msgbatch_01K...",
  "type": "message_batch_deleted"
}

Семантика за възстановяване

Пакетните елементи използват същата трайна опашка като собствените асинхронни заявки. Възстановяването е най-малко-веднъж, не точно веднъж: след срив на работник, изоставен лизинг може да бъде възстановен и даден елемент може да бъде изпратен отново нагоре по веригата, ако първият отговор нагоре по веригата не е бил трайно съхранен. Идентификаторът на заявката за модел Gate остава стабилен при повторни опити и защитниците на сетълмента предотвратяват втори дебит на сметка за вече завършена заявка.

Всеки артикул се приема незабавно, преди работникът да го потърси. В противен случай валидните артикули остават на опашка, докато текущото салдо по сметката не е положително или лимитът за разходи за ключ/група, който може да се нулира, вече е изчерпан; изчакването на средства не изразходва опит или маркира елемента като неуспешен. По-късно допълване, нулиране на използването или увеличаване на лимита автоматично възобновява отговарящите на условията елементи в опашката. Model Gate не запазва партидна цена за най-лошия случай, така че едновременно допуснатите елементи може да завършат с отрицателен краен баланс или малко превишаване на лимита на разходите; се съхраняват само следващите нови елементи.

Ценообразуване и счетоводство

Всеки артикул от партида използва същия модел маршрутизиране, отчитане на токени, моментна снимка на ценообразуване, оценка на използването, API-ключ/групови ограничения и логика на сетълмент като нормална заявка за модел Gate. Администратор може да конфигурира a Ценови коефициент на партидна заявка в шаблона за ценообразуване на акаунта. По подразбиране е 1.

Например, с нормална цена на модела Gate 0.02 и партиден коефициент 0.5, действителният дебит на сметката е 0.01. Запазената референтна сума на официалния доставчик не се умножава по този партиден коефициент на Model Gate. Използване на собствени заявки "async": true също не са засегнати.

Ако коефициентът се различава от 1, той е показан на страницата Цени на модела и в /v1/models като batch_pricing плюс ефективното batch_cost ставки.

Грешки

Невалиден или дублиран custom_id, неизвестен модел, stream:true, вложени async:true, прекалено голяма заявка или невалидно тяло връща нормален отговор за грешка в антропичен стил.

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "summary-1: stream=true is not supported inside a batch"
  }
}