Claude Message Batches
Utilizza batch di messaggi compatibili con Anthropic mentre Model Gate esegue ogni elemento attraverso la sua coda interna durevole.
Claude Message Batches
Le operazioni di lettura/controllo batch esistenti rimangono disponibili con saldo pari a zero per una credenziale attiva altrimenti valida, ma POST /v1/messages/batches richiede una nuova ammissione di saldo positivo/spesa prima che qualsiasi riga di lavoro/articolo venga archiviata. Una chiave a saldo zero pertanto non può creare un nuovo batch Claude o consumare spazio di conservazione di MariaDB. Gli elementi effettivi ricontrollano l'ammissione quando i lavoratori li richiedono e attendono in coda durevole se i fondi vengono successivamente esauriti. L'input viene decodificato in modo incrementale elemento per elemento anziché caricato come un documento JSON in memoria completo da 256 MB e le quote di lavoro attivo/elemento in coda per utente limitano l'abuso di archiviazione indipendentemente dalla fatturazione.
Model Gate implementa un'API Message Batches compatibile con Anthropic su https://api.model-gate.com. È un livello di compatibilità: Model Gate archivia il batch in modo duraturo ed esegue ciascun articolo tramite il normale Model Gate /v1/messages sentiero. Lo fa non inviare a monte un batch antropico nativo del provider.
Utilizza una normale chiave API del modello (mg_live_...). Ogni articolo viene contabilizzato come una richiesta individuale request_mode=batch, batch_protocol=claude, l'ID batch e il suo custom_id.
Lo streaming non è supportato all'interno di un batch. Gli alias del modello vengono risolti prima che l'elemento venga messo in coda.
Crea un batch di messaggi
Richiesta
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."}]
}
}
]
}'
Risposta: 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
}
Recupera un lotto
Richiesta
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
Risposta: terminata
{
"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"
}
Leggi i risultati
I risultati vengono restituiti come linee JSON. Non dare per scontato che la logica dell'applicazione dipenda dall'ordine di input originale; risultati della corrispondenza per custom_id.
Richiesta
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../results \
-H "x-api-key: mg_live_..."
Risposta: 200
{"custom_id":"summary-1","result":{"type":"succeeded","message":{"id":"msg_...","type":"message","role":"assistant","content":[{"type":"text","text":"..."}]}}}
Elenca i lotti
limit il valore predefinito è 20 e deve provenire da 1 A 100. Utilizzo after_id O before_id per l'impaginazione del cursore; non inviare entrambi in un'unica richiesta.
Richiesta
curl "https://api.model-gate.com/v1/messages/batches?limit=20&after_id=msgbatch_01K..." \
-H "x-api-key: mg_live_..."
Risposta: 200
{
"data": [],
"has_more": false,
"first_id": null,
"last_id": null
}
Annulla un batch
Annulla impedisce che gli elementi in coda vengano rivendicati. Un elemento già in elaborazione potrebbe terminare.
Richiesta
curl -X POST https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../cancel \
-H "x-api-key: mg_live_..."
Risposta: 200
{
"id": "msgbatch_01K...",
"type": "message_batch",
"processing_status": "canceling",
"request_counts": {
"processing": 1,
"succeeded": 0,
"errored": 0,
"canceled": 0,
"expired": 0
}
}
Elimina un batch terminato
L'eliminazione viene accettata solo dopo che il batch ha raggiunto uno stato terminale.
Richiesta
curl -X DELETE https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
Risposta: 200
{
"id": "msgbatch_01K...",
"type": "message_batch_deleted"
}
Semantica del recupero
Gli elementi batch utilizzano la stessa coda durevole delle richieste asincrone native. Il recupero è almeno una volta, non esattamente una volta: dopo un crash del lavoratore, un lease abbandonato può essere recuperato e un elemento può essere inviato nuovamente a monte se la prima risposta a monte non è stata archiviata in modo duraturo. L'ID della richiesta Model Gate rimane stabile tra i nuovi tentativi e le protezioni della transazione impediscono un secondo addebito sul conto per una richiesta già completata.
Ogni oggetto viene ammesso immediatamente prima che un lavoratore lo reclami. Gli elementi altrimenti validi rimangono in coda mentre il saldo del conto corrente non è positivo o il limite di spesa ripristinabile della chiave/gruppo è già esaurito; l'attesa dei fondi non consuma un tentativo né contrassegna l'elemento come fallito. Una successiva ricarica, reimpostazione dell'utilizzo o aumento del limite ripristina automaticamente gli elementi idonei in coda. Model Gate non riserva un costo batch nel caso peggiore, pertanto gli articoli ammessi contemporaneamente potrebbero terminare con un saldo finale negativo o un piccolo superamento del limite di spesa; vengono conservati solo i nuovi elementi successivi.
Prezzi e contabilità
Ogni articolo batch utilizza lo stesso routing del modello, contabilità dei token, istantanea dei prezzi, valutazione dell'utilizzo, limiti di chiave API/gruppo e logica di liquidazione di una normale richiesta di Model Gate. Un amministratore può configurare a Coefficiente di prezzo della richiesta batch sul modello di prezzi dell'account. L'impostazione predefinita è 1.
Ad esempio, con il normale costo del Portale Modello 0.02 e coefficiente batch 0.5, l'addebito effettivo sul conto è 0.01. L'importo di riferimento del fornitore ufficiale risparmiato non viene moltiplicato per questo coefficiente batch Model Gate. Richieste native utilizzando "async": true inoltre non sono interessati.
Se il coefficiente è diverso da 1, è mostrato nella pagina Prezzi dei modelli e in /v1/models COME batch_pricing più l'efficace batch_cost tariffe.
Errori
Non valido o duplicato custom_id, un modello sconosciuto, stream:true, annidato async:true, una richiesta sovradimensionata o un corpo non valido restituisce una normale risposta di errore in stile antropico.
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "summary-1: stream=true is not supported inside a batch"
}
}