zhiyu1998/Gemi2Api-Server

HanaokaYuzu / Gemini-API 的服务端简单实现,仓库自动更新上游,支持gemini-3.6-flash、gemini-3.5-flash-lite 等

Gemi2Api‑Server – 一個輕量級的 Google Gemini 自託管代理伺服器

是什麼

  • 一個小型 FastAPI 服務,將請求轉發至 unofficial Google Gemini 網頁 API(與 Gemini‑API 專案使用的 API 相同)。它模擬了 OpenAI 的 /v1/chat/completions 端點,因此現有的客戶端可以直接與 Gemini 對話,而無需使用 Google 的官方 SDK。
  • 包含內建的管理介面 (admin UI),您可以在其中查看服務狀態、編輯所需的 Gemini cookies、更改 API key,以及進行聊天測試。

為什麼存在

  • Google Gemini 目前尚未提供公開且付費的 API(截至本文撰寫時)。要以程式化方式呼叫它,唯一的途徑是透過逆向工程網頁 UI,並發送與瀏覽器相同的 HTTP 請求。此專案將該逆向工程後的客戶端 (gemini‑webapi) 包裝成一個可重複使用的伺服器。
  • 透過提供標準的 OpenAI 相容性端點,開發者可以將 Gemini 作為 ChatGPT 風格服務的直接替換方案。

如何運作

  1. 身份驗證 – 您必須提供登入 Gemini 會話所產生的兩個 cookies (__Secure-1PSID__Secure-1PSIDTS)。README 說明了如何從瀏覽器的開發者工具中提取它們。
  2. FastAPI + Uvicorn – 伺服器運行一個 FastAPI app (main.py)。對 /v1/models 的請求會返回可用 Gemini 模型列表;對 /v1/chat/completions 的 POST 請求會將 payload 轉發至 Gemini 網頁端點,並以 OpenAI 格式返回響應。
  3. 自定義模型定義 – 可選的 custom_models.yaml 可以覆蓋或新增模型條目,讓您能夠更改 Gemini 所預期的 request headers (x-goog-ext‑…‑jspb)。
  4. 圖片代理 – 當 Gemini 返回生成的圖片 URL 時,伺服器可以透過 /gemini‑proxy/image 代理圖片,以便在防火牆或反向代理伺服器後方可以正常存取。
  5. 管理面板 – 可在 /admin 存取。該面板受您在 .env 中設置的 API_KEY 保護。它讓您能夠:
    • 查看 Gemini 連線的健康狀態。
    • 在不重新啟動的情況下更新 cookie values。
    • 調整速率限制 (rate-limit) 設置。
    • 查看即時日誌並進行快速聊天測試。

如何運行

  • Docker (推薦) – 在將 .env.example 複製為 .env 並填入 cookie values 之後,執行 docker-compose up -d
  • 直接運行 – 安裝依賴項 (uvpip),啟動虛擬環境,然後執行 uvicorn main:app --reload
  • 環境變數控制可選行為:
    • TEMPORARY_CHAT 會禁用「思考」或圖片生成等功能。
    • AUTO_DELETE_CHAT 在收到響應後會從 Gemini 中移除對話紀錄。
    • PUBLIC_BASE_URL 在使用反向代理時,對於正確的圖片代理 URL 是必要的。

使用場景

  • 希望在自己的應用程式中嘗試 Gemini,而不依賴第三方託管服務的開發者。
  • 正在構建內部工具且已經支援 OpenAI API 的團隊,因成本或功能原因想要切換到 Gemini。
  • 需要在 Render, HuggingFace Spaces, 或自託管伺服器上快速進行 Gemini 聊天與圖片生成功能的演示。

限制

  • 它依賴於使用者提供的 cookies;如果 Google 輪換或使之失效,服務將停止運作,直到您更新 cookies。
  • 由於它使用的是未公開的網頁 API,它可能會在未經通知的情況下失效。
  • 演示部署 (Render, HuggingFace) 附帶一個佔位符密碼,且沒有 Gemini cookies,因此它們僅顯示管理介面。

致謝

  • 使用了 gemini‑webapi 函式庫進行底層請求處理。
  • 圖片去水印代碼是借用自 journey‑ad/gemini-watermark-removerallenk/GeminiWatermarkTool 專案。

TL;DR: Gemi2Api‑Server 是一個基於 FastAPI 的代理伺服器,讓您能像呼叫 OpenAI 相容性 API 一樣呼叫 Google Gemini。您需要提供自己的 Gemini 登入 cookies,可選擇性地自定義模型 headers,並在本地或容器中運行。對於想要使用 Gemini 的聊天與圖片生成功能,但又沒有官方 API 的開發者來說,這是一個實用的橋樑。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案