File size: 2,112 Bytes
69b17de
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
$action = $args[0]
$scriptDir = $PSScriptRoot
$venvPath = Join-Path $scriptDir "venv_gpu\Scripts\Activate.ps1"

# Anchoring execution to the backend directory
Push-Location $scriptDir

# Check if venv_gpu exists
if (!(Test-Path $venvPath)) {
    Write-Host "Critical Error: GPU Virtual Environment Not Found at $venvPath" -ForegroundColor Red
    Write-Host "Please ensure you are running this from the backend folder or project root." -ForegroundColor Yellow
    Pop-Location
    exit
}

if ($action -eq "bench") {
    Write-Host "Running GPU Speed Test..." -ForegroundColor Cyan
    & $venvPath
    $start = Get-Date
    python -c "from services.scam_detection import process_text; res = process_text('URGENT: Your HDFC kyc is pending. Click bit.ly/fake-link to update.')"
    $end = Get-Date
    $diff = $end - $start
    Write-Host "GPU Text Scan Time: $($diff.TotalSeconds) seconds" -ForegroundColor Green
}
elseif ($action -eq "train") {
    Write-Host "Starting Full-Scale Text Model Retraining (GPU Accelerated)..." -ForegroundColor Yellow
    & $venvPath
    python train_scam_classifier.py
}
elseif ($action -eq "url-train") {
    Write-Host "Starting Full-Scale URL Model Training (GPU Accelerated)..." -ForegroundColor Magenta
    & $venvPath
    python train_url_classifier.py
}
elseif ($action -eq "global-test") {
    Write-Host "Running Global System Verification (GPU Active)..." -ForegroundColor Green
    & $venvPath
    $text = "URGENT: Your SBI netbanking account is suspended. Click http://sbi-verify-kyc.xyz to reactivate."
    Write-Host "`nTest Case: Phishing Content + Phishing URL" -ForegroundColor Yellow
    python -c "from services.scam_detection import process_text, process_url; t_res = process_text('$text'); u_res = process_url('http://sbi-verify-kyc.xyz'); print(f'Text Risk: {t_res.risk_score}%'); print(f'URL Risk: {u_res.risk_score}%')"
}
else {
    Write-Host "Starting ScamDetect Backend (GPU Mode)..." -ForegroundColor Cyan
    & $venvPath
    # Using uvicorn directly for better reload and host management
    uvicorn main:app --host 0.0.0.0 --port 8000
}

Pop-Location