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 リストを通じて公開することも可能。

実行方法

  1. Geminiクッキーの取得 – インコグニトウウィンドウで https://gemini.google.com にログインし、開発者ツールを開き、__Secure-1PSID と __Secure-1PSIDTS の値をコピーする。
  2. .env ファイルの作成(.env.example をコピー)し、2つのクッキー値と、管理UIにアクセスするための API_KEY を貼り付ける。
  3. デプロイ – 次のいずれかで実行可能:
    • Python依存関係(fastapi, uvicorn, gemini-webapi, httpx, h2)をインストール後、uvicorn main:app --reload でローカル実行。
    • 提供されたDocker-Compose設定(docker-compose up -d)を使用。
    • 「Deploy to Render」または「Duplicate on HuggingFace」バッジをクリックしてホストインスタンスを迅速にデプロイ。
  4. オプションのカスタムモデル – 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から直接取得したものであり、外部の推測は一切加えられていない。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト