---
title: Gemini Business2API
emoji: 💎
colorFrom: pink
colorTo: blue
sdk: docker
pinned: false
license: mit
---
# Gemini Business2API
将 Google Gemini Business API 转换为 OpenAI 兼容接口,支持多账户负载均衡。
感谢Claude老师!
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
**快速部署到 HuggingFace Spaces:**
[](https://huggingface.co/spaces/xiaoyukkkk/gemini-business2api?duplicate=true)
## ✨ 功能特性
- ✅ **OpenAI API 完全兼容** - 无缝对接现有工具
- ✅ **流式响应支持** - 实时输出
- ✅ **多模态支持** - 文本 + 图片输入
- ✅ **图片生成 & 图生图** - 支持 `gemini-3-pro-preview` 模型
- ✅ **多账户负载均衡** - 支持多账户轮询,故障自动转移
- ✅ **智能会话复用** - 自动管理对话历史
- ✅ **JWT自动管理** - 无需手动刷新令牌
- 📊 **可视化管理面板** - 实时监控账户状态
- 📝 **公开日志系统** - 实时查看服务运行状态
## 📸 功能展示
### 图片生成效果
### 管理面板
 |
 |
###开日志系统
 |
 |
## 🚀 快速开始
### 方法一: HuggingFace Spaces 部署(推荐)
1. Fork 本项目到你的 GitHub 账户
2. 在 [HuggingFace Spaces](https://huggingface.co/spaces) 创建新 Space
3. 选择 Docker SDK,关联你的 GitHub 仓库
4. 配置环境变量(Settings → Variables and secrets):
```bash
ACCOUNTS_CONFIG='[{"secure_c_ses":"your_cookie","csesidx":"your_idx","config_id":"your_config"}]'
PATH_PREFIX=path_prefix
ADMIN_KEY=your_admin_key
API_KEY=your_api_key
LOGO_URL=https://your-domain.com/logo.png
CHAT_URL=https://your-chat-app.com
```
5. 等待构建完成(约 2-3 分钟)
6. 访问你的 Space URL 开始使用
### 方法二: Docker 部署
```bash
# 1. 克隆项目
git clone https://github.com/YOUR_USERNAME/gemini-business2api.git
cd gemini-business2api
# 2. 构建并运行
docker build -t gemini-business2api .
docker run -d \
-p 7860:7860 \
-e ACCOUNTS_CONFIG='[{"secure_c_ses":"your_cookie","csesidx":"your_idx","config_id":"your_config"}]' \
-e PATH_PREFIX=path_prefix \
-e ADMIN_KEY=your_admin_key \
-e API_KEY=your_api_key \
-e LOGO_URL=https://your-domain.com/logo.png \
-e CHAT_URL=https://your-chat-app.com \
gemini-business2api
```
### 方法三: 本地运行
```bash
# 1. 安装依赖
pip install -r requirements.txt
# 2. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入实际配置
# 3. 启动服务
python main.py
```
服务将在 `http://localhost:7860` 启动
## ⚙️ 配置说明
### 必需的环境变量
```bash
# 账户配置(必需)
ACCOUNTS_CONFIG='[{"secure_c_ses":"your_cookie","csesidx":"your_idx","config_id":"your_config"}]'
# 路径前缀(必需)
PATH_PREFIX=path_prefix
# 管理员密钥(必需)
ADMIN_KEY=your_admin_key
# API访问密钥(可选,推荐设置)
API_KEY=your_api_key
# 图片URL生成(可选,推荐设置)
BASE_URL=https://your-domain.com
# 全局代理(可选)
PROXY=http://127.0.0.1:7890
# 公开展示配置(可选)
LOGO_URL=https://your-domain.com/logo.png
CHAT_URL=https://your-chat-app.com
MODEL_NAME=gemini-business
```
### 多账户配置示例
```bash
ACCOUNTS_CONFIG='[
{
"id": "account_1",
"secure_c_ses": "CSE.Ad...",
"csesidx": "498...",
"config_id": "0cd...",
"host_c_oses": "COS.Af...",
"expires_at": "2025-12-23 23:03:20"
},
{
"id": "account_2",
"secure_c_ses": "CSE.Ad...",
"csesidx": "208...",
"config_id": "782..."
}
]'
```
**配置字段说明**:
- `secure_c_ses` (必需): `__Secure-C_SES` Cookie 值
- `csesidx` (必需): 会话索引
- `config_id` (必需): 配置 ID
- `id` (可选): 账户标识
- `host_c_oses` (可选): `__Host-C_OSES` Cookie 值
- `expires_at` (可选): 过期时间,格式 `YYYY-MM-DD HH:MM:SS`
**提示**: 参考项目根目录的 `.env.example` 和 `accounts_config.example.json` 文件
## 🔧 获取配置参数
1. 访问 [Google Gemini Business](https://business.gemini.google)
2. 打开浏览器开发者工具 (F12)
3. 切换到 **Application** → **Cookies**,找到:
- `__Secure-C_SES` → `secure_c_ses`
- `__Host-C_OSES` → `host_c_oses` (可选)
4. 切换到 **Network** 标签,刷新页面
5. 找到 `streamGenerate` 请求,查看 Payload:
- `csesidx` → `csesidx`
- `configId` → `config_id`
## 📖 API 使用
### 支持的模型
| 模型名称 | 说明 | 图片生成 |
| ------------------------ | ---------------------- | -------- |
| `gemini-auto` | 自动选择最佳模型(默认) | ❌ |
| `gemini-2.5-flash` | Flash 2.5 - 快速响应 | ❌ |
| `gemini-2.5-pro` | Pro 2.5 - 高质量输出 | ❌ |
| `gemini-3-flash-preview` | Flash 3 预览版 | ❌ |
| `gemini-3-pro-preview` | Pro 3 预览版 | ✅ |
### 基本对话
```bash
curl -X POST http://localhost:7860/v1/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_api_key" \
-d '{
"model": "gemini-2.5-flash",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": true
}'
```
### 图片输入(多模态)
```bash
curl -X POST http://localhost:7860/v1/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_api_key" \
-d '{
"model": "gemini-2.5-pro",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "这张图片里有什么?"},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,"}}
]
}
]
}'
```
### 图片生成
```bash
curl -X POST http://localhost:7860/v1/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_api_key" \
-d '{
"model": "gemini-3-pro-preview",
"messages": [
{"role": "user", "content": "画一只可爱的猫咪"}
]
}'
```
### 图生图(Image-to-Image)
```bash
curl -X POST http://localhost:7860/v1/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_api_key" \
-d '{
"model": "gemini-3-pro-preview",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "将这张图片改成水彩画风格"},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,"}}
]
}
]
}'
```
### 其他端点
| 端点 | 方法 | 说明 |
| -------------------------- | ---- | --------------------- |
| `/{PATH_PREFIX}/v1/models` | GET | 获取模型列表 |
| `/{PATH_PREFIX}/admin` | GET | 管理面板(需ADMIN_KEY) |
| `/public/log/html` | GET | 公开日志页面 |
| `/health` | GET | 健康检查 |
**访问示例**:
假设你的配置为:
- Space URL: `https://your-space.hf.space`
- PATH_PREFIX: `my_prefix`
- ADMIN_KEY: `my_admin_key`
则访问地址为:
- **管理面板**: `https://your-space.hf.space/my_prefix/admin?key=my_admin_key`
- **公开日志**: `https://your-space.hf.space/public/log/html`
- **API 端点**: `https://your-space.hf.space/my_prefix/v1/chat/completions`
## ❓ 常见问题
### 1. 图片生成后在哪里找到文件?
- **临时存储**: 图片保存在 `./images/`,可通过 URL 访问
- **重启后会丢失**,建议使用持久化存储
### 2. 如何设置 BASE_URL?
**自动检测**(推荐):
- 不设置 `BASE_URL` 环境变量
- 系统自动从请求头检测域名
**手动设置**:
```bash
BASE_URL=https://your-domain.com
```
**使用反向代理**:
如果你使用自己的域名反向代理到 HuggingFace Space,可以通过以下方式配置:
**Nginx 配置示例**:
```nginx
location / {
proxy_pass https://your-username-space-name.hf.space;
proxy_set_header Host your-username-space-name.hf.space;
proxy_ssl_server_name on;
}
```
**Deno Deploy 配置示例**:
```typescript
async function handler(request: Request): Promise {
const url = new URL(request.url);
url.host = 'your-username-space-name.hf.space';
return fetch(new Request(url, request));
}
Deno.serve(handler);
```
配置反向代理后,将 `BASE_URL` 设置为你的自定义域名即可。
### 3. API_KEY 和 ADMIN_KEY 的区别?
- **API_KEY**: 保护聊天接口 (`/v1/chat/completions`)
- **ADMIN_KEY**: 保护管理面板 (`/admin`)
可以设置相同的值,也可以分开
### 4. 如何查看日志?
- **公开日志**: 访问 `/public/log/html` (无需密钥)
- **管理面板**: 访问 `/admin?key=YOUR_ADMIN_KEY`
## 🔧 油猴脚本使用说明
本项目提供油猴脚本辅助获取配置参数,使用前需要配置 TamperMonkey:
### TamperMonkey 设置
1. **配置模式**:改为 `高级`
2. **安全设置**:允许脚本访问 Cookie 改为 `All`
### Google Chrome 额外设置
1. 打开油猴扩展设置
2. 启用 **允许运行用户脚本**
3. 设置 **有权访问的网站** 权限
配置完成后即可使用脚本自动获取 `secure_c_ses`、`csesidx`、`config_id` 等参数。
---
## 📁 项目结构
```
gemini-business2api/
├── main.py # 主程序
├── util/ # 工具模块
│ └── streaming_parser.py
├── requirements.txt # Python依赖
├── Dockerfile # Docker构建
├── README.md # 项目文档
├── .env.example # 环境变量配置示例
├── accounts_config.example.json # 多账户配置示例
└── .gitignore # Git忽略文件
```
**运行时生成的目录**:
- `images/` - 生成的图片存储
- `static/` - 静态文件缓存
- `logs/` - 日志文件
## 🛠️ 技术栈
- **Python 3.11+**
- **FastAPI** - 现代Web框架
- **Uvicorn** - ASGI服务器
- **httpx** - HTTP客户端
- **Docker** - 容器化部署
## 📝 License
MIT License - 查看 [LICENSE](LICENSE) 文件了解详情
---
## 🙏 致谢
- 源项目:[heixxin/gemini](https://huggingface.co/spaces/heixxin/gemini/tree/main) | [Linux.do 讨论](https://linux.do/t/topic/1226413)
- 绘图参考:[Gemini-Link-System](https://github.com/qxd-ljy/Gemini-Link-System) | [Linux.do 讨论](https://linux.do/t/topic/1234363)
- Gemini Business 2API Helper 参考:[Linux.do 讨论](https://linux.do/t/topic/1231008)
---
## ⭐ Star History
[](https://star-history.com/#Dreamy-rain/gemini-business2api&Date)
---
**如果这个项目对你有帮助,请给个 ⭐ Star!**