本日は Gemini API のバッチモードをご紹介します。これは新たな非同期のエンドポイントで、特に高スループットで遅延のない重大な AI ワークロード用に設計されています。Gemini API バッチモードにより、大規模なジョブのサブミット、スケジュールやプロセスのオフロード、24 時間以内の結果の取得ができ、すべて Google の同期 API より50% 安くご利用いただけます。
前もってデータを用意していて、即時応答が不要なタスクの場合、バッチモードは最適なツールです。こうした大規模なジョブをリアルタイムのトラフィックから分離しているため、以下の 3 つのメリットが得られます。
Google は API をシンプルかつ直感的に設計しました。ユーザーはすべてのリクエストを単一のファイルにパッケージしてサブミットすれば、ジョブが完了した時点で結果を取得できます。デベロッパーがバッチモードを活用してタスクを実行している方法をいくつかご紹介します。
今すぐ Google GenAI Python SDK でバッチモードを使い始めることができます。
# これらの行を含む JSONL を作成します:
# {"key": "request_1", "request": {"contents": [{"parts": [{"text": "Explain how AI works in a few words"}]}]}},
# {"key": "request_2", "request": {"contents": [{"parts": [{"text": "Explain how quantum computing works in a few words"}]}]}}
uploaded_batch_requests = client.files.upload(file="batch_requests.json")
batch_job = client.batches.create(
model="gemini-2.5-flash",
src=uploaded_batch_requests.name,
config={
'display_name': "batch_job-1",
},
)
print(f"Created batch job: {batch_job.name}")
# Wait for up to 24 hours
if batch_job.state.name == 'JOB_STATE_SUCCEEDED':
result_file_name = batch_job.dest.file_name
file_content_bytes = client.files.download(file=result_file_name)
file_content = file_content_bytes.decode('utf-8')
for line in file_content.splitlines():
print(line)
詳細は、公式ドキュメントと料金ページをご確認ください。
本日 Gemini API のバッチモードをリリースし、明日には全ユーザーに公開します。これはバッチ処理の始まりにすぎず、積極的に機能の拡張を行っていきます。一層パワフルでフレキシブルなオプションにご期待ください。