Claude Message Batches
Používejte dávky zpráv kompatibilní s Anthropic, zatímco Model Gate provádí každou položku prostřednictvím své odolné interní fronty.
Claude Message Batches
Stávající dávkové operace čtení/řízení zůstávají dostupné s nulovým zůstatkem pro jinak platné aktivní pověření, ale POST /v1/messages/batches vyžaduje nový kladný zůstatek/útratu před uložením jakýchkoli řádků úloh/položky. Klíč s nulovým zůstatkem proto nemůže vytvořit novou dávku Claude ani spotřebovat retenční úložiště MariaDB. Skutečné položky znovu zkontrolují příjem, když si je pracovníci vyžádají, a čekají v trvalé frontě, pokud budou prostředky později vyčerpány. Vstup se dekóduje postupně po položkách, místo aby se načítal jako úplný dokument JSON s velikostí 256 MB v paměti, a kvóty aktivních úloh/položky ve frontě na uživatele vážou zneužití úložiště nezávisle na účtování.
Model Gate implementuje rozhraní Message Batches API kompatibilní s Anthropic https://api.model-gate.com. Je to vrstva kompatibility: Model Gate trvale ukládá dávku a provádí každou položku přes normální Model Gate /v1/messages cesta. To ano ne odeslat antropickou dávku nativního poskytovatele proti proudu.
Použijte normální klíč API modelu (mg_live_...). Každá položka je účtována jako individuální požadavek request_mode=batch, batch_protocol=claude, ID dávky a jeho custom_id.
Streamování není v dávce podporováno. Aliasy modelu jsou vyřešeny před zařazením položky do fronty.
Vytvořte dávku zpráv
Žádost
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."}]
}
}
]
}'
Odpověď - 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
}
Načíst dávku
Žádost
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
Odpověď – ukončeno
{
"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"
}
Přečtěte si výsledky
Výsledky jsou vráceny jako JSON Lines. Nepředpokládejte, že aplikační logika závisí na původním pořadí vstupů; výsledky zápasů podle custom_id.
Žádost
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../results \
-H "x-api-key: mg_live_..."
Odpověď - 200
{"custom_id":"summary-1","result":{"type":"succeeded","message":{"id":"msg_...","type":"message","role":"assistant","content":[{"type":"text","text":"..."}]}}}
Seznam šarží
limit výchozí na 20 a musí být od 1 na 100. Použití after_id nebo before_id pro stránkování kurzoru; neposílejte oba v jedné žádosti.
Žádost
curl "https://api.model-gate.com/v1/messages/batches?limit=20&after_id=msgbatch_01K..." \
-H "x-api-key: mg_live_..."
Odpověď - 200
{
"data": [],
"has_more": false,
"first_id": null,
"last_id": null
}
Zrušte dávku
Zrušit zastaví nárokování položek ve frontě. Zpracování položky může být dokončeno.
Žádost
curl -X POST https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../cancel \
-H "x-api-key: mg_live_..."
Odpověď - 200
{
"id": "msgbatch_01K...",
"type": "message_batch",
"processing_status": "canceling",
"request_counts": {
"processing": 1,
"succeeded": 0,
"errored": 0,
"canceled": 0,
"expired": 0
}
}
Smazat ukončenou dávku
Smazání je akceptováno až poté, co dávka dosáhne koncového stavu.
Žádost
curl -X DELETE https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
Odpověď - 200
{
"id": "msgbatch_01K...",
"type": "message_batch_deleted"
}
Sémantika obnovy
Dávkové položky používají stejnou trvalou frontu jako nativní asynchronní požadavky. Zotavení je alespoň jednou, ne přesně jednou: po havárii pracovníka lze opuštěný pronájem získat zpět a položka může být znovu odeslána proti proudu, pokud první odpověď proti proudu nebyla trvale uložena. ID požadavku Model Gate zůstává stabilní během opakování a strážci vypořádání zabraňují druhému debetu z účtu za již dokončený požadavek.
Každá položka je přijata bezprostředně předtím, než ji pracovník uplatní. Jinak platné položky zůstávají ve frontě, dokud je aktuální zůstatek na účtu nekladný nebo je již vyčerpán limit útraty, který lze resetovat klíčem/skupinou; čekání na prostředky nespotřebuje pokus ani neoznačí položku jako neúspěšnou. Pozdější dobití, resetování využití nebo zvýšení limitu automaticky obnoví způsobilé položky ve frontě. Model Gate si nerezervuje náklady na dávku v nejhorším případě, takže souběžně přijaté položky mohou skončit se záporným konečným zůstatkem nebo malým překročením limitu útraty; pouze následující nové položky jsou drženy.
Ceny a účetnictví
Každá položka v dávce používá stejné směrování modelu, účtování tokenů, snímek cen, ocenění využití, limity klíče API/skupiny a logiku vypořádání jako běžný požadavek brány modelu. Správce může nakonfigurovat a Koeficient ceny šarže požadavku na šabloně cen účtu. Výchozí nastavení je 1.
Například s běžnými náklady Model Gate 0.02 a dávkový koeficient 0.5, skutečný debet účtu je 0.01. Uložená referenční částka oficiálního poskytovatele není násobena tímto dávkovým koeficientem Model Gate. Nativní požadavky pomocí "async": true také nejsou ovlivněny.
Pokud se koeficient liší od 1, je zobrazen na stránce Modelové ceny a v /v1/models jako batch_pricing plus efektivní batch_cost sazby.
Chyby
Neplatné nebo duplicitní custom_idneznámý model, stream:true, vnořené async:true, příliš velký požadavek nebo neplatné tělo vrátí normální chybovou odpověď antropického stylu.
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "summary-1: stream=true is not supported inside a batch"
}
}