Gemini Pro API は、Google AI Studio で作成したキーを使用して Gemini API を通じてアクセスします。直接 REST リクエストを行う場合は、モデルの generateContent エンドポイントを呼び出します。既存の OpenAI SDK 統合がある場合は、クライアントを Google の OpenAI 互換ベース URL に向け、gemini-3.1-pro-preview などの現在の Gemini モデル ID を使用します。重要な点は、「Gemini Pro」は製品ファミリーの検索用語であり、永続的な API 識別子ではないため、本番アプリケーションではモデル ID を固定する前に Google の現在のモデルリストを確認する必要があるということです。
Gemini Pro API のセットアップ概要
リクエストを行うには、次の4つの値が必要です。
| 設定 | 値 |
|---|---|
| APIキー | Google AI Studio で作成 |
| ネイティブベースホスト | https://generativelanguage.googleapis.com |
| ネイティブAPIパス | /v1beta/models/{model}:generateContent |
| OpenAI互換ベースURL | https://generativelanguage.googleapis.com/v1beta/openai/ |
| モデルIDの例 | gemini-3.1-pro-preview |
Google の Gemini API クイックスタート には、APIキーの作成とネイティブリクエストパターンが記載されています。また、OpenAI 互換性ガイド には、既に OpenAI Python または JavaScript SDK を使用しているアプリケーション向けの互換性ベース URL が記載されています。
Google が公開したらすぐに Gemini 固有の機能を利用したい場合は、ネイティブの Gemini SDK または REST API を使用します。既に OpenAI スタイルのクライアントがあり、移行作業を減らしたい場合は、互換レイヤーを使用します。互換性は便利ですが、すべてのプロバイダ固有のオプションが API 間で完全にマッピングされるわけではありません。
Gemini 用の Google API キーを取得する方法
Google AI Studio でキーを作成し、ソースコードに直接記述せずに環境変数に保存します。
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
これはサーバーサイドの認証情報として扱います。Git にコミットしたり、ログに出力したり、ブラウザの JavaScript やモバイルアプリケーションバンドルに埋め込んだりしないでください。フロントエンドで Gemini の出力が必要な場合は、ユーザーリクエストを自身のバックエンドに送信し、バックエンドから Google API を呼び出します。
本番サービスの場合は、Google Cloud プロジェクトの所有者、キーのローテーション方法、各環境に割り当てる個別の認証情報、リクエストクォータの監視場所も決定します。Google の API キーガイダンス では、Gemini API キーが Google Cloud プロジェクトにどのように関連付けられるかが説明されています。
ネイティブ Gemini API エンドポイントを呼び出す方法
ネイティブ REST ルートは、モデル ID を URL に含めます。次の例では、現在の Pro プレビューモデルに簡潔な移行チェックリストを要求しています。
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Create a seven-step checklist for migrating a Python API from one region to two regions. Include rollback checks."
}
]
}
]
}'
レスポンスには、生成されたコンテンツを含む candidates が含まれています。実際のアプリケーションでは、最初のレスポンスオブジェクトに直接インデックスするのではなく、空の candidates リスト、ブロックされたコンテンツ、タイムアウト、および 2xx 以外のレスポンスを処理する必要があります。
URL は v1beta を使用しています。これは、Google の現在の Gemini API の例で示されているルートだからです。API バージョンは設定ファイルに保持し、コードベース全体にエンドポイント文字列を散在させることなく新しいバージョンをテストできるようにします。
ネイティブエンドポイントの構造
パスは3つの部分で構成されています。
/v1beta/models/{model}:generateContent
v1betaは API バージョンです。{model}は Google の Gemini モデルページ に記載されている正確なモデル ID です。generateContentは生成メソッドです。
404 レスポンスは、多くの場合、モデル ID、API バージョン、またはメソッドが一致していないことを意味します。認証コードを変更する前に、完全なパスを現在のモデルドキュメントと比較してください。
OpenAI 互換クライアントで Gemini を使用する方法
アプリケーションが既に OpenAI Python パッケージを使用している場合は、それをインストールし、API キー、ベース URL、モデル ID を変更します。
pip install openai
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["GEMINI_API_KEY"],
base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)
response = client.chat.completions.create(
model="gemini-3.1-pro-preview",
messages=[
{
"role": "system",
"content": "You are a concise software architecture reviewer.",
},
{
"role": "user",
"content": "Review a queue worker design and list the top five failure modes.",
},
],
)
print(response.choices[0].message.content)
これは、既存のチャット完了抽象化を使用しているチームにとって最短のルートです。また、評価ハーネスを再利用しやすくなります。プロンプトとレスポンスのチェックを一定に保ち、プロバイダー設定を入れ替えるだけです。
2つのプロバイダーが同じ SDK 呼び出しを受け入れるからといって、動作が同一であると想定しないでください。システム指示、ツールスキーマ、マルチモーダル入力、安全性処理、ストリーミングイベント、トークン計算、エラーペイロードは異なる可能性があります。本番トラフィックを変更する前に、プロバイダー固有のテストを実行してください。
Gemini モデル ID の選択と管理方法
gemini-pro のようなマーケティング名をアプリケーションロジックに直接配置しないでください。Google が利用可能なモデル ID は、プレビューモデルの導入、昇格、廃止に伴って変更されます。このガイドの確認時点では、Google の公式モデルページには、Pro クラスのモデル識別子として gemini-3.1-pro-preview がリストされていました。
代わりに設定レイヤーを使用します。
import os
GEMINI_MODEL = os.getenv("GEMINI_MODEL", "gemini-3.1-pro-preview")
その小さな選択により、モデルのアップグレードがコードの書き換えではなくデプロイメントの変更になります。より大規模なサービスの場合は、これらのフィールドをまとめて保存します。
{
"provider": "google",
"base_url": "https://generativelanguage.googleapis.com/v1beta/openai/",
"model": "gemini-3.1-pro-preview",
"timeout_seconds": 60
}
新しいモデルを本番環境に移行する前に、以下の手順を実行します。
- ID が Google の現在のモデルドキュメントまたはモデル API に表示されていることを確認します。
- モデルがプレビュー、安定版、または廃止予定のいずれであるかを確認します。
- 回答品質とツール呼び出しの正確性について、独自の評価セットを実行します。
- 代表的なプロンプトを使用して、レイテンシ、トークン使用量、失敗率を測定します。
- すべてのトラフィックを移行する前に、フォールバックモデルまたは明確な失敗パスを追加します。
レート制限は単一の普遍的な数値ではありません。モデルと使用ティアによって異なります。そのため、Google の Gemini API レート制限ドキュメント を読み、プロジェクトに適用される制限を監視してください。
プロバイダー切り替え可能なバックエンドの構築方法
OpenAI 互換インターフェースはコード変更を減らすことができますが、プロバイダーの切り替えは、アプリケーション自身がコントラクトを定義する場合に最も効果的です。プロバイダー設定をビジネスロジックの外に置き、実際に必要な出力を正規化します。
import os
from openai import OpenAI
PROVIDERS = {
"gemini": {
"api_key": os.environ["GEMINI_API_KEY"],
"base_url": "https://generativelanguage.googleapis.com/v1beta/openai/",
"model": os.getenv("GEMINI_MODEL", "gemini-3.1-pro-preview"),
},
"novita": {
"api_key": os.environ["NOVITA_API_KEY"],
"base_url": "https://api.novita.ai/openai",
"model": os.getenv("NOVITA_MODEL", "xiaomimimo/mimo-v2.5-pro"),
},
}
def generate(provider_name: str, prompt: str) -> str:
provider = PROVIDERS[provider_name]
client = OpenAI(
api_key=provider["api_key"],
base_url=provider["base_url"],
)
response = client.chat.completions.create(
model=provider["model"],
messages=[{"role": "user", "content": prompt}],
)
return response.choices[0].message.content or ""
この例では、違いを隠すのではなく、意図的に公開しています。各プロバイダーは独自の認証情報、ベース URL、モデル ID を保持します。アプリケーションは1つの正規化された文字列を受け取り、プロバイダー固有のテストではツールやマルチモーダル入力などのよりリッチな動作をカバーできます。
Novita AI の LLM API ドキュメント は、サポートされているモデルに対して OpenAI 互換の API 形状を使用しています。これは、チームがクライアントレイヤー全体を再構築することなく、Gemini をオープンソースモデルと比較したい場合に役立ちます。
Gemini がエージェントバックエンドにどのように適合するか
エージェントバックエンドには、少なくとも2つの個別の責任があります。
- 推論: モデルが何を言うか、またはどのツールを呼び出すかを決定します。
- 実行: 制御されたランタイムがファイル、シェル、ブラウザ、またはアプリケーションのアクションを実行します。
Gemini API は推論側を処理できます。実行の境界として扱うべきではありません。モデルがシェルコマンドを提案した場合でも、アプリケーションはツール呼び出しを検証し、承認し、隔離された環境で実行し、結果を取得し、モデルに送り返すコンテキストを決定する必要があります。
Novita Agent Sandbox は、隔離されたエージェント実行ワークフロー向けに設計されています。実用的なアーキテクチャでは、Gemini を推論に使用し、サンドボックスがコードやブラウザタスクを個別に処理できます。
User request
-> Agent service
-> Gemini API for reasoning and tool selection
-> Policy checks for the proposed action
-> Agent Sandbox for isolated execution
-> Tool result returned to the agent service
-> Gemini API for the final response
この分離により、モデルが交換可能になり、信頼できない実行をアプリケーションサーバーから遠ざけることができます。また、バックエンドにタイムアウト、ネットワークポリシー、ファイル制限、監査ログ、ユーザー認可を適用するための一元的な場所を提供します。
最初のバージョンでは、少数の狭いツールのみを公開し、その引数に JSON スキーマを定義し、未知のフィールドを拒否し、実行時間と出力サイズにハードリミットを設定します。許可モデルが明確になった後にのみ、より広範なコンピュータ使用やブラウザ機能を追加します。
オープンソースモデルが適している場合
Gemini Pro モデルは、アプリケーションが Google のモデル機能とマネージド API を必要とする場合に強力な選択肢です。オープンソースモデルは、セカンドプロバイダーが必要な場合、可視性のあるアップストリームリリースに対してモデルの動作を評価したい場合、または他のインフラストラクチャと並行して OpenAI 互換エンドポイントを通じて利用可能なモデルを好む場合に適しています。
MiMo-V2.5-Pro は、Novita AI の現在の選択肢の1つです。Xiaomi のアップストリームモデルカードでは、オープンソースの Mixture-of-Experts モデルとして説明されていますが、Novita AI はホスト型モデル ID xiaomimimo/mimo-v2.5-pro を提供しています。Google 互換エンドポイントと Novita AI の両方を OpenAI スタイルのクライアントで呼び出すことができるため、前のセクションのプロバイダー切り替え可能なパターンを使用して、同じプロンプトと受け入れチェックでそれらを評価できます。
ラベルだけで選択しないでください。実際のワークロード(コードレビューコメント、サポート質問、検索に基づく回答、ツール呼び出し、長文ドキュメント)から小さな評価セットを構築します。ルーティングの決定を下す前に、現在のプロバイダーダッシュボードを使用して、出力品質、レイテンシ、エラー動作、コストを比較します。
一般的な Gemini API エラー
400: 無効なリクエスト
JSON の形状、メッセージのロール、ツール定義、パラメーター名を確認します。別の OpenAI 互換プロバイダーで受け入れられるオプションが、Google の互換レイヤーでは受け入れられない場合があります。
401 または 403: 認証または権限の失敗
GEMINI_API_KEY がプロセス環境に存在し、目的の Google Cloud プロジェクトに属していることを確認します。また、プロジェクトと選択したモデルがアカウントとリージョンで利用可能かどうかも確認します。
404: モデルまたはメソッドが見つかりません
正確なモデル ID を 現在の Gemini モデルリスト と比較します。ネイティブ REST 呼び出しの場合は、API バージョンと :generateContent サフィックスを確認します。OpenAI 互換呼び出しの場合は、ベース URL が /v1beta/openai/ で終わっていることを確認します。
429: レート制限超過
指数バックオフとジッターを使用してリトライしますが、リトライをキャパシティプランニングの代わりとして扱わないでください。バースト的な作業をキューに入れ、同時リクエスト数を制限し、プロジェクトの現在の使用ティアとモデル固有の制限を確認します。
SDK は動作するが、プロバイダー切り替え後に出力が異なる
互換性はリクエストインターフェースをカバーしますが、同一のモデル動作を保証するものではありません。すべてのプロバイダーとモデルバージョンに対して、プロンプト、構造化出力、ツール呼び出しのテストを再実行します。
まとめ
Gemini 固有の機能への最も明確なパスを望む場合は、ネイティブの Gemini API から始めます。既に OpenAI スタイルのバックエンドがある場合や、迅速なプロバイダー評価が必要な場合は、OpenAI 互換エンドポイントから始めます。どちらの場合も、API キーはサーバーサイドに保持し、モデル ID は設定に配置し、正確なモデルバージョンをテストし、モデルの推論とエージェント実行を分離します。
回復力のある本番設計のためには、同じアプリケーション所有のインターフェースの背後に、少なくとも1つの代替モデルを維持します。これにより、チームは Novita AI でオープンソースオプションをテストし、モデルライフサイクルの変更を処理し、すべての責任を1つの API 呼び出しに結合するのではなく、エージェント実行を隔離されたサンドボックスにルーティングする実用的な方法が得られます。
よくある質問
gemini-pro というモデル ID はまだ存在しますか?
gemini-pro が現在の ID であると想定しないでください。「Gemini Pro API」は、Google のより高性能な Gemini モデルを検索するためのフレーズとして一般的に使用されていますが、アプリケーションは現在の Gemini モデルページの正確な ID を使用する必要があります。このガイドでは、確認済みの例として gemini-3.1-pro-preview を使用しています。
Gemini 用の Google API キーはどこで入手できますか?
Google AI Studio で Gemini API キーを作成します。ソースコードやフロントエンド JavaScript ではなく、GEMINI_API_KEY などのサーバーサイドシークレットに保存します。
Gemini API エンドポイントは何ですか?
ネイティブホストは https://generativelanguage.googleapis.com です。生成コンテンツリクエストは /v1beta/models/{model}:generateContent を使用します。Google の OpenAI 互換ベース URL は https://generativelanguage.googleapis.com/v1beta/openai/ です。
Gemini Studio API は Gemini API と異なりますか?
Google AI Studio は、開発者が実験とキー作成に使用する Web インターフェースです。アプリケーションリクエストは Gemini API に送信されます。「Gemini Studio API」の検索は、通常、この AI Studio から API へのワークフローを指します。
Google Bard API は Gemini API と同じですか?
Gemini は現在の API およびモデルブランドです。以前の Google Bard API の検索では、古い Bard の例ではなく、現在の Gemini API ドキュメント、エンドポイント、モデル ID を使用する必要があります。
OpenAI SDK を Gemini で使用できますか?
はい。Google は OpenAI 互換エンドポイントを文書化しています。クライアントのベース URL を Google の互換 URL に設定し、Gemini API キーを提供し、サポートされている Gemini モデル ID を選択します。完全な動作の同等性に依存する前に、プロバイダー固有の機能をテストしてください。
Gemini は AI エージェントのコードを実行できますか?
Gemini はコードについて推論し、ツール呼び出しを提案できますが、実行は制御されたランタイムで行う必要があります。モデル呼び出しを Agent Sandbox などの隔離された環境から分離し、要求されたすべてのアクションを実行前に検証します。
