すでに OpenAI SDK を使用している場合、Gemini を最も早く試す方法は、API キー、ベース URL、モデル ID を変更することです。公式の Gemini API OpenAI 互換ベース URL は次のとおりです:
https://generativelanguage.googleapis.com/v1beta/openai/
Flatkey の OpenAI 互換ルーターのベース URL は次のとおりです:
https://router.flatkey.ai/v1
これが Gemini API OpenAI Compatibility Base URL and Flatkey Router Setup の核心です。直接 Gemini を使う場合は Google の API キーと Google の OpenAI 互換エンドポイントを使用します。Flatkey を使う場合は、Flatkey キー、Flatkey ルーター、そして Flatkey アカウントで利用可能な Gemini モデル ID を使用します。
Gemini のみが必要で、プロバイダー固有の構成にできるだけ近い設定を求めるなら、Google 直結のルートを使ってください。Gemini と GPT、Claude、DeepSeek、Qwen、または他のモデルをすでに比較していて、1 つの OpenAI 互換ベース URL、1 つのモデル一覧、1 つの利用ログが欲しいなら、Flatkey ルートを使ってください。
Gemini API OpenAI Compatibility Base URL and Flatkey Router Setup の概要
| 設定の選択肢 | ベース URL | API キー | モデル ID の取得元 | 最適な用途 |
|---|---|---|---|---|
| 直接 Gemini | https://generativelanguage.googleapis.com/v1beta/openai/ |
Gemini API キー | Google Gemini API のモデルドキュメント、または client.models.list() |
Gemini のみが必要で、Google に直接アクセスしたい場合。 |
| Flatkey ルーター | https://router.flatkey.ai/v1 |
Flatkey API キー | Flatkey の /v1/models または Model Directory |
1 つのキーの背後で、Gemini を他のモデルプロバイダーと並べて使いたい場合。 |
この 2 つは混在させないでください。Gemini API キーは Flatkey では認証できず、Flatkey キーは Google の直接 Gemini エンドポイントでは認証できません。
OpenAI SDK を使った直接 Gemini のセットアップ
Google の OpenAI 互換レイヤーを使うと、一般的なチャット補完のワークフローで OpenAI SDK の形をそのまま使い続けられます。重要な違いはクライアント設定です。
Python
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.8-flash",
messages=[
{"role": "user", "content": "Write one sentence about model routing."}
],
)
print(response.choices[0].message.content)
JavaScript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.GEMINI_API_KEY,
baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/",
});
const response = await client.chat.completions.create({
model: "gemini-3.8-flash",
messages: [
{ role: "user", content: "Write one sentence about model routing." },
],
});
console.log(response.choices[0].message.content);
REST
curl https://generativelanguage.googleapis.com/v1beta/openai/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $GEMINI_API_KEY" \
-d '{
"model": "gemini-3.8-flash",
"messages": [
{"role": "user", "content": "モデルルーティングについて1文書いてください。"}
]
}'
出荷前に、同じベースURLに対して client.models.list() または GET /openai/models を実行してください。これで最もよくあるミス、つまり古いモデルIDをブログ記事からコピーして、自分のアカウントでもまだ存在すると考えてしまうことを検出できます。
Gemini 用の Flatkey router の設定
Flatkey は OpenAI SDK の形を維持しますが、ベースURLとキーは再び変わります。Flatkey router を使い、その後 Flatkey の /v1/models レスポンスまたはライブの Model Directory から Gemini のモデルIDを選びます。
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["FLATKEY_API_KEY"],
base_url="https://router.flatkey.ai/v1",
)
models = client.models.list()
gemini_models = [model.id for model in models.data if "gemini" in model.id]
print(gemini_models)
response = client.chat.completions.create(
model=os.environ.get("FLATKEY_GEMINI_MODEL", "gemini-2.5-flash"),
messages=[
{"role": "user", "content": "モデルルーティングについて1文書いてください。"}
],
)
print(response.choices[0].message.content)
JavaScript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.FLATKEY_API_KEY,
baseURL: "https://router.flatkey.ai/v1",
});
const models = await client.models.list();
console.log(models.data.map((model) => model.id).filter((id) => id.includes("gemini")));
const response = await client.chat.completions.create({
model: process.env.FLATKEY_GEMINI_MODEL || "gemini-2.5-flash",
messages: [
{ role: "user", content: "モデルルーティングについて1文書いてください。" },
],
});
console.log(response.choices[0].message.content);
本番環境では、Google の直接のモデルIDと Flatkey のルーティングされたモデルIDが常に同一であると想定しないでください。呼び出しているアカウントに対する正しい情報源としてモデル一覧を扱ってください。
切り替えを可逆に保つための環境変数
整理された Gemini API OpenAI互換ベースURLと Flatkey Router の設定により、アプリケーションコードを編集せずに直接接続とルーティング接続のテストを簡単に比較できるようにするべきです。
# 直接 Gemini
GEMINI_API_KEY="..."
GEMINI_OPENAI_BASE_URL="https://generativelanguage.googleapis.com/v1beta/openai/"
GEMINI_MODEL="gemini-3.8-flash"
# Flatkey router
FLATKEY_API_KEY="..."
FLATKEY_BASE_URL="https://router.flatkey.ai/v1"
FLATKEY_GEMINI_MODEL="gemini-2.5-flash"
そして、設定からルートを選択します:
import os
from openai import OpenAI
route = os.environ.get("AI_ROUTE", "flatkey")
if route == "direct_gemini":
client = OpenAI(
api_key=os.environ["GEMINI_API_KEY"],
base_url=os.environ["GEMINI_OPENAI_BASE_URL"],
)
model = os.environ["GEMINI_MODEL"]
else:
client = OpenAI(
api_key=os.environ["FLATKEY_API_KEY"],
base_url=os.environ["FLATKEY_BASE_URL"],
)
model = os.environ["FLATKEY_GEMINI_MODEL"]
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "正確に次を返してください: route ok"}],
)
このパターンを使うと、個人開発者はまず Gemini への直接接続を試し、後から Flatkey を追加し、リクエスト経路を書き直さずにロールバックできます。
トラフィックを移す前のスモークテストチェックリスト
| チェック項目 | 直接 Gemini | Flatkey router |
|---|---|---|
| 認証 | Gemini のキーが Google のエンドポイントに対してのみ有効であることを確認します。 | Flatkey のキーが router.flatkey.ai に対してのみ有効であることを確認します。 |
| モデル一覧 | Gemini の base URL に対して client.models.list() を実行します。 |
Flatkey に対して client.models.list() を実行し、Gemini の ID で絞り込みます。 |
| 基本チャット | 短い非ストリーミングの chat completion を送信します。 | 同じプロンプトを Flatkey の Gemini モデル経由で送信します。 |
| ストリーミング | アプリがストリーミングを使う場合にのみテストします。 | ユーザーに有効化する前に、ルーティングされた正確なモデルでストリーミングをテストします。 |
| ツール呼び出し | アプリがツールを使う場合は、小さな関数スキーマをテストします。 | ルーティングされたモデルが、アプリが期待するツール動作をサポートしていることを確認します。 |
| 構造化出力 | 200 ステータスだけでなく、実際の JSON 出力を検証します。 |
同じスキーマと再試行の動作を検証します。 |
| 使用状況の確認 | プロバイダーのアカウントで Google の使用状況とエラーを確認します。 | Flatkey Usage Logs でモデル、トークン数、レイテンシ、コストを確認します。 |
OpenAI 互換であることは、すべてのプロバイダー固有機能が完全に同じように動作することを意味しません。一般的な SDK ワークフローに対して十分近いクライアント形状を保てる、という意味です。スモークテストでは、アプリが実際に依存している機能をカバーすべきです。
よくある base URL の間違い
直接 Gemini ルートで /openai/ を付け忘れる
直接の OpenAI 互換 Gemini 呼び出しでは、次を使用します:
https://generativelanguage.googleapis.com/v1beta/openai/
OpenAI SDK の chat-completion コードで、ネイティブの Gemini generateContent エンドポイントを使用しないでください。ネイティブ Gemini API の例と OpenAI 互換の例では、リクエストの形が異なります。
Node で base_url、Python で baseURL を使う
Python の OpenAI SDK 設定では base_url を使います。JavaScript SDK では baseURL を使います。
OpenAI(base_url="https://router.flatkey.ai/v1")
new OpenAI({ baseURL: "https://router.flatkey.ai/v1" })
モデル ID を恒久的なものとして扱う
モデル名は SDK のセットアップコードよりも速く変わります。直接ルートの場合は、Google のモデルドキュメントを確認するか、Gemini の OpenAI 互換エンドポイント経由でモデル一覧を取得してください。Flatkey の場合は、/v1/models と Model Directory を確認してください。
ログをスキップしない
最初の成功レスポンスでセットアップが完了したわけではありません。最初の Flatkey リクエストの後、Usage Logs を開いてモデル、トークン数、レイテンシ、コストを確認してください。そうすることで、Gemini API OpenAI Compatibility Base URL と Flatkey Router Setup は、単に構文的に正しいだけでなく、運用上も追跡可能になります。
Flatkey が価値を発揮する場面
Flatkey は、Gemini がより広いモデルスタックの1つのルートである場合に有用です。たとえば、次のようなケースです:
- Gemini、Claude、GPT、DeepSeek、Qwen を1つの OpenAI 互換ベース URL の背後で使いたい。
- モデルのフォールバック動作をテストしており、プロバイダーごとのキーをアプリやエージェントに散在させたくない。
- モデル ID、トークン数、レイテンシ、リクエストごとのコストについて共有の利用台帳が必要だ。
- SDK クライアントを変更せずに、開発者が model パラメータだけを変更できるようにしたい。
アプリが今後ずっと Gemini しか呼ばないのであれば、Google の直接設定で十分かもしれません。すでに複数プロバイダーを比較している製品であれば、Flatkey router の方が移行経路をよりすっきりできます。
開いておく価値のある内部リンク
- Flatkey API クイックスタート
- OpenAI 互換移行ガイド
- Gemini 対 Claude のルート確認
- Flatkey Model Directory
- Flatkey の料金ページ
- Flatkey のステータスページ
よくある質問
公式の Gemini OpenAI 互換ベース URL は何ですか?
公式の Gemini OpenAI 互換ベース URL は https://generativelanguage.googleapis.com/v1beta/openai/ です。Flatkey キーではなく、Gemini API キーと一緒に使用してください。
Flatkey 経由で Gemini を使う場合、どの base URL を使えばよいですか?
https://router.flatkey.ai/v1 を Flatkey API キーと一緒に使用してください。その後、Flatkey の /v1/models レスポンスまたはライブの Model Directory から Gemini のモデル ID を選択します。
同じ Gemini のモデル ID を両方の場所で使えますか?
場合によっては使えますが、そうだと決めつけないでください。安全な手順は、使用している正確なルートとアカウントに対してモデルを一覧表示し、その ID を設定に固定することです。
OpenAI 互換とは、機能が完全に同等という意味ですか?
いいえ。OpenAI 互換は SDK とリクエスト形状の利便性として扱ってください。本番展開の前に、ストリーミング、ツール、構造化出力、ファイル、マルチモーダル入力を、正確なモデルとルートでテストしてください。
個人開発者は direct と Flatkey のどちらから始めるべきですか?
Gemini が動作することだけを確認したいなら、direct から始めてください。実際の判断が「Gemini 単体でプロンプトに答えられるか」ではなく「どのモデルが製品を支えるべきか」なら、Flatkey から始めてください。
要点
Gemini API OpenAI Compatibility Base URL と Flatkey Router Setup は、2つのルートを分けて考えれば簡単です:
- Direct Gemini:
https://generativelanguage.googleapis.com/v1beta/openai/ - Flatkey router:
https://router.flatkey.ai/v1
キーは分けて管理し、chat completions を呼び出す前にモデルを列挙し、アプリが使用する機能をテストし、最初のリクエスト後に使用状況を確認してください。1つの OpenAI 互換レイヤーを通じて Gemini を他のプロバイダーと比較する準備ができたら、Flatkey のキーを作成し、ワークロードを 1 つずつ移行してください。



