GoogleのGemini APIに、大規模な非同期タスク向けに設計された革新的なアップデートであるバッチモードが追加されました。これにより、コストが50%削減されます。🚀
- この強力なエンドポイントを使用すると、標準API価格の半額で、24時間以内に結果が配信される膨大なジョブを処理できます。
- このシステムは高スループットのワークロード向けに設計されており、最大2GBのJSONLファイルに対応し、効率を高めるためにコンテキストキャッシュなどの最適化を活用しています。
- また、Google検索などの組み込みツールもサポートしており、ジョブの作成、削除、取得をシンプルなAPIで管理できるため、大規模なAI処理をより手頃な価格で簡単に実行できます。
それでは、新しいGoogle Gemini APIバッチモードを詳しく見ていきましょう!
開発チームが最大限の生産性で協力できる、統合されたオールインワンプラットフォームをお探しですか?
Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます!
Gemini APIバッチモードの料金
Gemini APIバッチモードの主な利点は、コストが大幅に削減されることです。このエンドポイントを通じて送信されるすべてのジョブは、同期(リアルタイム)呼び出しで使用される同等のモデルの標準料金より50%安く設定されています。
この50%割引は、トークンあたりの料金体系に直接適用されます。gemini-2.5-pro
、gemini-2.5-flash
、またはその他のサポートされているモデルを使用しているかどうかにかかわらず、バッチジョブで処理される場合、入力トークンと出力トークンの両方のコストが半額になります。この料金モデルにより、標準APIを使用すると費用がかかりすぎる可能性のある、テラバイト単位のテキストデータの分析や製品カタログ全体のコンテンツ生成など、大規模なタスクを経済的に実行できるようになります。コストは入力と生成された出力のトークン数に基づいて計算されますが、トークンあたりの料金が割引されます。
Gemini APIバッチモードの使用方法:ステップバイステップガイド
Gemini APIバッチモードのワークフローは、ファイルの準備、ジョブの作成、結果の取得を含む、分かりやすいように設計されています。以下のセクションでは、Google GenAI Python SDKを使用した実用的なガイドを提供します。

