"git@developer.sourcefind.cn:jerrrrry/infinicore.git" did not exist on "06dcc06794311a4bb2ef13c45c5973d5ebabdbec"
Commit f2698399 authored by wangkx1's avatar wangkx1
Browse files

update new-moon

parent c0705977
Flask==2.0.1
Flask-SocketIO==5.1.1
eventlet==0.33.1
SQLAlchemy==1.4.23
Werkzeug==2.0.1
Jinja2==3.0.1
MarkupSafe==2.0.1
itsdangerous==2.0.1
click==8.0.1
python-engineio==4.2.1
python-socketio==5.4.0
greenlet==1.1.2
six==1.16.0
dnspython==2.2.1
\ No newline at end of file
#!/bin/bash
# 模型管理工具启动脚本
echo "========================================="
echo "Linux模型管理工具启动脚本"
echo "========================================="
# 检查Python版本
echo "检查Python版本..."
if ! command -v python3 &> /dev/null; then
echo "错误: 未找到Python3,请先安装Python3"
exit 1
fi
PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}')
echo "已安装Python版本: $PYTHON_VERSION"
# 创建虚拟环境(如果不存在)
if [ ! -d "venv" ]; then
echo "创建Python虚拟环境..."
python3 -m venv venv
if [ $? -ne 0 ]; then
echo "错误: 创建虚拟环境失败"
exit 1
fi
fi
# 激活虚拟环境
echo "激活虚拟环境..."
if [ $? -ne 0 ]; then
echo "错误: 激活虚拟环境失败"
exit 1
fi
# 升级pip
echo "升级pip..."
pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
if [ $? -ne 0 ]; then
echo "警告: 升级pip失败"
fi
# 安装依赖
echo "安装依赖包..."
pip install flask flask-cors flask-socketio eventlet requests modelscope -i https://pypi.tuna.tsinghua.edu.cn/simple
if [ $? -ne 0 ]; then
echo "警告: 安装依赖包失败,某些功能可能受限"
fi
# 创建必要的目录
echo "创建必要的目录..."
# mkdir -p ~/models
mkdir -p backend/static
mkdir -p backend/templates
# 检查端口是否被占用
PORT=2026
if lsof -Pi :$PORT -sTCP:LISTEN -t >/dev/null 2>&1; then
echo "警告: 端口 $PORT 已被占用,请先关闭占用该端口的进程"
echo "您可以使用以下命令关闭占用端口的进程:"
echo "sudo lsof -t -i:$PORT | xargs kill -9"
read -p "是否继续启动?(y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi
# 启动应用
echo "========================================="
echo "启动模型管理工具..."
echo "访问地址: http://localhost:$PORT"
echo "========================================="
# 切换到backend目录
cd backend
# 启动Flask应用
python3 app.py
\ No newline at end of file
home = /usr/bin
include-system-site-packages = false
version = 3.10.12
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----
# 模型下载管理器
一个基于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界面
### 扩展功能
如需扩展功能,可以修改以下部分:
- 添加新的模型源
- 支持更多上传平台
- 增加模型转换功能
- 添加批量操作功能
## 许可证
本项目基于现有代码库开发,遵循原有许可证。
## 支持
如有问题或建议,请联系项目维护者。
\ No newline at end of file
csghub:
base_url: http://10.17.27.227:4997
repo_type: model
revision: main
token: f5dad38a9426410aa861155cd184f84a
download:
max_concurrent: 1
max_retries: 10
retry_interval: 1
local:
config_db_path: config_db.json
default_model_path: /data/DataStore/models/exp-net/new-moon/models
models_db_path: models_db.json
upload:
create_repo_default: true
num_workers: 1
version: '3'
services:
model-download-manager:
image: python:3.9-slim
container_name: model_download_manager
volumes:
- /data/DataStore/models/exp-net/new-moon/models:/workspace/new-moon/models
ports:
- "7865:7865"
working_dir: /workspace/new-moon
command: bash -c "python3 model_download_manager.py"
restart: unless-stopped
environment:
- PYTHONUNBUFFERED=1
This diff is collapsed.
{
"local_dir": "/data/DataStore/models/exp-net/new-moon/models",
"max_concurrent_downloads": 1,
"max_concurrent_uploads": 1,
"auto_upload_after_download": false,
"auto_delete_after_upload": false,
"auto_delete_after_download": false
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
--- /usr/local/lib/python3.10/dist-packages/pycsghub/csghub_api.py 2026-04-12 00:00:00.000000000 +0000
+++ /usr/local/lib/python3.10/dist-packages/pycsghub/csghub_api.py 2026-04-12 00:00:00.000000000 +0000
@@ -178,7 +178,7 @@
"name": name,
"nickname": name,
"default_branch": DEFAULT_REVISION,
- "private": True,
+ "private": False,
"license": DEFAULT_LICENCE,
}
\ No newline at end of file
from modelscope.hub.api import HubApi
# 创建 API 实例
api = HubApi()
# 获取模型信息,将 <MODEL_ID> 替换为你的模型ID
# 例如: model_info = api.get_model('DAMO-NLP/bert-base-uncased')
model_info = api.get_model('deepseek-ai/DeepSeek-V3.2')
# 获取文件列表并统计数量
# 注意:get_model 返回的对象结构可能包含文件信息,
# 你需要根据其实际返回的结构来访问文件列表。
# 以下是一个示例,具体属性名可能需要根据返回对象调整
file_count = len(model_info['ModelInfos']["safetensor"]['files']) # 假设文件列表在 .safetensors_files 属性中
StorageSize = model_info['StorageSize'] / 1024 / 1024 / 1024
print(f"模型文件总数: {file_count}, 仓库大小: {StorageSize:.2f} GB")
\ No newline at end of file
from modelscope.hub.snapshot_download import snapshot_download
snapshot_download(
model_id="Tencent-Hunyuan/HY-Embodied-0.5",
cache_dir="/data/DataStore/models/exp-net/new-moon/models",
revision="master"
)
\ No newline at end of file
patch /usr/local/lib/python3.10/dist-packages/pycsghub/csghub_api.py < change_private.patch
sed -n '178,182p' /usr/local/lib/python3.10/dist-packages/pycsghub/csghub_api.py
\ No newline at end of file
gradio>=4.44.1
modelscope>=1.11.0
requests>=2.28.0
tqdm>=4.65.0
python-multipart>=0.0.6
aiofiles>=23.0.0
pyyaml>=6.0
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment