瀏覽代碼

使用命令行方式下载

lxylxy123321 1 周之前
父節點
當前提交
9fb4226ba3
共有 2 個文件被更改,包括 11 次插入4 次删除
  1. 8 4
      backend/app/services/model_service.py
  2. 3 0
      backend/requirements.txt

+ 8 - 4
backend/app/services/model_service.py

@@ -42,13 +42,17 @@ async def download_model(model_id: str, use_modelscope: bool = False) -> dict[st
     """从 HF 或 ModelScope 下载模型到本地缓存。"""
     try:
         if use_modelscope:
-            from modelscope.hub.snapshot_download import snapshot_download as ms_snapshot_download
+            import subprocess
 
+            # 使用 modelscope CLI 下载,避免 SDK API 兼容问题
             download_dir = str(settings.models_dir / model_id.replace("/", "_"))
-            local_path = ms_snapshot_download(
-                model_id,
-                local_dir=download_dir,
+            proc = subprocess.run(
+                ["modelscope", "download", "--model", model_id, "--local_dir", download_dir],
+                capture_output=True, text=True, timeout=3600,
             )
+            if proc.returncode != 0:
+                raise RuntimeError(f"modelscope CLI failed: {proc.stderr}")
+            local_path = download_dir
         else:
             from huggingface_hub import snapshot_download
 

+ 3 - 0
backend/requirements.txt

@@ -18,3 +18,6 @@ pillow>=10.4.0
 pandas>=2.2.0
 pyarrow>=17.0.0
 addict>=2.4.0
+modelscope
+datasets
+huggingface_hub