Claude Message Batches
Utilitzeu lots de missatges compatibles amb Anthropic mentre Model Gate executa tots els elements a través de la seva cua interna duradora.
Claude Message Batches
Les operacions de control/lectura per lots existents romanen disponibles amb un saldo zero per a una credencial activa d'una altra manera vàlida, però POST /v1/messages/batches requereix una nova admissió de saldo positiu/despesa abans que s'emmagatzemin qualsevol fila de treball/element. Per tant, una clau de balanç zero no pot crear un nou lot de Claude ni consumir emmagatzematge de retenció MariaDB. Els articles reals tornen a comprovar l'admissió quan els treballadors els reclamen i esperen a la cua duradora si més tard s'esgoten els fons. L'entrada es descodifica de manera incremental element per element en lloc de carregar-se com un document JSON complet de 256 MB a la memòria, i les quotes de treball actiu/element en cua per usuari limiten l'abús d'emmagatzematge independentment de la facturació.
Model Gate implementa una API de lots de missatges compatible amb Anthropic https://api.model-gate.com. És una capa de compatibilitat: Model Gate emmagatzema el lot de manera duradora i executa cada element mitjançant la Model Gate normal /v1/messages camí. Ho fa no enviar un lot antròpic natiu del proveïdor aigües amunt.
Utilitzeu una clau API de model normal (mg_live_...). Cada article es comptabilitza com una sol·licitud individual amb request_mode=batch, batch_protocol=claude, l'identificador del lot i el seu custom_id.
La reproducció en temps real no s'admet dins d'un lot. Els àlies de model es resolen abans que l'element estigui a la cua.
Creeu un lot de missatges
Sol·licitud
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."}]
}
}
]
}'
Resposta: 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
}
Recuperar un lot
Sol·licitud
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
Resposta: acabada
{
"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"
}
Llegeix els resultats
Els resultats es tornen com a línies JSON. No suposeu que la lògica de l'aplicació depèn de l'ordre d'entrada original; resultats del partit per custom_id.
Sol·licitud
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../results \
-H "x-api-key: mg_live_..."
Resposta: 200
{"custom_id":"summary-1","result":{"type":"succeeded","message":{"id":"msg_...","type":"message","role":"assistant","content":[{"type":"text","text":"..."}]}}}
Llista de lots
limit per defecte 20 i ha de ser de 1 a 100. Ús after_id o before_id per a la paginació del cursor; no envieu tots dos en una sol·licitud.
Sol·licitud
curl "https://api.model-gate.com/v1/messages/batches?limit=20&after_id=msgbatch_01K..." \
-H "x-api-key: mg_live_..."
Resposta: 200
{
"data": [],
"has_more": false,
"first_id": null,
"last_id": null
}
Cancel·la un lot
Cancel·la evita que es reclamin els articles a la cua. És possible que un element ja s'està processant.
Sol·licitud
curl -X POST https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../cancel \
-H "x-api-key: mg_live_..."
Resposta: 200
{
"id": "msgbatch_01K...",
"type": "message_batch",
"processing_status": "canceling",
"request_counts": {
"processing": 1,
"succeeded": 0,
"errored": 0,
"canceled": 0,
"expired": 0
}
}
Suprimeix un lot finalitzat
La supressió només s'accepta després que el lot hagi arribat a un estat terminal.
Sol·licitud
curl -X DELETE https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
Resposta: 200
{
"id": "msgbatch_01K...",
"type": "message_batch_deleted"
}
Semàntica de recuperació
Els elements del lot utilitzen la mateixa cua duradora que les sol·licituds asíncrones natives. La recuperació és almenys una vegada, no exactament una vegada: després d'un accident d'un treballador, es pot reclamar un contracte d'arrendament abandonat i es pot tornar a enviar un element aigües amunt si la primera resposta aigües amunt no s'ha emmagatzemat de manera duradora. L'identificador de sol·licitud de Model Gate es manté estable durant els reintents i els guàrdies de liquidació impedeixen un segon dèbit al compte per a una sol·licitud ja finalitzada.
Cada element s'admet immediatament abans que un treballador el reclami. En cas contrari, els articles vàlids romanen a la cua mentre el saldo del compte actual no és positiu o ja s'ha esgotat el límit de despesa restabliment de claus/grups; l'espera de fons no consumeix cap intent ni marca l'article fallit. Una recàrrega posterior, un restabliment d'ús o un augment del límit reprendran automàticament els articles a la cua aptes. Model Gate no reserva un cost per lots en el pitjor dels casos, de manera que els articles admesos simultàniament poden acabar amb un saldo final negatiu o un petit sobrepassament del límit de despesa; només es conserven elements nous posteriors.
Preus i comptabilitat
Cada element de lot utilitza el mateix model d'encaminament, comptabilitat de testimonis, instantània de preus, valoració d'ús, límits de clau API/grup i lògica de liquidació com una sol·licitud de Model Gate normal. Un administrador pot configurar a Coeficient de preu de sol·licitud de lot a la plantilla de preus del compte. El valor predeterminat és 1.
Per exemple, amb el cost normal de Model Gate 0.02 i coeficient de lot 0.5, el dèbit real del compte és 0.01. The saved official-provider reference amount is not multiplied by this Model Gate batch coefficient. Sol·licituds natives utilitzant "async": true tampoc es veuen afectats.
Si el coeficient difereix de 1, es mostra a la pàgina de preus del model i a /v1/models com batch_pricing més l'eficaç batch_cost tarifes.
Errors
No vàlid o duplicat custom_id, un model desconegut, stream:true, niu async:true, una sol·licitud de gran mida o un cos no vàlid retorna una resposta d'error normal d'estil antròpic.
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "summary-1: stream=true is not supported inside a batch"
}
}