copilot 交互实现。
项目地址: https://github.com/leaves615/model-downloader
项目简介
Model Downloader 是一个专业的 ModelScope 模型下载工具,提供友好的 Web 界面、多线程分片下载、暂停/恢复功能,以及基于 Server-Sent Events (SSE) 的实时进度监控。
核心特性
高性能下载
- 多线程分片下载:自动将大文件分片并行下载
- 智能下载模式:根据文件大小自动选择单线程或多线程
- 断点续传支持:完整的断点续传能力,支持中断后恢复
- 智能速度控制:可配置分片大小(默认 10MB )和线程数(默认 5 线程)
可靠的数据管理
- 持久化任务状态:任务状态在应用重启后保留
- 元数据追踪:基于 JSON 的分片状态管理,确保可靠恢复
- 原子文件操作:确保合并操作过程中的数据完整性
- 自动清理:下载成功后自动清理临时分片文件
用户体验
- 实时进度更新:基于 SSE 的实时进度、速度和预计完成时间显示
- 任务管理:创建、暂停、恢复和删除下载任务
- GGUF 量化过滤:智能过滤特定量化版本( Q4_K_M 、Q5_K_S 等)
- 文件模式匹配:支持正则表达式的包含/排除过滤器
Web 界面
- 现代化 UI:简洁、响应式的 Web 界面
- 实时监控:实时任务状态和进度可视化
- 任务队列:同时管理多个下载任务
- 一键操作:所有任务操作的简单控制
技术亮点
- 线程安全架构:使用锁和队列确保数据一致性
- 高效合并:后台线程在分片完成时自动合并
- Range 请求支持:自动检测服务器能力
- 错误处理:全面的重试逻辑和错误恢复
- 资源优化:通过智能缓存最小化 I/O 操作