File size: 7,577 Bytes
bcd4897
 
 
 
 
 
 
 
 
 
b88ce1b
 
 
 
 
 
 
 
 
 
01add6a
02082f8
 
01add6a
 
b88ce1b
 
01add6a
02082f8
01add6a
b88ce1b
 
5b1e8d4
 
 
 
 
 
 
 
 
 
 
 
b88ce1b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5b1e8d4
b88ce1b
 
5b1e8d4
 
 
 
 
 
 
 
 
b88ce1b
 
 
 
 
 
 
 
 
 
 
 
071a4ab
 
 
 
 
b88ce1b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5b1e8d4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b88ce1b
 
 
5b1e8d4
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
---
title: Antigravity2api
emoji: 🚀
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false
license: mit
---

# Antigravity Gateway

<div align="center">
  <img src="client/public/rocket.svg" width="120" alt="Antigravity Logo" />
  <h3>Google Antigravity API to OpenAI Proxy</h3>
  <p>
    将 Google Antigravity API 转换为 OpenAI 兼容格式的高性能网关服务。
    <br />
    内置现代化管理后台,支持多账号轮询、Token 自动刷新、密钥管理与实时监控。
  </p>
  <p>
    <a href="https://github.com/liuw1535/antigravity2api-nodejs">
      <img src="https://img.shields.io/badge/原项目-liuw1535/antigravity2api--nodejs-blue?style=flat-square&logo=github" alt="Original Project" />
    </a>
  </p>
</div>