ステップ1:Gemini APIバッチモード用の入力ファイルの準備
Gemini APIバッチモードは、JSON Lines (JSONL)ファイルからリクエストを処理します。ファイル内の各行は、単一の自己完結型リクエストを表す有効なJSONオブジェクトである必要があります。ファイルサイズは最大2GBです。
ファイル内の各JSONオブジェクトには、次の2つのフィールドが含まれている必要があります。
key
: 各リクエストの一意の文字列識別子(任意)。リクエストと結果を関連付けるために使用されます。request
: 同期Gemini APIに送信されるリクエストと構造が同じリクエストペイロード。モデルプロンプトを含むcontents
フィールドが含まれます。
batch_requests.jsonl
の例:
{"key": "request_1", "request": {"contents": [{"parts": [{"text": "Explain how AI works in a few words"}]}]}}
{"key": "request_2", "request": {"contents": [{"parts": [{"text": "Summarize the key benefits of context caching in LLMs."}]}]}}
{"key": "request_3", "request": {"contents": [{"parts": [{"text": "Write a python function to reverse a string."}]}]}}
ステップ2:Gemini APIバッチモードのプログラミングワークフロー
Python SDKは、バッチ処理エンドポイントとの対話プロセスをいくつかの主要な関数呼び出しに簡素化します。
入力ファイルのアップロード:まず、JSONLファイルをGoogleのファイルサービスにアップロードする必要があります。これにより、ジョブを作成する際に参照するファイルオブジェクトが返されます。
import google.generativeai as genai
# It is recommended to configure your API key as an environment variable
# genai.configure(api_key="YOUR_API_KEY")
uploaded_batch_requests = genai.upload_file(path="batch_requests.jsonl")
バッチジョブの作成:ファイルがアップロードされたら、バッチジョブを作成できます。この呼び出しでは、使用したいモデルを指定し、アップロードしたファイルをリクエストのソースとして提供する必要があります。
batch_job = genai.create_batch_job(
model="gemini-2.5-flash", # Or "gemini-2.5-pro", etc.
requests=uploaded_batch_requests,
config={
'display_name': "MyFirstBatchJob-1",
},
)
print(f"Created batch job: {batch_job.name}")
print(f"Initial state: {batch_job.state.name}")
この関数はすぐに戻り、ジョブ名とその初期状態(通常はJOB_STATE_PENDING
)を提供します。
ステップ3:Gemini APIバッチモードでのジョブの管理と監視
バッチジョブは非同期であるため、そのステータスを監視する必要があります。ジョブの現在の状態は、その名前を使用していつでも取得できます。ジョブは24時間以内に完了することが保証されています。
可能なジョブの状態は次のとおりです。
JOB_STATE_UNSPECIFIED
: デフォルトの状態。JOB_STATE_PENDING
: ジョブが作成され、処理を待機しています。JOB_STATE_RUNNING
: ジョブがアクティブに処理されています。JOB_STATE_SUCCEEDED
: ジョブが正常に完了しました。JOB_STATE_FAILED
: ジョブが失敗しました。ジョブオブジェクトのerror
フィールドには診断情報が含まれます。JOB_STATE_CANCELLING
: キャンセルリクエストが受信されました。JOB_STATE_CANCELLED
: ジョブがキャンセルされました。
ジョブステータスの確認例:
# Check the status after some time has passed
retrieved_job = genai.get_batch_job(name=batch_job.name)
print(f"Current job state: {retrieved_job.state.name}")
ステップ4:Gemini APIバッチモードからの結果の処理
ジョブの状態がJOB_STATE_SUCCEEDED
になると、結果はJSONLファイルとしてダウンロード可能になります。出力ファイルの各行は、入力ファイルからのリクエストに対応しています。
出力JSONオブジェクトには、元のリクエストからのkey
と、モデルの出力を含むresponse
オブジェクトが含まれます。
- 結果ファイルのダウンロード:
if retrieved_job.state.name == 'JOB_STATE_SUCCEEDED':
result_file_metadata = retrieved_job.result_file
result_file_content_bytes = genai.download_file(name=result_file_metadata.name).read()
# Decode and process the results
file_content = result_file_content_bytes.decode('utf-8')
for line in file_content.splitlines():
print(line)
elif retrieved_job.state.name == 'JOB_STATE_FAILED':
print(f"Job failed with error: {retrieved_job.error}")
出力ファイル行の例:
{"key": "request_1", "response": {"candidates": [{"content": {"parts": [{"text": "Artificial intelligence enables machines to learn and reason."}]}}]}}
このファイルを解析し、key
を使用して各レスポンスを元のプロンプトと照合できます。
Gemini APIバッチモードの高度な機能
Gemini APIバッチモードは、大規模なワークフローを最適化するためのより高度な機能もサポートしています。
Gemini APIバッチモードでのコンテキストキャッシュ
大規模で共有されたコンテキスト(例:複数の質問をしたい長いドキュメント)を伴うタスクの場合、コンテキストキャッシュを使用できます。この機能により、共有コンテキストをキャッシュできるため、バッチ内の個々のリクエストごとに再処理されることがありません。これにより、処理されるトークンの総数が削減され、さらなる大幅なコスト削減と処理時間の短縮につながります。
Gemini APIバッチモードでの組み込みツールの使用
バッチジョブは、組み込みのGoogle検索機能を含むツール使用をサポートしています。これにより、モデルがウェブからリアルタイム情報にアクセスして処理する必要がある大規模なタスクを実行できます。たとえば、バッチジョブは数千のURLを分析し、そのコンテンツを要約するように設定できます。
Googleは、すでにこの機能を使用しているいくつかの組織を強調しています。
- Reforged Labsは、Gemini APIバッチモードを使用して大量の動画広告を分析およびラベル付けし、コストを削減し、ワークフローを加速しています。
- Vals AIは、バッチモードの高いスループットを利用して、多数の評価クエリで基盤モデルをベンチマークし、同期APIのレート制限を回避しています。
結論:Gemini APIバッチモードの技術的価値
Gemini APIバッチモードは、大規模な非同期AI処理のための技術的に堅牢で経済的に有利なソリューションを提供します。50%のコスト削減、簡素化されたファイルベースのワークフロー、コンテキストキャッシュやツール使用などの高度な機能のサポートにより、高スループットAIタスクに関連するエンジニアリングおよび財務上の障壁を取り除きます。これは、膨大なデータセットでGeminiモデルの全能力を活用しようとしている開発者や組織にとって不可欠なツールです。
開発チームが最大限の生産性で協力できる、統合されたオールインワンプラットフォームをお探しですか?
Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます!