51 lines
1.3 KiB
PowerShell
51 lines
1.3 KiB
PowerShell
param(
|
|
[string]$OutputDir = "models/gguf/1c/devstral-small-2-24b-instruct-2512-q4_k_m",
|
|
[int]$MaxAttempts = 200
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$RepoUrl = "https://huggingface.co/bartowski/mistralai_Devstral-Small-2-24B-Instruct-2512-GGUF/resolve/main"
|
|
$FileName = "mistralai_Devstral-Small-2-24B-Instruct-2512-Q4_K_M.gguf"
|
|
$ExpectedBytes = 14334438272
|
|
$OutputPath = Join-Path $OutputDir $FileName
|
|
|
|
New-Item -ItemType Directory -Force -Path $OutputDir | Out-Null
|
|
|
|
for ($i = 1; $i -le $MaxAttempts; $i++) {
|
|
$current = if (Test-Path -LiteralPath $OutputPath) {
|
|
(Get-Item -LiteralPath $OutputPath).Length
|
|
} else {
|
|
0
|
|
}
|
|
|
|
if ($current -ge $ExpectedBytes) {
|
|
break
|
|
}
|
|
|
|
Write-Host "Attempt $i, current bytes: $current / $ExpectedBytes"
|
|
curl.exe `
|
|
-L `
|
|
-C - `
|
|
--retry 10 `
|
|
--retry-all-errors `
|
|
--retry-delay 2 `
|
|
--connect-timeout 30 `
|
|
--speed-time 60 `
|
|
--speed-limit 1024 `
|
|
-o $OutputPath `
|
|
"$RepoUrl/$FileName"
|
|
}
|
|
|
|
$final = if (Test-Path -LiteralPath $OutputPath) {
|
|
(Get-Item -LiteralPath $OutputPath).Length
|
|
} else {
|
|
0
|
|
}
|
|
|
|
if ($final -lt $ExpectedBytes) {
|
|
throw "Download incomplete: $final / $ExpectedBytes bytes. Re-run this script to resume."
|
|
}
|
|
|
|
Write-Host "Download complete: $OutputPath"
|