Claude Message Batches
Model Gate が耐久性のある内部キューを通じてすべての項目を実行している間、Anthropic 互換のメッセージ バッチを使用します。
Claude Message Batches
既存のバッチ読み取り/制御操作は、それ以外の場合は有効なアクティブな資格情報に対してゼロ残高で引き続き使用できますが、 POST /v1/messages/batches ジョブ/アイテム行が保存される前に、新たなプラス残高/支出許可が必要です。したがって、ゼロバランス キーでは、新しいクロード バッチを作成したり、MariaDB 保持ストレージを消費したりすることはできません。実際のアイテムは、労働者がそれらを要求したときに入場を再チェックし、後で資金がなくなった場合は耐久キューで待機します。入力は、完全な 256 MB のメモリ内 JSON ドキュメントとしてロードされるのではなく、項目ごとに増分的にデコードされ、ユーザーごとのアクティブ ジョブ/キューに登録された項目のクォータは、請求とは関係なくストレージの乱用にバインドされます。
Model Gate は、Anthropic 互換のメッセージ バッチ API を実装します。 https://api.model-gate.com。これは互換性レイヤーです。Model Gate はバッチを永続的に保存し、通常の Model Gate を通じて各項目を実行します。 /v1/messages パス。それはあります ない プロバイダーネイティブの Anthropic バッチをアップストリームに送信します。
通常のモデル API キー (mg_live_...)。すべての項目は個別のリクエストとして考慮されます。 request_mode=batch、 batch_protocol=claude、バッチ ID、およびその custom_id。
バッチ内ではストリーミングはサポートされていません。モデルのエイリアスは、項目がキューに入れられる前に解決されます。
メッセージバッチを作成する
リクエスト
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."}]
}
}
]
}'
応答 — 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
}
バッチを取得する
リクエスト
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
応答 — 終了しました
{
"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"
}
結果の読み取り
結果は JSON 行として返されます。アプリケーションのロジックが元の入力順序に依存するとは想定しないでください。結果の一致 custom_id。
リクエスト
curl https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../results \
-H "x-api-key: mg_live_..."
応答 — 200
{"custom_id":"summary-1","result":{"type":"succeeded","message":{"id":"msg_...","type":"message","role":"assistant","content":[{"type":"text","text":"..."}]}}}
バッチをリストする
limit デフォルトは 20 そしてからのものでなければなりません 1 に 100。使用 after_id または before_id カーソルのページネーション用。 1 つのリクエストで両方を送信しないでください。
リクエスト
curl "https://api.model-gate.com/v1/messages/batches?limit=20&after_id=msgbatch_01K..." \
-H "x-api-key: mg_live_..."
応答 — 200
{
"data": [],
"has_more": false,
"first_id": null,
"last_id": null
}
バッチをキャンセルする
キャンセルすると、キューに登録されたアイテムの取得が停止されます。すでに処理されている項目が終了する場合があります。
リクエスト
curl -X POST https://api.model-gate.com/v1/messages/batches/msgbatch_01K.../cancel \
-H "x-api-key: mg_live_..."
応答 — 200
{
"id": "msgbatch_01K...",
"type": "message_batch",
"processing_status": "canceling",
"request_counts": {
"processing": 1,
"succeeded": 0,
"errored": 0,
"canceled": 0,
"expired": 0
}
}
終了したバッチを削除する
削除は、バッチが終了状態に達した後にのみ受け入れられます。
リクエスト
curl -X DELETE https://api.model-gate.com/v1/messages/batches/msgbatch_01K... \
-H "x-api-key: mg_live_..."
応答 — 200
{
"id": "msgbatch_01K...",
"type": "message_batch_deleted"
}
回復セマンティクス
バッチ項目は、ネイティブの非同期リクエストと同じ永続キューを使用します。回復というのは、 少なくとも1回正確に 1 回ではありません: ワーカーのクラッシュ後、放棄されたリースを再利用することができ、最初のアップストリーム応答が永続的に保存されていない場合は、アイテムが再度アップストリームに送信される可能性があります。 Model Gate リクエスト ID は再試行後も安定しており、決済ガードにより、すでに終了したリクエストに対する 2 回目の口座引き落としが防止されます。
各物品は、労働者が請求する直前に認められます。それ以外の場合は、現在のアカウント残高がプラスでない間、またはキー/グループのリセット可能な使用制限がすでに使い果たされている間、有効なアイテムはキューに残されたままになります。資金を待っても試行は消費されず、アイテムに失敗のマークも付けられません。後で補充、使用量のリセット、または制限の増加を行うと、対象となるキュー内のアイテムが自動的に再開されます。 Model Gate では最悪の場合のバッチ コストが予約されていないため、同時に承認された項目は最終残高がマイナスになるか、支出制限をわずかに超過して終了する可能性があります。後続の新しいアイテムのみが保持されます。
価格設定と会計
各バッチ アイテムは、通常の Model Gate リクエストと同じモデル ルーティング、トークン アカウンティング、価格スナップショット、使用量評価、API キー/グループ制限、決済ロジックを使用します。管理者は、 バッチリクエスト価格係数 アカウント価格設定テンプレートで。デフォルトは 1。
たとえば、通常の Model Gate コストの場合 0.02 とバッチ係数 0.5、実際の口座引き落としは 0.01。保存された公式プロバイダーの基準額には、このモデル ゲートのバッチ係数は乗算されません。を使用したネイティブ リクエスト "async": true も影響を受けません。
係数が異なる場合 1、モデル価格ページと /v1/models として batch_pricing プラス効果的な batch_cost 料金。
エラー
無効または重複しています custom_id不明なモデル、 stream:true、入れ子になった async:true、サイズが大きすぎるリクエスト、または無効な本文の場合は、通常の Anthropic スタイルのエラー応答が返されます。
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "summary-1: stream=true is not supported inside a batch"
}
}