Gemini Batch API は、大量のリクエストを 非同期で標準料金の 50% で処理するように設計されています。 目標の所要時間は 24 時間ですが、ほとんどの場合、はるかに短時間で完了します。
Batch API は、データの前処理や評価の実行など、すぐにレスポンスを必要としない大規模で緊急性の低いタスクに使用します。
バッチジョブを作成する
Batch API でリクエストを送信する方法は 2 つあります。
- インライン リクエスト: バッチ作成リクエストに直接含まれる
GenerateContentRequestオブジェクトのリスト。これは、リクエストの合計サイズが 20 MB 未満の小規模なバッチに適しています。モデルから返される出力 は、inlineResponseオブジェクトのリストです。 - 入力ファイル: 各行に完全な
GenerateContentRequestオブジェクトが含まれる JSON Lines(JSONL) ファイル。この方法は、大規模なリクエストにおすすめです。モデルから返される出力 は、各行がGenerateContentResponseまたはステータス オブジェクトである JSONL ファイルです。
インライン リクエスト
リクエストの数が少ない場合は、
GenerateContentRequest オブジェクトを
BatchGenerateContentRequest 内に直接埋め込むことができます。次の例では、インライン リクエストを使用して
BatchGenerateContent
メソッドを呼び出します。
Python
from google import genai
from google.genai import types
client = genai.Client()
# A list of dictionaries, where each is a GenerateContentRequest
inline_requests = [
{
'contents': [{
'parts': [{'text': 'Tell me a one-sentence joke.'}],
'role': 'user'
}]
},
{
'contents': [{
'parts': [{'text': 'Why is the sky blue?'}],
'role': 'user'
}]
}
]
inline_batch_job = client.