B2BB2B LLM

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