Yermek68 commited on
Commit
106b57a
·
verified ·
1 Parent(s): f057e3f

Create core/dashboard.py

Browse files
Files changed (1) hide show
  1. core/dashboard.py +40 -0
core/dashboard.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import time
2
+ import pandas as pd
3
+ import gradio as gr
4
+ from datetime import datetime
5
+
6
+ class ErohaDashboard:
7
+ def __init__(self):
8
+ self.logs = []
9
+ self.start_time = time.time()
10
+
11
+ def log_request(self, model_name, query_type, response_time):
12
+ self.logs.append({
13
+ "time": datetime.now().strftime("%H:%M:%S"),
14
+ "model": model_name,
15
+ "type": query_type,
16
+ "response_time": response_time
17
+ })
18
+ # храним только последние 20 записей
19
+ if len(self.logs) > 20:
20
+ self.logs = self.logs[-20:]
21
+
22
+ def get_metrics(self):
23
+ if not self.logs:
24
+ return "—", "—", "—"
25
+ avg_time = round(sum(l["response_time"] for l in self.logs) / len(self.logs), 2)
26
+ last_model = self.logs[-1]["model"]
27
+ total_requests = len(self.logs)
28
+ return last_model, total_requests, avg_time
29
+
30
+ def dashboard_ui(self):
31
+ df = pd.DataFrame(self.logs) if self.logs else pd.DataFrame([{
32
+ "time": "—", "model": "—", "type": "—", "response_time": "—"
33
+ }])
34
+ last_model, total_requests, avg_time = self.get_metrics()
35
+ return (
36
+ f"🧠 **Активная модель:** {last_model}\n"
37
+ f"📊 **Запросов обработано:** {total_requests}\n"
38
+ f"⚡ **Среднее время ответа:** {avg_time} сек.",
39
+ df
40
+ )