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列表暴露它们。
如何运行
- 获取 Gemini Cookie – 在无痕窗口中登录 https://gemini.google.com,打开开发者工具,复制
__Secure-1PSID和__Secure-1PSIDTS的值。 - 创建
.env文件(从.env.example复制)并粘贴两个 Cookie 值,以及您将用于保护管理 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-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;未添加任何外部推测。
相关
- 项目
- 项目
- 项目
- 项目
- 项目