Spaces:
Running
Running
CassiopeiaCode
commited on
Commit
·
a5bfe39
1
Parent(s):
1bdfa3a
docs: 更新README文档
Browse files- 添加统计监控功能说明
- 添加HTTP代理配置说明
- 更新环境变量表格
- 更新数据库结构说明
- 补充账号自动禁用机制说明
README.md
CHANGED
|
@@ -6,10 +6,12 @@
|
|
| 6 |
|
| 7 |
- **OpenAI 兼容接口** - 完全兼容 OpenAI Chat Completions API(`/v1/chat/completions`)
|
| 8 |
- **账号管理系统** - 支持多账号管理,启用/禁用控制,自动令牌刷新
|
|
|
|
| 9 |
- **设备授权登录** - 通过 URL 快速登录并自动创建账号(5分钟超时)
|
| 10 |
- **智能负载均衡** - 从启用的账号中随机选择,实现简单的负载分配
|
|
|
|
| 11 |
- **API Key 白名单** - 可选的访问控制,支持开发模式
|
| 12 |
-
- **现代化前端** - 美观的 Web
|
| 13 |
- **自动重试机制** - Token 过期时自动刷新并重试请求
|
| 14 |
|
| 15 |
## 🚀 快速开始
|
|
@@ -37,12 +39,16 @@ cp .env.example .env
|
|
| 37 |
|
| 38 |
# 编辑 .env 文件
|
| 39 |
# OPENAI_KEYS="key1,key2,key3" # 可选,留空则为开发模式
|
|
|
|
|
|
|
| 40 |
```
|
| 41 |
|
| 42 |
**配置说明:**
|
| 43 |
- `OPENAI_KEYS` 为空或未设置:开发模式,不校验 Authorization
|
| 44 |
- `OPENAI_KEYS` 设置后:仅白名单中的 key 可访问 API
|
| 45 |
- API Key 仅用于访问控制,不映射到特定账号
|
|
|
|
|
|
|
| 46 |
|
| 47 |
### 3. 启动服务
|
| 48 |
|
|
@@ -235,6 +241,8 @@ print(response.choices[0].message.content)
|
|
| 235 |
| 变量 | 说明 | 默认值 |
|
| 236 |
|------|------|--------|
|
| 237 |
| `OPENAI_KEYS` | API Key 白名单(逗号分隔) | 空(开发模式) |
|
|
|
|
|
|
|
| 238 |
|
| 239 |
### 数据库结构
|
| 240 |
|
|
@@ -251,10 +259,21 @@ CREATE TABLE accounts (
|
|
| 251 |
last_refresh_status TEXT,
|
| 252 |
created_at TEXT,
|
| 253 |
updated_at TEXT,
|
| 254 |
-
enabled INTEGER DEFAULT 1
|
|
|
|
|
|
|
| 255 |
);
|
| 256 |
```
|
| 257 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 258 |
## 🐛 故障排查
|
| 259 |
|
| 260 |
### 401 Unauthorized
|
|
|
|
| 6 |
|
| 7 |
- **OpenAI 兼容接口** - 完全兼容 OpenAI Chat Completions API(`/v1/chat/completions`)
|
| 8 |
- **账号管理系统** - 支持多账号管理,启用/禁用控制,自动令牌刷新
|
| 9 |
+
- **智能统计监控** - 自动统计成功/失败次数,错误超阈值自动禁用账号
|
| 10 |
- **设备授权登录** - 通过 URL 快速登录并自动创建账号(5分钟超时)
|
| 11 |
- **智能负载均衡** - 从启用的账号中随机选择,实现简单的负载分配
|
| 12 |
+
- **HTTP 代理支持** - 可配置代理服务器,支持所有 HTTP 请求
|
| 13 |
- **API Key 白名单** - 可选的访问控制,支持开发模式
|
| 14 |
+
- **现代化前端** - 美观的 Web 控制台,标签页布局,支持账号管理和 Chat 测试
|
| 15 |
- **自动重试机制** - Token 过期时自动刷新并重试请求
|
| 16 |
|
| 17 |
## 🚀 快速开始
|
|
|
|
| 39 |
|
| 40 |
# 编辑 .env 文件
|
| 41 |
# OPENAI_KEYS="key1,key2,key3" # 可选,留空则为开发模式
|
| 42 |
+
# MAX_ERROR_COUNT=100 # 错误次数阈值
|
| 43 |
+
# HTTP_PROXY="http://127.0.0.1:7890" # HTTP代理(可选)
|
| 44 |
```
|
| 45 |
|
| 46 |
**配置说明:**
|
| 47 |
- `OPENAI_KEYS` 为空或未设置:开发模式,不校验 Authorization
|
| 48 |
- `OPENAI_KEYS` 设置后:仅白名单中的 key 可访问 API
|
| 49 |
- API Key 仅用于访问控制,不映射到特定账号
|
| 50 |
+
- `MAX_ERROR_COUNT`:账号连续失败次数超过此值将自动禁用(默认100)
|
| 51 |
+
- `HTTP_PROXY`:HTTP代理地址,留空则不使用代理
|
| 52 |
|
| 53 |
### 3. 启动服务
|
| 54 |
|
|
|
|
| 241 |
| 变量 | 说明 | 默认值 |
|
| 242 |
|------|------|--------|
|
| 243 |
| `OPENAI_KEYS` | API Key 白名单(逗号分隔) | 空(开发模式) |
|
| 244 |
+
| `MAX_ERROR_COUNT` | 错误次数阈值,超过自动禁用账号 | 100 |
|
| 245 |
+
| `HTTP_PROXY` | HTTP代理地址(如 http://127.0.0.1:7890) | 空(不使用代理) |
|
| 246 |
|
| 247 |
### 数据库结构
|
| 248 |
|
|
|
|
| 259 |
last_refresh_status TEXT,
|
| 260 |
created_at TEXT,
|
| 261 |
updated_at TEXT,
|
| 262 |
+
enabled INTEGER DEFAULT 1, -- 1=启用, 0=禁用
|
| 263 |
+
error_count INTEGER DEFAULT 0, -- 连续错误次数
|
| 264 |
+
success_count INTEGER DEFAULT 0 -- 成功请求次数
|
| 265 |
);
|
| 266 |
```
|
| 267 |
|
| 268 |
+
### 账号统计与自动禁用
|
| 269 |
+
|
| 270 |
+
系统会自动统计每个账号的请求结果:
|
| 271 |
+
- **成功**:返回至少1个有效字符,`success_count+1`,`error_count`重置为0
|
| 272 |
+
- **失败**:未返回有效字符或出错,`error_count+1`
|
| 273 |
+
- **自动禁用**:当`error_count >= MAX_ERROR_COUNT`时,账号自动设置为`enabled=0`
|
| 274 |
+
|
| 275 |
+
这确保了有问题的账号不会持续影响服务质量。
|
| 276 |
+
|
| 277 |
## 🐛 故障排查
|
| 278 |
|
| 279 |
### 401 Unauthorized
|