> [!NOTE]
> 本项目基于 [liuw1535/antigravity2api-nodejs](https://github.com/liuw1535/antigravity2api-nodejs) 进行开发和优化。

---

## ⚠️ 重要提示

> [!WARNING]
> **使用风险警告**
> - 本项目仅供学习与技术研究,请勿用于商业用途或违反服务条款的场景
> - 使用本项目可能违反 Google 服务条款,存在账号被封禁的风险
> - 请妥善保管 `data/accounts.json` 文件,其中包含敏感的访问凭证
> - 建议不要将账号数据文件提交到版本控制系统或公开分享
> - 使用者需自行承担因使用本项目而产生的一切后果

---

## ✨ 功能特性

### 核心功能
- **OpenAI 兼容**: 完全兼容 OpenAI Chat Completions API 格式,无缝对接现有生态。
- **流式响应**: 支持 SSE (Server-Sent Events) 流式输出,体验流畅。
- **多模态支持**: 支持文本及 Base64 编码的图片输入 (GPT-4 Vision 兼容)。
- **工具调用**: 支持 Function Calling,扩展模型能力。

### 增强特性
- **多账号池**: 支持配置多个 Google 账号,自动负载均衡与轮询。
- **Token 自动保活**: 内置 Token 刷新机制,自动处理过期与 403 错误。
- **高并发支持**: 优化的请求处理队列,支持高并发场景。

### 管理后台 (Dashboard)
- **现代化 UI**: 基于 React + Tailwind CSS 构建的极简主义设计风格。
- **密钥管理**: 创建、删除、禁用 API Key,支持设置额度与过期时间。
- **Token 管理**: 可视化管理 Google 账号,实时查看 Token 状态。
- **系统监控**: 实时监控 CPU、内存、请求数与响应时间。
- **在线测试**: 内置 Chat 调试界面,方便测试模型效果。
- **日志审计**: 完整的请求日志记录与查询。

## 🛠️ 技术栈

- **后端**: Node.js (Express), Native Fetch
- **前端**: React, Vite, Tailwind CSS, Framer Motion, Lucide React
- **数据存储**: 本地 JSON 文件存储 (轻量级,无外部数据库依赖)

## 🚀 快速开始

### 环境要求
- Node.js >= 18.0.0

### 1. 安装与构建

```bash
# 安装项目依赖
npm install

# 构建前端资源
npm run build
```

### 2. 配置服务

编辑根目录下的 `config.json` 文件:

```json
{
  "server": {
    "port": 8045,           // 服务端口
    "host": "0.0.0.0"       // 监听地址
  },
  "security": {
    "apiKey": "sk-admin",   // 管理员/默认 API Key
    "maxRequestSize": "50mb" // 最大请求体大小
  },
  "defaults": {
    "model": "gemini-2.0-flash-exp" // 默认模型
  }
}
```

### 3. 添加 Google 账号

运行 OAuth 登录脚本获取 Access Token:

```bash
npm run login
```

按提示在浏览器中授权,获取的 Token 将自动保存到 `data/accounts.json`> [!CAUTION]
> **数据安全警告**
> - `data/accounts.json` 文件包含您的 Google 账号访问令牌,具有高度敏感性
> - 请确保该文件权限设置正确 (建议 chmod 600),仅所有者可读写
> - **切勿**将此文件上传到 GitHub、Gitee 等公开代码仓库
> - **切勿**与他人分享此文件或将其暴露在公网环境
> - 定期检查 `.gitignore` 文件,确保 `data/` 目录已被排除
> - 如发现令牌泄露,请立即在 Google 账号设置中撤销相关应用权限

### 4. 启动服务

```bash
# 生产模式
npm start

# 开发模式 (支持热重载)
npm run dev
```

服务启动后,访问 `http://localhost:8045` 进入管理后台。

> [!TIP]
> **首次登录提示**
> - 默认管理密码: `admin123`
> - 登录后请及时在设置页面修改密码以确保安全

## 🔌 API 使用指南

### 基础 URL
`http://localhost:8045`

### 认证
所有请求需在 Header 中携带 API Key:
`Authorization: Bearer <YOUR_API_KEY>`

### 1. 获取模型列表
`GET /v1/models`

### 2. 聊天补全
`POST /v1/chat/completions`

**请求示例:**
```bash
curl http://localhost:8045/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-admin" \
  -d '{
    "model": "gemini-2.0-flash-exp",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": true
  }'
```

## 📂 项目结构

```
.
├── client/                 # 前端 React 项目
│   ├── src/
│   │   ├── components/     # UI 组件
│   │   ├── pages/          # 页面组件
│   │   └── ...
│   └── ...
├── data/                   # 数据存储目录
│   ├── accounts.json       # Google 账号数据
│   ├── keys.json           # API Key 数据
│   └── ...
├── src/                    # 后端源码
│   ├── server/             # 服务器入口
│   ├── api/                # API 路由处理
│   ├── auth/               # 认证与 Token 管理
│   └── ...
├── scripts/                # 工具脚本
├── config.json             # 配置文件
└── package.json
```

## ⚖️ 免责声明

本项目 (Antigravity Gateway) 仅供技术学习、研究和交流使用,开发者不对使用本项目产生的任何后果负责。

### 使用条款

1. **自行承担风险**: 使用者在使用本项目时,需完全理解并接受相关风险,包括但不限于:
   - Google 账号被暂停、封禁或限制访问
   - 违反 Google 服务条款可能导致的法律责任
   - 数据泄露、隐私侵犯等安全风险
   - 服务不稳定、数据丢失等技术问题

2. **禁止商业用途**: 本项目严禁用于任何商业用途,包括但不限于:
   - 提供付费 API 代理服务
   - 作为商业产品的技术组件
   - 任何形式的盈利性活动

3. **合规使用**: 使用者需确保:
   - 遵守所在地区的法律法规
   - 遵守 Google 及相关服务的使用条款
   - 不利用本项目进行任何违法或侵权行为

4. **数据安全**: 使用者应当:
   - 妥善保管账号凭证和敏感数据
   - 采取适当的安全措施防止数据泄露
   - 对因疏忽导致的安全问题自行负责

5. **无担保声明**: 本项目按 "现状" 提供,不提供任何明示或暗示的担保,包括但不限于:
   - 适销性担保
   - 特定用途适用性担保
   - 不侵权担保
   - 服务质量或可靠性担保

### 责任限制

在任何情况下,本项目的开发者、贡献者及相关方均不对以下情况承担责任:
- 因使用或无法使用本项目而产生的任何直接、间接、偶然、特殊或后果性损害
- 数据丢失、业务中断、利润损失或其他经济损失
- 第三方的任何索赔或诉讼

**使用本项目即表示您已充分理解并接受上述所有条款。如不同意,请勿使用本项目。**

---

## 📝 License

MIT License

本许可证授予的权利和义务不影响上述免责声明的效力。