diff --git a/studio/backend/utils/datasets/model_mappings.py b/studio/backend/utils/datasets/model_mappings.py index 56e8ea70c1..fda8303a30 100644 --- a/studio/backend/utils/datasets/model_mappings.py +++ b/studio/backend/utils/datasets/model_mappings.py @@ -351,6 +351,13 @@ TEMPLATE_TO_MODEL_MAPPER = { "unsloth/Qwen3-30B-A3B-Thinking-2507", "Qwen/Qwen3-30B-A3B-Thinking-2507", ), + "qwen3.5": ( + "unsloth/Qwen3.5-0.8B", + "unsloth/Qwen3.5-2B", + "unsloth/Qwen3.5-4B", + "unsloth/Qwen3.5-27B", + "unsloth/Qwen3.5-35B-A3B", + ), "zephyr": ( "unsloth/zephyr-sft-bnb-4bit", "unsloth/zephyr-sft", @@ -419,6 +426,10 @@ TEMPLATE_TO_RESPONSES_MAPPER = { "instruction": "user\n", "response": "model\n", }, + "qwen3.5": { + "instruction": "<|im_start|>user\n", + "response": "<|im_start|>assistant\n\n", + }, "qwen3-instruct": { "instruction": "<|im_start|>user\n", "response": "<|im_start|>assistant\n", diff --git a/studio/setup.ps1 b/studio/setup.ps1 index 6597fc6746..61db138ee4 100644 --- a/studio/setup.ps1 +++ b/studio/setup.ps1 @@ -526,7 +526,31 @@ if ($NeedNode) { Write-Host "[OK] Node $(node -v) | npm $(npm -v)" -ForegroundColor Green # ============================================ -# 1g. Python (>= 3.11 and < 3.14, matching setup.sh) +# 1g. FFmpeg (required for audio model support) +# ============================================ +$HasFFmpeg = $null -ne (Get-Command ffmpeg -ErrorAction SilentlyContinue) +if (-not $HasFFmpeg) { + Write-Host "FFmpeg not found -- installing via winget..." -ForegroundColor Yellow + $HasWinget = $null -ne (Get-Command winget -ErrorAction SilentlyContinue) + if ($HasWinget) { + try { + winget install -e --id Gyan.FFmpeg --source winget --accept-package-agreements --accept-source-agreements 2>&1 | Out-Null + Refresh-Environment + $HasFFmpeg = $null -ne (Get-Command ffmpeg -ErrorAction SilentlyContinue) + } catch { } + } + if (-not $HasFFmpeg) { + Write-Host "[WARN] FFmpeg could not be installed automatically." -ForegroundColor Yellow + Write-Host " Install FFmpeg from https://ffmpeg.org/download.html and re-run." -ForegroundColor Yellow + } else { + Write-Host "[OK] FFmpeg installed: $(ffmpeg -version | Select-Object -First 1)" -ForegroundColor Green + } +} else { + Write-Host "[OK] FFmpeg found: $(ffmpeg -version | Select-Object -First 1)" -ForegroundColor Green +} + +# ============================================ +# 1h. Python (>= 3.11 and < 3.14, matching setup.sh) # ============================================ $HasPython = $null -ne (Get-Command python -ErrorAction SilentlyContinue) $PythonOk = $false diff --git a/studio/setup.sh b/studio/setup.sh index 31facb4b62..16df19df12 100755 --- a/studio/setup.sh +++ b/studio/setup.sh @@ -97,6 +97,29 @@ fi echo "✅ Node $(node -v) | npm $(npm -v)" +# ── 4b. Check / install FFmpeg (required for audio model support) ── +if command -v ffmpeg &>/dev/null; then + echo "✅ FFmpeg found: $(ffmpeg -version 2>&1 | head -1)" +else + echo "⚠️ FFmpeg not found — installing..." + if command -v apt-get &>/dev/null; then + sudo apt-get update -y > /dev/null 2>&1 + sudo apt-get install -y ffmpeg > /dev/null 2>&1 + elif command -v yum &>/dev/null; then + sudo yum install -y ffmpeg > /dev/null 2>&1 + elif command -v brew &>/dev/null; then + brew install ffmpeg > /dev/null 2>&1 + fi + if command -v ffmpeg &>/dev/null; then + echo "✅ FFmpeg installed: $(ffmpeg -version 2>&1 | head -1)" + else + echo "⚠️ Could not install FFmpeg automatically." + echo " Audio model support requires FFmpeg. Install it manually:" + echo " Ubuntu/Debian: sudo apt-get install ffmpeg" + echo " macOS: brew install ffmpeg" + fi +fi + # ── 5. Build frontend ── echo "" echo "Building frontend..."