Upload ADMIN_SETUP.md with huggingface_hub
Browse files- ADMIN_SETUP.md +101 -0
ADMIN_SETUP.md
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 管理员上线清单
|
| 2 |
+
|
| 3 |
+
这份清单用于把中转站公开给大家使用,同时保护管理员权限和上游额度。
|
| 4 |
+
|
| 5 |
+
## 1. Space 设置
|
| 6 |
+
|
| 7 |
+
在 Hugging Face 创建 Space 时:
|
| 8 |
+
|
| 9 |
+
- SDK 选择 `Docker`
|
| 10 |
+
- Visibility 选择 `Public`
|
| 11 |
+
- 不要把任何真实密钥写进仓库文件
|
| 12 |
+
|
| 13 |
+
部署成功后,公开地址通常是:
|
| 14 |
+
|
| 15 |
+
```text
|
| 16 |
+
https://<owner>-<space>.hf.space
|
| 17 |
+
```
|
| 18 |
+
|
| 19 |
+
例如 Hugging Face 用户名是 `liuyiyang1439`,Space 名叫 `zhongzhuanzhan`:
|
| 20 |
+
|
| 21 |
+
```text
|
| 22 |
+
https://liuyiyang1439-zhongzhuanzhan.hf.space
|
| 23 |
+
```
|
| 24 |
+
|
| 25 |
+
普通用户调用地址是:
|
| 26 |
+
|
| 27 |
+
```text
|
| 28 |
+
https://<owner>-<space>.hf.space/v1
|
| 29 |
+
```
|
| 30 |
+
|
| 31 |
+
`.hf.space` 是 Hugging Face 固定后缀,不能改;你能自定义的是 `<owner>` 和 `<space>`。
|
| 32 |
+
|
| 33 |
+
## 2. 必填 Secrets
|
| 34 |
+
|
| 35 |
+
在 Space 的 `Settings -> Variables and secrets` 添加:
|
| 36 |
+
|
| 37 |
+
- `ADMIN_EMAIL`
|
| 38 |
+
- `ADMIN_PASSWORD`
|
| 39 |
+
- `JWT_SECRET`
|
| 40 |
+
- `TOTP_ENCRYPTION_KEY`
|
| 41 |
+
|
| 42 |
+
如果暂时不配置 Supabase,Space 会使用临时 PostgreSQL 启动,适合先测试后台。正式给大家长期使用时,再添加:
|
| 43 |
+
|
| 44 |
+
- `DATABASE_HOST`
|
| 45 |
+
- `DATABASE_USER`
|
| 46 |
+
- `DATABASE_PASSWORD`
|
| 47 |
+
|
| 48 |
+
你自己当管理员时,`ADMIN_EMAIL` 填你的管理员邮箱,`ADMIN_PASSWORD` 填你自己保存好的强密码。部署成功后用它们登录管理后台。
|
| 49 |
+
|
| 50 |
+
可以用下面命令生成随机密钥:
|
| 51 |
+
|
| 52 |
+
```powershell
|
| 53 |
+
.\scripts\generate-secrets.ps1
|
| 54 |
+
```
|
| 55 |
+
|
| 56 |
+
## 3. 创建用户和普通 API Key
|
| 57 |
+
|
| 58 |
+
进入 sub2api 管理后台后:
|
| 59 |
+
|
| 60 |
+
- 添加上游账号或渠道
|
| 61 |
+
- 创建用户分组
|
| 62 |
+
- 设置分组倍率、额度、可用模型
|
| 63 |
+
- 给用户创建普通 API Key
|
| 64 |
+
- 把 `PUBLIC_USAGE.md` 中的 Base URL 和用户 API Key 发给用户
|
| 65 |
+
|
| 66 |
+
不要把下面这些内容发给普通用户:
|
| 67 |
+
|
| 68 |
+
- 管理员登录密码
|
| 69 |
+
- 全局 Admin API Key
|
| 70 |
+
- Supabase 密码
|
| 71 |
+
- 上游渠道 Key
|
| 72 |
+
- HF Token
|
| 73 |
+
|
| 74 |
+
## 4. 公开使用建议
|
| 75 |
+
|
| 76 |
+
- 每个用户单独发一个 API Key,方便限额和封禁。
|
| 77 |
+
- 新用户先给小额度测试。
|
| 78 |
+
- 给不同用户组设置不同模型和倍率。
|
| 79 |
+
- 出现异常消耗时,先禁用对应用户 API Key,而不是删除数据库数据。
|
| 80 |
+
- 定期检查使用日志、失败率和上游账号状态。
|
| 81 |
+
|
| 82 |
+
## 5. 用量统计和卡顿排查
|
| 83 |
+
|
| 84 |
+
后台的用量统计依赖数据库里的 `usage_logs`。正式使用时请务必配置 Supabase Postgres;如果只用临时 PostgreSQL,Space 休眠、重启或迁移后用量数据会丢失,看起来就像“没有统计”。
|
| 85 |
+
|
| 86 |
+
流式 Chat Completions 请求会由网关向上游强制启用 `stream_options.include_usage=true`,请求结束后写入用量记录。它不是逐字实时刷新,而是一次请求结束后很快出现在后台用量页;如果上游本身不返回 usage,token 数可能只能显示为 0 或依赖估算逻辑。
|
| 87 |
+
|
| 88 |
+
这个 HF 部署包默认写入了适合小机器的网关配置:
|
| 89 |
+
|
| 90 |
+
- 降低账号失败切换次数,避免模型名或上游异常时长时间等待。
|
| 91 |
+
- 降低上游连接池和 OpenAI WebSocket 池规模,减少免费 CPU/内存压力。
|
| 92 |
+
- 将 usage 记录队列溢出策略设为 `sync`,尽量避免高负载时丢用量记录。
|
| 93 |
+
- 缩短流式 keepalive 间隔,让客户端更快收到连接仍然活跃的信号。
|
| 94 |
+
|
| 95 |
+
如果仍然卡,优先检查:
|
| 96 |
+
|
| 97 |
+
- Space 是否刚从休眠唤醒。
|
| 98 |
+
- 是否使用了不存在的模型名。
|
| 99 |
+
- 上游账号是否 429、限流、余额不足或响应慢。
|
| 100 |
+
- 国内到 Hugging Face 的网络是否不稳定。
|
| 101 |
+
- Supabase 所在区域是否离 Hugging Face 太远。
|