Spaces:
Sleeping
Sleeping
| # 🔧 管理员工具 | |
| ## 用户配额管理 | |
| ### 📝 脚本: `admin_adjust_user_quota.py` | |
| 用于调整用户的每日调用次数配额。 | |
| --- | |
| ## 🚀 使用方法 | |
| ### 1. 查看用户状态 | |
| ```bash | |
| export HF_TOKEN='your_hf_token_here' | |
| python admin_adjust_user_quota.py <username> show | |
| ``` | |
| **示例**: | |
| ```bash | |
| python admin_adjust_user_quota.py learnmlf show | |
| ``` | |
| **输出**: | |
| ``` | |
| ============================================================ | |
| 📊 用户状态: learnmlf | |
| ============================================================ | |
| 日期: 2026-01-09 | |
| 已用次数: 3/4 | |
| 剩余次数: 1 | |
| 状态: ✅ 可用 | |
| ============================================================ | |
| ``` | |
| --- | |
| ### 2. 重置用户配额(给满4次) | |
| ```bash | |
| python admin_adjust_user_quota.py <username> reset | |
| ``` | |
| **作用**: 将用户今天的已用次数设为0,相当于给他4次新配额 | |
| **示例**: | |
| ```bash | |
| python admin_adjust_user_quota.py learnmlf reset | |
| ``` | |
| **流程**: | |
| 1. 显示当前状态 | |
| 2. 要求确认(输入 `yes`) | |
| 3. 重置为0 | |
| 4. 显示更新后的状态 | |
| --- | |
| ### 3. 设置已用次数 | |
| ```bash | |
| python admin_adjust_user_quota.py <username> set <count> | |
| ``` | |
| **作用**: 直接设置用户今天已用的次数 | |
| **示例**: | |
| ```bash | |
| # 设置为已用2次(剩余2次) | |
| python admin_adjust_user_quota.py learnmlf set 2 | |
| # 设置为已用0次(剩余4次) | |
| python admin_adjust_user_quota.py learnmlf set 0 | |
| ``` | |
| --- | |
| ### 4. 增加额外配额 | |
| ```bash | |
| python admin_adjust_user_quota.py <username> add <extra_count> | |
| ``` | |
| **作用**: 给用户增加额外的调用次数(超过默认的4次) | |
| **示例**: | |
| ```bash | |
| # 给用户额外增加2次配额 | |
| python admin_adjust_user_quota.py learnmlf add 2 | |
| # 如果用户原本已用3次,增加2次后,变为已用1次(相当于总共6次配额) | |
| ``` | |
| **逻辑**: | |
| - 原理:减少已用次数 = 增加剩余次数 | |
| - 如果用户已用3次,增加2次配额后,已用次数变为1次 | |
| - 用户实际可用:4 - 1 = 3次(比重置多2次) | |
| --- | |
| ## 📊 使用场景 | |
| ### 场景1: 用户配额用完了,但需要紧急使用 | |
| ```bash | |
| # 快速重置,给他4次新配额 | |
| python admin_adjust_user_quota.py user123 reset | |
| ``` | |
| ### 场景2: VIP用户,给他每天8次配额 | |
| ```bash | |
| # 假设他今天用了2次,给他增加4次额外配额 | |
| python admin_adjust_user_quota.py vip_user add 4 | |
| # 结果:已用次数从2变为-2,相当于还能用6次(总共8次) | |
| ``` | |
| ### 场景3: 用户误操作浪费了配额 | |
| ```bash | |
| # 重置给他4次新配额 | |
| python admin_adjust_user_quota.py user456 reset | |
| ``` | |
| ### 场景4: 查看用户使用情况 | |
| ```bash | |
| # 查看某个用户今天用了多少次 | |
| python admin_adjust_user_quota.py user789 show | |
| ``` | |
| --- | |
| ## 🔐 安全注意事项 | |
| 1. **HF_TOKEN 权限**: 需要对 Dataset 有写入权限的 Token | |
| 2. **确认操作**: 所有修改操作都需要输入 `yes` 确认 | |
| 3. **不可撤销**: 修改后立即生效,无法撤销(但可以再次调整) | |
| 4. **日期隔离**: 每天的配额独立,修改今天的不影响昨天/明天 | |
| --- | |
| ## 📂 数据存储位置 | |
| ``` | |
| HF Dataset: learnmlf/video-evaluations | |
| ├── call_counts/ | |
| │ └── 2026-01-09/ | |
| │ └── username.json ← 这个文件被修改 | |
| ``` | |
| **文件格式**: | |
| ```json | |
| { | |
| "user": "username", | |
| "date": "2026-01-09", | |
| "count": 2, | |
| "last_updated": "2026-01-09T12:34:56", | |
| "note": "Set to 2 by admin" | |
| } | |
| ``` | |
| --- | |
| ## 💡 常见问题 | |
| ### Q: 增加配额会影响其他天吗? | |
| A: 不会。每天的配额独立存储,只影响当天。 | |
| ### Q: 可以给用户设置负数吗? | |
| A: 可以,使用 `add` 命令增加足够多次数即可。负数意味着用户有"额外"配额。 | |
| ### Q: 用户看得到管理员的调整吗? | |
| A: 用户只能看到剩余次数,看不到 `note` 字段的备注。 | |
| ### Q: 如何批量调整多个用户? | |
| A: 可以写个 bash 循环: | |
| ```bash | |
| for user in user1 user2 user3; do | |
| python admin_adjust_user_quota.py $user reset | |
| done | |
| ``` | |
| --- | |
| ## 🔄 与应用的集成 | |
| 用户在前端看到的次数会**实时更新**: | |
| - 应用从 `call_counts/{date}/{username}.json` 读取 | |
| - 管理员修改文件后,用户刷新页面即可看到新配额 | |
| - 无需重启应用 | |
| --- | |
| ## 📝 日志 | |
| 所有修改都会在 `note` 字段留下记录: | |
| - `"Reset by admin"` - 管理员重置 | |
| - `"Set to X by admin"` - 管理员设置为X | |
| - `"Added X extra calls by admin (was Y)"` - 管理员增加X次(原来是Y) | |