zhiyu1998/Gemi2Api-Server
HanaokaYuzu / Gemini-API 的服务端简单实现,仓库自动更新上游,支持gemini-3.8-flash、gemini-3.5-flash-lite 等
Gemi2Api‑Server – Google GeminiのWeb UIをOpenAI互換APIに変換する軽量ラッパー
何であるか
- 通常のブラウザセッションからエクスポートしたクッキー(
__Secure-1PSIDおよび__Secure-1PSIDTS)を使ってGoogle Geminiにログインする小さなFastAPIサービス。 - その後、チャットコンプリーションリクエストをGeminiの非公開Web APIに転送し、OpenAIの
/v1/chat/completionsエンドポイントと同様の形式でレスポンスを返す。 - オプションの管理パネル(
/admin)では、接続状態の確認、クッキーの編集、認証に使用するAPIキーの変更、モデルのライブテストが可能。
なぜ存在するのか
- Googleは現在、公開された有料のGeminiエンドポイントを提供していない(README作成時点)。このプロジェクトは、OpenAI風REST APIを期待するツールからGeminiを呼び出せるようにするセルフホストブリッジを提供する。
- また、YAMLファイルを介してカスタムモデル定義を追加し、
/v1/modelsリストを通じて公開することも可能。
実行方法
- Geminiクッキーの取得 – インコグニトウウィンドウで https://gemini.google.com にログインし、開発者ツールを開き、
__Secure-1PSIDと__Secure-1PSIDTSの値をコピーする。 .envファイルの作成(.env.exampleをコピー)し、2つのクッキー値と、管理UIにアクセスするためのAPI_KEYを貼り付ける。- デプロイ – 次のいずれかで実行可能:
- Python依存関係(
fastapi,uvicorn,gemini-webapi,httpx,h2)をインストール後、uvicorn main:app --reloadでローカル実行。 - 提供されたDocker-Compose設定(
docker-compose up -d)を使用。 - 「Deploy to Render」または「Duplicate on HuggingFace」バッジをクリックしてホストインスタンスを迅速にデプロイ。
- Python依存関係(
- オプションのカスタムモデル –
custom_models.yamlを追加し、Geminiの内部APIに必要なx-goog-ext-…ヘッダー値をフレンドリーな名前(例:gemini-3.5-flash)にマッピングする。このファイルはホットリロードされるため、再起動せずに編集可能。
主な設定オプション
| 変数 | 目的 |
|---|---|
SECURE_1PSID / SECURE_1PSIDTS |
Gemini認証用クッキー(必須)。 |
API_KEY |
/admin へのアクセスおよびパブリックAPIの保護に必要なシンプルなトークン。 |
TEMPORARY_CHAT |
true の場合、Geminiの「一時会話」モードを使用。画像生成や思考の連鎖推論などの機能が無効になる。 |
AUTO_DELETE_CHAT |
true の場合、レスポンス後にGeminiに会話を削除するよう指示。Webアカウントを清潔に保つ。 |
PUBLIC_BASE_URL |
生成された画像をプロキシする際に使用されるベースURL。リバースプロキシの背後で実行する場合に必要。 |
CUSTOM_MODELS_FILE |
モデル定義を追加または上書きするYAML/JSONファイルのパス。 |
DISABLE_BUILTIN_MODELS |
設定された場合、/v1/models で公開されるのは CUSTOM_MODELS_FILE にリストされたモデルのみ。 |
APIでできること
GET /v1/models– サーバーが認識しているモデルIDのリストを返す。POST /v1/chat/completions– OpenAIのチャットAPIと同一のJSONペイロードを送信。サーバーはそれをGeminiに転送し、返信をストリーミングで返す。GET /gemini-proxy/image– Geminiが生成した画像URLを返す場合に使用される小さな画像プロキシエンドポイント。URLをサーバーのホストから取得できるように書き換える。GET /admin– ヘルス状態の監視、クッキーの編集、チャットのテストを行うためのWebUI。
誰が使うべきか
- ノートブック、LangChain、または既にOpenAI風エンドポイントをサポートしている他のフレームワークでGeminiを実験したい開発者。
- 商用Gemini APIの費用を支払いたくない、迅速にセルフホストブリッジが必要な小さなチーム(将来的に商用APIが登場した場合)。
- Render、HuggingFace Spaces、または自前のVPS上で個人用「Gemini-as-a-service」インスタンスを動かしたいハッカー。
制限と注意点
- 非公式の内部Gemini Web APIに依存しているため、Googleがクッキー形式やリクエストヘッダーをいつでも変更可能。その場合、ブリッジが破損する可能性がある。
- 有効で期限切れのGeminiログインが必要。頻繁な500エラーは、クッキーの期限切れまたはIPブロックの可能性が高い。
- セキュリティは最低限。保護は設定した
API_KEYだけ。このサーバーを信頼できる内部コンポーネントとして扱い、インターネット公開サービスとして扱わないこと。
詳細情報の入手先
- 元の上流プロジェクトは HanaokaYuzu / Gemini‑API である。Gemi2Api‑Serverはこのライブラリをラップする軽量サーバーである。
- READMEに問題とトラブルシューティングのヒントがリンクされている(例:500エラーの対処)。
上記のすべての詳細は、リポジトリのREADMEから直接取得したものであり、外部の推測は一切加えられていない。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト