Claude Message Batches
Bruk antropisk-kompatible meldingsgrupper mens Model Gate kjører hvert element gjennom sin varige interne kø.
Claude Message Batches
Eksisterende batch lese-/kontrolloperasjoner forblir tilgjengelige ved null saldo for en ellers gyldig aktiv legitimasjon, men POST /v1/messages/batches krever ny positiv saldo/forbruksopptak før noen jobb-/varerader lagres. En nullbalansenøkkel kan derfor ikke opprette en ny Claude-batch eller bruke MariaDB-oppbevaringslagring. Faktiske gjenstander kontrollerer adgangen på nytt når arbeiderne krever dem og venter i den varige køen hvis midlene senere er oppbrukt. Inndata dekodes trinnvis element for element i stedet for å lastes inn som et komplett 256 MB minnet JSON-dokument, og per-bruker aktiv-jobb/kø-element-kvoter binder lagringsmisbruk uavhengig av fakturering.
Model Gate implementerer en Anthropic-kompatibel Message Batches API på https://api.model-gate.com. Det er et kompatibilitetslag: Model Gate lagrer partiet holdbart og kjører hvert element gjennom den vanlige Model Gate /v1/messages sti. Det gjør det ikke sende inn en leverandørbasert antropisk batch oppstrøms.
Bruk en vanlig modell API-nøkkel (mg_live_...). Hver vare er regnskapsført som en individuell forespørsel med request_mode=batch, batch_protocol=claude, batch-IDen og dens custom_id.
Streaming støttes ikke i en batch. Modellaliaser løses før varen settes i kø.
Opprett en meldingsbatch
Forespørsel
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
}
Hent en batch
Forespørsel
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
Svar — avsluttet
{
"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"
}
Les resultater
Resultatene returneres som JSON-linjer. Ikke anta at applikasjonslogikken avhenger av den opprinnelige inndatarekkefølgen; match resultater av custom_id.
Forespørsel
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":"..."}]}}}
Liste partier
limit standard til 20 og må være fra 1 til 100. Bruk after_id eller before_id for markørpaginering; ikke send begge i en forespørsel.
Forespørsel
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 hindrer at varer i kø blir gjort krav på. Et element som allerede behandles, kan fullføres.
Forespørsel
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
}
}
Slett en avsluttet batch
Sletting aksepteres først etter at batchen har nådd en terminaltilstand.
Forespørsel
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"
}
Gjenopprettingssemantikk
Batch-elementer bruker den samme holdbare køen som native async-forespørsler. Gjenoppretting er minst én gang, ikke nøyaktig én gang: etter en arbeiderkrasj kan en forlatt leieavtale kreves tilbake, og en vare kan sendes oppstrøms igjen hvis den første oppstrømsresponsen ikke var varig lagret. Model Gate-forespørsels-IDen forblir stabil over gjentatte forsøk, og oppgjørsvakter forhindrer en ekstra kontodebitering for en allerede fullført forespørsel.
Hver vare blir tatt opp umiddelbart før en arbeider gjør krav på den. Ellers gyldige varer forblir i kø mens gjeldende kontosaldo er ikke-positiv eller den tilbakestillelige forbruksgrensen for nøkkel/gruppe allerede er oppbrukt; venter på midler ikke bruker et forsøk eller markerer at varen mislyktes. En senere påfylling, tilbakestilling av bruk eller grenseøkning gjenopptar automatisk kvalifiserte varer i kø. Model Gate reserverer ikke en worst-case batch-kostnad, så samtidig innrømmede varer kan avsluttes med en negativ sluttsaldo eller en liten overskridelse av forbruksgrensen; bare påfølgende nye elementer holdes.
Prising og regnskap
Hver batchvare bruker samme modellruting, token-regnskap, prisbilde, bruksvurdering, API-nøkkel/gruppegrenser og oppgjørslogikk som en vanlig Model Gate-forespørsel. En administrator kan konfigurere en Batch forespørsel pris koeffisient på kontoprismalen. Standard er 1.
For eksempel med normal Model Gate-kostnad 0.02 og batch-koeffisient 0.5, er den faktiske kontobelastningen 0.01. Det lagrede referansebeløpet for offisiell leverandør multipliseres ikke med denne Model Gate-batch-koeffisienten. Innfødte forespørsler ved hjelp av "async": true er heller ikke berørt.
Hvis koeffisienten er forskjellig fra 1, vises det på Modellpriser-siden og i /v1/models som batch_pricing pluss det effektive batch_cost priser.
Feil
Ugyldig eller duplikat custom_id, en ukjent modell, stream:true, nestet async:true, en overdimensjonert forespørsel eller en ugyldig kropp returnerer et normalt antropisk feilsvar.
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "summary-1: stream=true is not supported inside a batch"
}
}