Files
vector-search-csharp/VectorSearchApp/Models/download-model.ps1

46 lines
1.9 KiB
PowerShell

#!/usr/bin/env pwsh
# Download script for all-MiniLM-L6-v2 ONNX model
# Run this script to download the embedding model locally
$ModelUrl = "https://huggingface.co/ sentence-transformers/all-MiniLM-L6-v2/resolve/main/onnx/model.onnx"
$OutputPath = "Models/all-MiniLM-L6-v2.onnx"
$BaseUrl = "https://huggingface.co"
# The all-MiniLM-L6-v2 ONNX model is available from HuggingFace
# We'll use the transformers.js format which is pre-quantized and optimized
Write-Host "Downloading all-MiniLM-L6-v2 ONNX model..." -ForegroundColor Cyan
Write-Host "Model URL: $ModelUrl" -ForegroundColor Gray
# Alternative: Download from Xenova/transformers.js releases
$AltUrl = "https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.2/dist/quantized/all-MiniLM-L6-v2_quantized.onnx"
try {
Write-Host "Attempting download from jsDelivr CDN..." -ForegroundColor Yellow
$ProgressPreference = 'SilentlyContinue'
# Download using curl or Invoke-WebRequest
if (Get-Command curl -ErrorAction SilentlyContinue) {
curl -L -o $OutputPath $AltUrl
} else {
Invoke-WebRequest -Uri $AltUrl -OutFile $OutputPath -UseBasicParsing
}
if (Test-Path $OutputPath) {
$size = (Get-Item $OutputPath).Length / 1MB
Write-Host "Successfully downloaded model to $OutputPath" -ForegroundColor Green
Write-Host "File size: $([math]::Round($size, 2)) MB" -ForegroundColor Gray
} else {
throw "Download failed - file not created"
}
}
catch {
Write-Host "Error downloading model: $_" -ForegroundColor Red
Write-Host "" -ForegroundColor White
Write-Host "Manual download instructions:" -ForegroundColor White
Write-Host "1. Visit: https://huggingface.co/Xenova/all-MiniLM-L6-v2" -ForegroundColor Gray
Write-Host "2. Download 'model_quantized.onnx'" -ForegroundColor Gray
Write-Host "3. Save it to: VectorSearchApp/Models/all-MiniLM-L6-v2.onnx" -ForegroundColor Gray
exit 1
}