zhiyu1998/Gemi2Api-Server

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

Gemi2Api‑Server – 将 Google Gemini 的网页界面转换为 OpenAI 兼容 API 的轻量级封装

是什么

  • 一个小型 FastAPI 服务,使用您从普通浏览器会话中导出的 Cookie(__Secure-1PSID 和 __Secure-1PSIDTS)登录 Google Gemini。
  • 然后将聊天补全请求转发到 Gemini 的私有 Web API,并以与 OpenAI /v1/chat/completions 端点相同的格式返回响应。
  • 可选的管理面板(/admin)允许您查看连接状态、编辑 Cookie、更改用于认证的 API 密钥,并实时测试模型。

为何存在

  • 截至 README 编写时,Google 尚未提供公开的付费 Gemini 端点。该项目提供了一个自托管桥接服务,使您能够从期望 OpenAI 风格 REST API 的工具中调用 Gemini。
  • 它还允许您通过 YAML 文件添加自定义模型定义,并通过 /v1/models 列表暴露它们。

如何运行

  1. 获取 Gemini Cookie – 在无痕窗口中登录 https://gemini.google.com,打开开发者工具,复制 __Secure-1PSID 和 __Secure-1PSIDTS 的值。
  2. 创建 .env 文件(从 .env.example 复制)并粘贴两个 Cookie 值,以及您将用于保护管理 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-3.5-flash)映射到 Gemini 内部 API 所需的原始 x-goog-ext-… 请求头值。该文件支持热重载,无需重启即可编辑。

关键配置选项

变量 用途
SECURE_1PSID / SECURE_1PSIDTS Gemini 认证用 Cookie(必需)。
API_KEY 访问 /admin 和保护公共 API 所需的简单令牌。
TEMPORARY_CHAT 若为 true,服务器将使用 Gemini 的“临时对话”模式,禁用图像生成和思维链推理等功能。
AUTO_DELETE_CHAT 若为 true,服务器会通知 Gemini 在响应后删除对话,保持网页账户整洁。
PUBLIC_BASE_URL 当服务器代理生成的图像时使用的基 URL;在反向代理后运行时需要。
CUSTOM_MODELS_FILE 添加或覆盖模型定义的 YAML/JSON 文件路径。
DISABLE_BUILTIN_MODELS 若设置,仅通过 CUSTOM_MODELS_FILE 列出的模型会通过 /v1/models 公开。

可通过 API 执行的操作

  • GET /v1/models – 返回服务器已知的模型 ID 列表。
  • POST /v1/chat/completions – 发送与 OpenAI 聊天 API 完全相同的 JSON 负载;服务器将其转发给 Gemini 并流式返回回复。
  • GET /gemini-proxy/image – 当 Gemini 返回生成图像 URL 时使用的微型图像代理端点;它会重写 URL,使图像可从服务器主机获取。
  • GET /admin – 用于监控健康状态、编辑 Cookie 和测试聊天的 Web UI。

谁可能使用它

  • 希望在笔记本、LangChain 或其他已支持 OpenAI 风格端点的框架中实验 Gemini 的开发者。
  • 需要快速、自托管桥接服务但不想支付商业 Gemini API 费用的小团队(如果将来推出商业 API)。
  • 希望在 Render、HuggingFace Spaces 或自己的 VPS 上运行个人“Gemini 作为服务”实例的爱好者。

限制与注意事项

  • 依赖未公开的内部 Gemini Web API;Google 可随时更改 Cookie 格式或请求头,这将导致桥接失效。
  • 服务需要有效的、未过期的 Gemini 登录;频繁出现 500 错误通常意味着 Cookie 已过期或 IP 被封禁。
  • 安全性最低——唯一保护是您设置的 API_KEY。请将服务器视为可信的内部组件,而非面向公众的互联网服务。

更多详情

  • 原始上游项目是 HanaokaYuzu / Gemini‑API;Gemi2Api‑Server 是围绕该库的轻量级服务器封装。
  • README 中链接了问题和故障排除提示(例如,处理 500 错误)。

以上所有细节均直接取自仓库的 README;未添加任何外部推测。

相关

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