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"
}
}