Expand router into reproducible local AI platform
This commit is contained in:
1 parent
a84220725a
commit
0e4a9de5ba
34 files changed
+2584
-31
No files matched your search
Executable
+70
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
set -uo pipefail
|
||||
|
||||
PASS=0
|
||||
WARN=0
|
||||
FAIL=0
|
||||
|
||||
pass() { printf 'PASS %s\n' "$*"; PASS=$((PASS + 1)); }
|
||||
warn() { printf 'WARN %s\n' "$*"; WARN=$((WARN + 1)); }
|
||||
fail() { printf 'FAIL %s\n' "$*"; FAIL=$((FAIL + 1)); }
|
||||
|
||||
echo "== Local AI platform verification =="
|
||||
|
||||
ROOT_USE="$(df -P / | awk 'NR==2 {gsub(/%/, "", $5); print $5}')"
|
||||
if [[ -n "$ROOT_USE" && "$ROOT_USE" -lt 85 ]]; then
|
||||
pass "Systempartition bei ${ROOT_USE}%"
|
||||
else
|
||||
fail "Systempartition bei ${ROOT_USE:-unbekannt}% (Ziel: unter 85%)"
|
||||
fi
|
||||
|
||||
if command -v nvidia-smi >/dev/null 2>&1; then
|
||||
GPU="$(nvidia-smi --query-gpu=name,memory.total --format=csv,noheader 2>/dev/null | head -1)"
|
||||
[[ -n "$GPU" ]] && pass "GPU erkannt: $GPU" || fail "nvidia-smi liefert keine GPU"
|
||||
else
|
||||
fail "nvidia-smi fehlt"
|
||||
fi
|
||||
|
||||
for service in mike-ai-llama-ui mike-ai-profile-router; do
|
||||
if systemctl is-active --quiet "$service"; then
|
||||
pass "$service aktiv"
|
||||
else
|
||||
fail "$service nicht aktiv"
|
||||
fi
|
||||
done
|
||||
|
||||
for optional in mike-ai-whisper mike-ai-xtts mike-ai-web-search; do
|
||||
if systemctl is-active --quiet "$optional"; then
|
||||
pass "$optional aktiv"
|
||||
else
|
||||
warn "$optional nicht aktiv oder nicht installiert"
|
||||
fi
|
||||
done
|
||||
|
||||
if curl -fsS --max-time 3 http://127.0.0.1:8080/health >/dev/null; then
|
||||
pass "llama.cpp Health-Check"
|
||||
else
|
||||
fail "llama.cpp auf Port 8080 nicht gesund"
|
||||
fi
|
||||
|
||||
if STATUS="$(curl -fsS --max-time 3 http://127.0.0.1:8081/status 2>/dev/null)"; then
|
||||
PROFILE="$(python3 -c 'import json,sys; print(json.load(sys.stdin).get("current_profile"))' <<<"$STATUS" 2>/dev/null)"
|
||||
pass "Router erreichbar, Profil ${PROFILE:-unbekannt}"
|
||||
else
|
||||
fail "Router auf Port 8081 nicht erreichbar"
|
||||
fi
|
||||
|
||||
if systemctl list-unit-files --no-legend 2>/dev/null | grep -Eq '(vision-rx|whisper-rx|granite-rx).*enabled'; then
|
||||
warn "Aktivierte RX-Altlast gefunden"
|
||||
else
|
||||
pass "Keine aktivierte RX-Altlast"
|
||||
fi
|
||||
|
||||
if systemctl list-unit-files --no-legend 2>/dev/null | grep -E '(benchmark|race).*enabled' >/dev/null; then
|
||||
warn "Automatisch aktivierter Benchmark-/Race-Dienst gefunden"
|
||||
else
|
||||
pass "Keine automatisch aktivierten Benchmarks"
|
||||
fi
|
||||
|
||||
printf '\nErgebnis: %d PASS, %d WARN, %d FAIL\n' "$PASS" "$WARN" "$FAIL"
|
||||
[[ "$FAIL" -eq 0 ]]
|
||||
Reference in new issue
Block a user