Claude Message Batches
Använd Anthropic-kompatibla meddelandebatcher medan Model Gate kör varje objekt genom sin hållbara interna kö.
Claude Message Batches
Befintliga batchläs-/kontrolloperationer förblir tillgängliga vid nollsaldo för en annars giltig aktiv referens, men POST /v1/messages/batches kräver ett nytt positivt saldo/utgiftstillträde innan några jobb-/objektrader lagras. En nollbalansnyckel kan därför inte skapa en ny Claude-batch eller förbruka MariaDB-lagringslagring. Faktiska föremål kontrollerar tillträdet igen när arbetarna gör anspråk på dem och väntar i den varaktiga kön om pengarna senare är förbrukade. Indata avkodas inkrementellt objekt för objekt istället för att laddas som ett komplett 256 MB minnes JSON-dokument, och kvoter för aktivt jobb/köade objekt per användare binder lagringsmissbruk oberoende av fakturering.
Model Gate implementerar ett Anthropic-kompatibelt Message Batches API på https://api.model-gate.com. Det är ett kompatibilitetslager: Model Gate lagrar partiet varaktigt och kör varje objekt genom den normala Model Gate /v1/messages väg. Det gör det inte skicka in en leverantörsbaserad antropisk batch uppströms.
Använd en normal modell API-nyckel (mg_live_...). Varje artikel redovisas som en individuell förfrågan med request_mode=batch, batch_protocol=claude, batch-ID och dess custom_id.
Streaming stöds inte i en batch. Modellalias löses innan objektet ställs i kö.
Skapa en meddelandebatch
Begäran
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."}]
}
}
]
}'
Svar - 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
}
Hämta en batch
Begäran
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
Svar — avslutat
{
"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"
}
Läs resultat
Resultaten returneras som JSON-linjer. Anta inte att applikationslogik beror på den ursprungliga inmatningsordningen; matcha resultat av custom_id.
Begäran
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../results \
-H "x-api-key: mg_live_..."
Svar - 200
{"custom_id":"summary-1","result":{"type":"succeeded","message":{"id":"msg_...","type":"message","role":"assistant","content":[{"type":"text","text":"..."}]}}}
Lista partier
limit standard till 20 och måste vara från 1 till 100. Använda after_id eller before_id för markörpaginering; skicka inte båda i en förfrågan.
Begäran
curl "https://api.model-gate.com/v1/messages/batches?limit=20&after_id=msgbatch_01K..." \
-H "x-api-key: mg_live_..."
Svar - 200
{
"data": [],
"has_more": false,
"first_id": null,
"last_id": null
}
Avbryt en batch
Avbryt förhindrar att föremål i kö görs anspråk på. En vara som redan bearbetas kan avslutas.
Begäran
curl -X POST https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../cancel \
-H "x-api-key: mg_live_..."
Svar - 200
{
"id": "msgbatch_01K...",
"type": "message_batch",
"processing_status": "canceling",
"request_counts": {
"processing": 1,
"succeeded": 0,
"errored": 0,
"canceled": 0,
"expired": 0
}
}
Ta bort en avslutad batch
Radering accepteras först efter att batchen har nått ett terminaltillstånd.
Begäran
curl -X DELETE https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
Svar - 200
{
"id": "msgbatch_01K...",
"type": "message_batch_deleted"
}
Återställningssemantik
Batchobjekt använder samma hållbara kö som inbyggda asynkförfrågningar. Återhämtning är åtminstone en gång, inte exakt-en gång: efter en arbetarkrasch kan ett övergivet hyresavtal återkrävas, och en vara kan skickas uppströms igen om det första uppströmssvaret inte lagrades varaktigt. Model Gate-förfrågnings-ID förblir stabilt över försök och avvecklingsvakter förhindrar en andra kontodebitering för en redan avslutad begäran.
Varje föremål släpps in omedelbart innan en arbetare gör anspråk på det. Annars giltiga poster förblir i kö medan kontosaldot är icke-positivt eller den återställningsbara utgiftsgränsen för nyckel/grupp redan är förbrukad; väntar på pengar förbrukar inte ett försök eller markerar objektet som misslyckat. En senare påfyllning, användningsåterställning eller gränshöjning återupptar automatiskt kvalificerade artiklar i kö. Model Gate reserverar inte en batchkostnad i värsta fall, så samtidigt upptagna artiklar kan sluta med ett negativt slutsaldo eller en liten överskridande av utgiftsgränsen; endast efterföljande nya poster hålls.
Prissättning och redovisning
Varje batchartikel använder samma modellrouting, tokenredovisning, prissättningsögonblicksbild, användningsvärdering, API-nyckel/gruppgränser och avvecklingslogik som en normal Model Gate-förfrågan. En administratör kan konfigurera en Priskoefficient för batchbegäran på kontoprismallen. Standard är 1.
Till exempel med normal Model Gate-kostnad 0.02 och batchkoefficient 0.5, är den faktiska kontodebiteringen 0.01. Det sparade referensbeloppet från den officiella leverantören multipliceras inte med denna Model Gate-batchkoefficient. Inbyggda förfrågningar med hjälp av "async": true påverkas inte heller.
Om koefficienten skiljer sig från 1, visas det på sidan Modellpriser och i /v1/models som batch_pricing plus det effektiva batch_cost priser.
Fel
Ogiltig eller dubblett custom_id, en okänd modell, stream:true, kapslad async:true, en överdimensionerad begäran eller en ogiltig kropp returnerar ett normalt felsvar av antropisk stil.
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "summary-1: stream=true is not supported inside a batch"
}
}