43 lines
1.7 KiB
PowerShell
43 lines
1.7 KiB
PowerShell
param([string]$Release = "b9631")
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
$rootDir = Split-Path -Parent $scriptDir
|
|
$appDir = Join-Path $rootDir "app"
|
|
$toolsDir = Join-Path $appDir "tools"
|
|
$llmRoot = Join-Path $appDir "llm-backend\win"
|
|
|
|
function Install-LlamaArchive {
|
|
param([string]$Variant, [string]$AssetName)
|
|
|
|
$dest = Join-Path $llmRoot $Variant
|
|
$server = Join-Path $dest "llama-server.exe"
|
|
if (Test-Path $server) {
|
|
Write-Host " OK llama.cpp $Variant backend already ready."
|
|
return
|
|
}
|
|
|
|
$archive = Join-Path $toolsDir $AssetName
|
|
$extract = Join-Path $toolsDir "llama-$Variant-extract"
|
|
$url = "https://github.com/ggml-org/llama.cpp/releases/download/$Release/$AssetName"
|
|
|
|
New-Item -ItemType Directory -Force -Path $toolsDir, $dest | Out-Null
|
|
Remove-Item $archive, $extract -Recurse -Force -ErrorAction SilentlyContinue
|
|
Write-Host " >> Downloading llama.cpp $Variant backend ($Release)..."
|
|
Invoke-WebRequest -UseBasicParsing -Headers @{ "User-Agent" = "Local-AI-Studio" } -Uri $url -OutFile $archive
|
|
Expand-Archive -Path $archive -DestinationPath $extract -Force
|
|
|
|
Get-ChildItem $extract -Recurse -File | ForEach-Object {
|
|
Copy-Item $_.FullName (Join-Path $dest $_.Name) -Force
|
|
}
|
|
Remove-Item $archive, $extract -Recurse -Force -ErrorAction SilentlyContinue
|
|
|
|
if (-not (Test-Path $server)) {
|
|
throw "llama-server.exe was not found after extracting $AssetName"
|
|
}
|
|
Write-Host " OK llama.cpp $Variant backend installed."
|
|
}
|
|
|
|
Install-LlamaArchive -Variant "vulkan" -AssetName "llama-$Release-bin-win-vulkan-x64.zip"
|
|
Install-LlamaArchive -Variant "cpu" -AssetName "llama-$Release-bin-win-cpu-x64.zip"
|