Appearance
text
# Related Code
main.py - 应用入口点
src/ui.py - GUI 主窗口
src/unified_downloader.py - 统一下载引擎
pyproject.toml - 项目配置和依赖项目概述
HF Model Downloader 是一个跨平台的 GUI 应用,用于从 HuggingFace 和 ModelScope 下载模型和数据集。
设计目标
面向非技术用户:无需配置 Python 环境、无需命令行操作,双击即可运行。
为什么是 GUI 而非 CLI?
| 维度 | GUI 优势 |
|---|---|
| 用户群体 | 产品经理、设计师等非技术人员也能使用 |
| 学习成本 | 零配置,无需记忆命令 |
| 状态可见性 | 实时进度条、日志输出 |
| 错误处理 | 友好的错误提示对话框 |
核心特性
1. 双平台支持
通过 PLATFORM_CONFIGS 配置字典实现平台抽象,新增平台只需添加配置项。
2. 多进程下载
下载操作在独立进程中执行,避免阻塞 UI 线程:
3. 跨平台打包
目录结构
hf-model-downloader/
├── main.py # 入口点:多进程初始化、图标加载
├── src/
│ ├── ui.py # MainWindow 类
│ ├── unified_downloader.py # 统一下载引擎 (核心)
│ ├── downloader.py # HuggingFace 下载器 (已废弃)
│ ├── modelscope_downloader.py # ModelScope 下载器 (已废弃)
│ ├── resource_utils.py # 资源路径处理
│ └── utils.py # 清理工具
├── assets/ # 图标和 Logo
├── build.py # PyInstaller 构建脚本
├── Makefile # 构建命令
└── .github/workflows/ # CI/CD 流程依赖关系
技术债务
| 问题 | 严重程度 | 说明 |
|---|---|---|
| 遗留下载器 | 低 | downloader.py 和 modelscope_downloader.py 已被 unified_downloader.py 取代但未删除 |
| Python 版本限制 | 中 | 要求 Python ≥3.13 可能限制用户群 |
| 无自动更新 | 低 | 需手动下载新版本 |