第4章 · Advanced Claude API
Batch API で大量処理
Batch API
→ で次のスライド · F でフルスクリーン · N で講師ノート · Esc で終了
重要キーワード
Batch API
バッチAPI
大量リクエストを非同期で安く処理するエンドポイント
custom_id
カスタムID
リクエストと結果を紐づけるユーザー定義の ID
Async
非同期
応答を即座に待たず、後で取りに行く処理形態
Batch API
大量のリクエストを 非同期で安く 処理する API です。
メリット
- 50% オフ の料金。
- 1 ジョブで 10,000 件 まで投入可能。
- 24 時間以内に処理完了 (通常はもっと早い)。
使い方
wzxhzdk:1
結果の取得
wzxhzdk:2
ユースケース
- データセットのラベル付け
- 大量ドキュメントの要約
- A/B テスト用の生成
- Eval (評価) スイート実行
- バルクのデータ抽出
注意
- リアルタイム応答には向かない (非同期前提)。
- 失敗したリクエストは個別に確認可能。
- レスポンス順は保証されない (
custom_idで紐づける)。 - Prompt Caching と併用すれば追加で 30-50% コスト削減も可能。
Batch + Cache のシナジー
例: 「1 万件のレビューを同じ system プロンプトで分類」 - Batch: 50% オフ - Cache: 残り料金の 90% オフ (システム部分) - 合計: 元の 5-10% に圧縮
失敗時の挙動
for r in client.messages.batches.results(batch.id):
if r.result.type == "succeeded":
...
elif r.result.type == "errored":
print("error:", r.result.error)
Hands-on Exercise
演習: 100 件のレビューを Batch で分類
100 件のダミーレビュー (positive/negative/neutral にランダムに偏らせる) を生成し、
Batch API で一括分類してください。
結果を CSV id,label で書き出すこと。
🎉
まとめ
お疲れ様でした!