# 模型下载管理器 一个基于Gradio的模型下载、上传和管理工具,支持ModelScope模型下载和CsgHub上传。 ## 功能特点 ### 1. 模型下载 - 支持通过模型ID下载ModelScope模型 - 任务优先级管理(0-10,数字越大优先级越高) - 每次仅同时下载一个模型 - 预估远程模型大小 - 根据文件数量显示下载进度 - 支持暂停、恢复、删除下载任务 ### 2. 模型上传 - 上传本地模型到CsgHub平台 - 显示上传进度(按文件数量) - 已上传的模型自动变灰显示在页面底部 - 支持暂停、恢复、删除上传任务 ### 3. 本地模型管理 - 显示本地所有已下载/已上传的模型 - 支持删除本地模型 - 已上传的模型有特殊标记 ### 4. 自动操作 - 下载后自动上传(可配置) - 上传后自动删除本地文件(可配置) ### 5. 配置管理 - 设置本地模型存储目录 - 配置最大同时下载/上传数 - 配置CsgHub连接信息 - 配置自动操作选项 ## 安装与运行 ### 前提条件 - Python 3.7+ - pip ### 安装步骤 1. 进入项目目录 ```bash cd /data/DataStore/models/exp-net/new-moon ``` 2. 安装依赖 ```bash pip install -r requirements.txt ``` 3. 启动应用 ```bash python start_manager.py ``` 或者直接运行: ```bash python model_download_manager.py ``` ### 快速启动 ```bash cd /data/DataStore/models/exp-net/new-moon && python start_manager.py ``` ## 使用说明 ### 首次使用 1. 打开浏览器访问:`http://localhost:7860` 2. 在顶部配置面板中设置本地目录路径 3. 点击"设置目录"保存配置 ### 下载模型 1. 切换到"📥 下载"标签页 2. 输入模型ID(例如:`Qwen/Qwen2.5-7B-Instruct`) 3. 设置优先级(可选,默认0) 4. 点击"添加下载任务" 5. 在任务列表中查看下载进度 ### 上传模型 1. 切换到"📤 上传"标签页 2. 输入已下载的模型ID 3. 点击"添加上传任务" 4. 在任务列表中查看上传进度 ### 管理本地模型 1. 切换到"💾 本地模型"标签页 2. 查看本地所有模型列表 3. 点击"上传"按钮上传未上传的模型 4. 点击"删除"按钮删除本地模型 ### 配置选项 - **本地目录**: 模型存储路径 - **下载后自动上传**: 下载完成后自动开始上传 - **上传后自动删除**: 上传完成后自动删除本地文件 - **最大同时下载数**: 控制并发下载数量(默认1) - **最大同时上传数**: 控制并发上传数量(默认1) ## 注意事项 1. **首次使用**: 必须设置本地目录才能正常使用 2. **模型ID格式**: 使用`组织/模型名`格式,如`Qwen/Qwen2.5-7B-Instruct` 3. **网络连接**: 确保可以访问ModelScope和CsgHub服务 4. **磁盘空间**: 确保有足够的磁盘空间存储模型 5. **权限**: 确保有读写本地目录的权限 ## 故障排除 ### 常见问题 1. **无法启动应用** - 检查Python版本:`python --version` - 检查依赖安装:`pip list | grep gradio` 2. **下载失败** - 检查网络连接 - 检查模型ID是否正确 - 检查磁盘空间 3. **上传失败** - 检查CsgHub服务是否可用 - 检查token配置是否正确 - 检查本地模型是否存在 4. **界面无法加载** - 检查端口7860是否被占用 - 尝试重启应用 ### 日志查看 应用运行日志会输出到控制台,包含: - 任务状态更新 - 下载/上传进度 - 错误信息 ## 配置说明 ### 配置文件 - `model_manager_config.json`: 应用配置文件 - `model_manager_state.json`: 任务状态文件 ### 默认配置 ```json { "local_dir": "", "max_concurrent_downloads": 1, "max_concurrent_uploads": 1, "auto_upload_after_download": false, "auto_delete_after_upload": false, "csghub_config": { "base_url": "http://10.17.27.227:4997", "token": "f5dad38a9426410aa861155cd184f84a", "repo_type": "model", "revision": "main" } } ``` ## 开发说明 ### 项目结构 ``` new-moon/ ├── model_download_manager.py # 主程序 ├── start_manager.py # 启动脚本 ├── requirements.txt # 依赖列表 ├── model_manager_config.json # 配置文件 ├── model_manager_state.json # 状态文件 └── README.md # 说明文档 ``` ### 核心模块 1. **GlobalState**: 全局状态管理 2. **DownloadTask/UploadTask**: 任务管理 3. **download_worker/upload_worker**: 工作线程 4. **create_interface()**: Gradio界面 ### 扩展功能 如需扩展功能,可以修改以下部分: - 添加新的模型源 - 支持更多上传平台 - 增加模型转换功能 - 添加批量操作功能 ## 许可证 本项目基于现有代码库开发,遵循原有许可证。 ## 支持 如有问题或建议,请联系项目维护者。