Gemini のコードは Google の形式で書かれています。contents と parts、systemInstruction、generationConfig、thinkingConfig です。Lovely Router はこの形式を /v1beta/models/{model} で提供しているため、Google Gen AI SDK と Gemini CLI は、ベース URL を変えて、Gemini API キーの代わりに Lovely Router のキーを使うだけで動きます。リクエストはモデル ID 以外は書いたとおりにモデルへ届きます。同じプリペイドキーで Claude、GPT、データツールも呼び出せます。
AI エージェントに任せる
このプロンプトを Claude Code、Cursor、Codex などのコーディングエージェントに貼り付けてください。ドキュメントの場所と API キーの使い方をエージェントに伝えます。
Integrate models from Lovely Router into this project through the native Gemini API. - Docs (read first): https://lovelyrouter.com/docs/models/gemini.md - Use the Google GenAI SDK with base URL https://lovelyrouter.com (http_options / httpOptions `baseUrl`, or GOOGLE_GEMINI_BASE_URL=https://lovelyrouter.com). Endpoints: https://lovelyrouter.com/v1beta/models/<model>:generateContent and :streamGenerateContent, unchanged from Google. - GET https://lovelyrouter.com/v1/models lists every model id with its price; pick one there, do not guess ids. - Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `x-goog-api-key: $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys. - Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large. - Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt. My task: <describe what you want to build or get>
仕組み
キーを作成する
Gen AI SDK の接続先を Lovely Router にする
SDK のベース URL に
https://lovelyrouter.comを渡します。キーは SDK が送るx-goog-api-keyに入れます。?key=やAuthorization: Bearerでも使えます。generateContent を呼び出す
generateContent、streamGenerateContent、countTokensは Google のドキュメントどおりに動作します。Shellcurl "https://lovelyrouter.com/v1beta/models/gemini-3.1-pro:generateContent" \ -H "x-goog-api-key: $LOVELY_API_KEY" \ -H "content-type: application/json" \ -d '{ "contents": [{"role": "user", "parts": [{"text": "Explain DNS in two sentences."}]}] }'
Gemini API の料金(リアルタイム)
| モデル | コンテキスト | 入力 | 出力 | キャッシュ読み取り |
|---|---|---|---|---|
| Gemini 3.1 Pro gemini-3.1-pro | 1.05M | $2.00 | $12.00 | $0.20 |
| Gemini 3 Flash gemini-3-flash | 1.05M | $0.50 | $3.00 | $0.05 |
| Gemini 4 Argon gemini-4-argon | 1.05M | $2.00 | $10.00 | $0.20 |
| Gemini 3.5 Flash gemini-3.5-flash | 1.05M | $1.50 | $9.00 | $0.15 |
| Gemini 3.8 Flash gemini-3.8-flash | 1.05M | $0.75 | $3.75 | $0.075 |
| Gemini 3.6 Flash gemini-3.6-flash | 1.05M | $0.75 | $3.75 | $0.075 |
100 万トークンあたりの米ドル価格(カタログからリアルタイム表示)。
料金は 100 万トークンあたりの米ドル建てで、リアルタイムのカタログから表示しています。ID は GET /v1/models に従い、たとえば gemini-3.1-pro や gemini-3-flash です。gemini-3.1-pro-preview や models/gemini-3-flash のような Google の表記も同じモデルとして扱われます。GET /v1beta/models は、この形式で使えるすべてのモデルを Gemini 本来のレスポンス形式で返します。Gemini モデルは gemini-value チャネルグループで提供しています。現在の提供状況はモデルマーケットプレイスで、チャネルグループごとの 1 時間単位の稼働状況はステータスで確認できます。
ネイティブ API でできること
:streamGenerateContent?alt=sse を呼び出します。SDK は alt=sse を自動で付けます。各イベントは部分的な GenerateContentResponse で、最後のイベントに最終的な usageMetadata が含まれます。
Gemini 3 のモデルは既定で思考します。Google のドキュメントどおりに thinkingConfig で調整してください。思考トークンは usageMetadata.thoughtsTokenCount に表示されます。
systemInstruction、generationConfig、safetySettings、tools 内の関数宣言は変更されずに渡されます。
:countTokens は同じ contents を受け取り、totalTokens を返します。料金はかからず、残高がゼロでも使えます。
次の Gemini エンドポイントは提供していません。cachedContents(明示的なコンテキストキャッシュ)、ファイルのアップロード、embedContent と batchEmbedContents、バッチモード、Live API です。
Gemini モデルは OpenAI Chat Completions と Anthropic Messages にも対応しているため、アプリがどちらかの形式しか扱えない場合に便利です。thinkingConfig などの Gemini 固有のオプションが確実に機能するのは、ネイティブ形式の場合だけです。
Gemini CLI を使う
Gemini CLI は、エンドポイントとキーを環境変数から読み取ります。
export GOOGLE_GEMINI_BASE_URL=https://lovelyrouter.com
export GEMINI_API_KEY=$LOVELY_API_KEY
gemini -m gemini-3.1-proほかのクライアントについてはお使いのツールで使うを、同じキーで Gemini CLI を Claude Code や Codex CLI と並べて使う方法は AI コーディングエージェントを参照してください。
暗黙的キャッシュを有効なまま保つ
Gemini は、繰り返し使われるプロンプトのプレフィックスを自動でキャッシュします。マークを付ける必要はありません。キャッシュされたトークンは usageMetadata.cachedContentTokenCount に表示され、キャッシュ読み取りの価格で課金されます。キャッシュ書き込みの料金はかかりません。
キャッシュが役立つのは、次のターンがキャッシュを持つチャネルに届いた場合だけです。Lovely Router はシステムプロンプトと最初のユーザーメッセージから各会話のフィンガープリントを作り、以降のターンを同じチャネルに送り返します。アプリが古い履歴を書き換えたり要約したりする場合は、代わりに会話ごとに固定の x-session-id ヘッダーを送ってください。システム指示にタイムスタンプを入れると、フィンガープリントと Gemini 自身のキャッシュの両方が無効になるため、最新のユーザーメッセージに入れてください。詳しくはプロンプトキャッシュを参照してください。
チャネルが失敗したとき
本来なら自分で対処する必要がある失敗も、まずゲートウェイが再試行します。あるチャネルで失敗したリクエストは、同じグループ内の別のチャネルで再試行されます(最大 3 回まで試行)。ストリームは最初のトークンが届くまで保留されるため、それより前の失敗はクライアントに届かず再試行されます。それでも残ったエラーは Gemini のエラー形式で返されます。429 は RESOURCE_EXHAUSTED、502 は UNAVAILABLE です。これらはバックオフを付けて再試行し、retry-after があればそれに従ってください。不正なリクエスト(400、404、413、422)は、別の場所でも同じように失敗するため再試行されません。
alt=sse の使用をおすすめします。指定しない場合、streamGenerateContent は 1 つの JSON 配列を返します。指定すると、3 分間止まったストリームは検知しやすい DEADLINE_EXCEEDED のエラーイベントで正常に終了します。一覧表はレート制限とフェイルオーバーにあります。
レシピ
GenerateContentConfig に system_instruction と max_output_tokens を指定して gemini-3.1-pro を呼び出し、usage_metadata で費用を確認します。
gemini-3-flash で generate_content_stream を使い、届いたチャンクのテキストを順に表示します。
費用のかかる呼び出しの前に、同じ内容で count_tokens を実行し、total_tokens をモデルのコンテキスト長と比べます。
CLI 専用に利用上限付きのキーを作成すれば、長いセッションでも上限を超えて使うことはありません。
本番用のキーを gemini-value に紐付けるか、x-lovely-group を送ると、すべての再試行が同じ料金のまま、そのグループ内にとどまります。
支払う料金
Gemini はトークン単位で課金されます。キャッシュされない入力は promptTokenCount から cachedContentTokenCount を引いた数で、キャッシュされたトークンはキャッシュ読み取りの価格で課金されます。出力は candidatesTokenCount と thoughtsTokenCount の合計で、出力の価格で課金されます。現在はすべてのチャネルグループが定価で課金するため、各 Gemini モデルの料金は Google の定価どおりです。請求額はレスポンスから数秒以内にプリペイド残高から差し引かれます。
サブスクリプションも月額料金もありません。モデルに届く前に拒否されたリクエストは無料で、再試行された試行には課金されず、キャンセルしたストリームは生成された分だけ課金されます。すべてのプロダクトの料金は料金ページにまとめています。
よくある質問
Google Gen AI SDK は Lovely Router で使えますか?+
はい。http_options(Python)または httpOptions(Node.js)でベース URL に https://lovelyrouter.com を渡し、API キーに Lovely Router のキーを指定してください。リクエストボディは変更されずに渡されます。
Gemini CLI は使えますか?+
はい。GOOGLE_GEMINI_BASE_URL を https://lovelyrouter.com に、GEMINI_API_KEY をあなたのキーに設定し、gemini -m gemini-3.1-pro で起動してください。
Gemini Pro や Gemini Flash の API も使えますか?+
はい。gemini-3.1-pro や gemini-3-flash などの ID で呼び出せます。gemini-3.1-pro-preview や models/gemini-3-flash のような Google の表記も同じモデルとして扱われ、使えるすべてのモデルは GET /v1beta/models で確認できます。
思考トークンはどのように課金されますか?+
思考トークンは usageMetadata.thoughtsTokenCount に報告され、candidatesTokenCount と合わせて出力の料金で課金されます。
コンテキストキャッシュには対応していますか?+
暗黙的キャッシュには対応しています。繰り返し使われるプレフィックスは Gemini がキャッシュしてキャッシュ読み取りの価格で課金され、ゲートウェイが各会話を 1 つのチャネルにとどめます。cachedContents API による明示的なキャッシュは利用できません。
OpenAI SDK で Gemini を呼び出せますか?+
はい。Gemini モデルは同じキーで OpenAI Chat Completions に対応しています。thinkingConfig などの Gemini 固有のオプションが必要な場合は、ネイティブの Gemini API を使ってください。
すべてのメソッドとヘッダーは Gemini ガイドを参照してください。全ベンダーの比較はモデルマーケットプレイスでできます。