diff --git a/client/src/pages/Training.tsx b/client/src/pages/Training.tsx
index 6571118..94e1a58 100644
--- a/client/src/pages/Training.tsx
+++ b/client/src/pages/Training.tsx
@@ -33,10 +33,13 @@ import { Input } from "@/components/ui/input";
import { Checkbox } from "@/components/ui/checkbox";
interface MLStatsResponse {
+ source?: string;
+ ml_backend_status?: string;
logs?: { total: number; last_hour: number };
- detections?: { total: number; blocked: number };
+ detections?: { total: number; blocked: number; critical?: number; unique_ips?: number };
routers?: { active: number };
latest_training?: any;
+ logs_24h?: number;
}
const trainFormSchema = z.object({
@@ -147,21 +150,43 @@ export default function TrainingPage() {
+ {/* ML Backend Status Warning */}
+ {mlStats?.ml_backend_status === "offline" && (
+
+
+
+
+
ML Backend Python offline
+
+ Le statistiche mostrate provengono dal database. Training e detection manuali non sono disponibili fino al riavvio del servizio.
+
+
+
+
+ )}
+
{/* ML Stats */}
{mlStats && (
- Log Totali
+
+ {mlStats.source === "database_fallback" ? "Log Ultime 24h" : "Log Totali"}
+
- {mlStats.logs?.total?.toLocaleString() || 0}
+ {(mlStats.source === "database_fallback"
+ ? mlStats.logs_24h
+ : mlStats.logs?.total
+ )?.toLocaleString() || 0}
-
- Ultima ora: {mlStats.logs?.last_hour?.toLocaleString() || 0}
-
+ {mlStats.source !== "database_fallback" && (
+
+ Ultima ora: {mlStats.logs?.last_hour?.toLocaleString() || 0}
+
+ )}
@@ -172,22 +197,30 @@ export default function TrainingPage() {
- {mlStats.detections?.total || 0}
+ {mlStats.detections?.total?.toLocaleString() || 0}
- Bloccati: {mlStats.detections?.blocked || 0}
+ Bloccati: {mlStats.detections?.blocked?.toLocaleString() || 0}
+ {mlStats.detections?.critical !== undefined && (
+ | Critici: {mlStats.detections.critical.toLocaleString()}
+ )}
- Router Attivi
+
+ {mlStats.source === "database_fallback" ? "IP Unici" : "Router Attivi"}
+
- {mlStats.routers?.active || 0}
+ {(mlStats.source === "database_fallback"
+ ? mlStats.detections?.unique_ips
+ : mlStats.routers?.active
+ )?.toLocaleString() || 0}
@@ -214,9 +247,9 @@ export default function TrainingPage() {