zhiyu1998/Gemi2Api-Server

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

Gemi2Api‑Server – 一个轻量级的 Google Gemini 自托管代理

是什么

  • 一个小的 FastAPI 服务,它将请求转发到 unofficial Google Gemini Web API(与 Gemini‑API 项目使用的 API 相同)。它模仿 OpenAI 的 /v1/chat/completions 端点,以便现有的客户端可以在不使用 Google 官方 SDK 的情况下与 Gemini 对话。
  • 包含一个内置的管理员 UI,您可以在其中查看服务状态、编辑所需的 Gemini cookies、更改 API key 并进行聊天测试。

为什么存在

  • Google Gemini 目前不提供公开的、付费的 API(截至撰写本文时)。调用它的唯一程序化方法是逆向工程 Web UI 并发送与浏览器发送的相同的 HTTP 请求。此仓库将该逆向工程后的客户端 (gemini‑webapi) 打包成一个可重用的服务器。
  • 通过暴露一个标准的 OpenAI 兼容端点,开发者可以将其作为 ChatGPT 风格服务的即插即用替代方案来引入 Gemini。

如何工作

  1. 身份验证 – 您必须提供登录 Gemini 会话创建的两个 cookies (__Secure-1PSID__Secure-1PSIDTS)。README 解释了如何从浏览器的开发者工具中提取它们。
  2. FastAPI + Uvicorn – 服务器运行一个 FastAPI 应用 (main.py)。对 /v1/models 的请求会返回可用 Gemini 模型的列表;对 /v1/chat/completions 的 POST 请求会将负载转发到 Gemini Web 端点并以 OpenAI 格式返回响应。
  3. 自定义模型定义 – 一个可选的 custom_models.yaml 可以覆盖或添加模型条目,允许您更改 Gemini 预期的请求头 (x-goog-ext‑…‑jspb)。
  4. 图片代理 – 当 Gemini 返回生成的图片 URL 时,服务器可以通过 /gemini‑proxy/image 代理图片,以便在防火墙或反向代理后可以访问该图片。
  5. 管理员面板 – 可在 /admin 访问。该面板受您在 .env 中设置的 API_KEY 保护。它允许您:
    • 查看 Gemini 连接的健康状况。
    • 在不重启的情况下更新 cookie 值。
    • 调整速率限制设置。
    • 查看实时日志并运行快速聊天测试。

如何运行

  • Docker (推荐) – 在将 .env.example 复制为 .env 并填写 cookie 值后,运行 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。
  • 由于它使用未公开的 Web API,它可能会在不经通知的情况下失效。
  • 演示部署(Render, HuggingFace)附带一个占位符密码,并且没有 Gemini cookies,因此它们只能显示管理员 UI。

致谢

  • 使用了 gemini‑webapi 库进行底层请求处理。
  • 图片水印移除代码借自 journey‑ad/gemini-watermark-removerallenk/GeminiWatermarkTool 项目。

TL;DR: Gemi2Api‑Server 是一个基于 FastAPI 的代理,它让您能够像调用 OpenAI 兼容 API 一样调用 Google Gemini。您提供自己的 Gemini 登录 cookies,可以根据需要自定义模型请求头,并可以在本地或在容器中运行。对于想要在没有官方 API 的情况下使用 Gemini 的聊天和图片生成功能,它是开发者们的一个实用桥梁。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目