Spaces:
Running
Running
| import time | |
| import pandas as pd | |
| import gradio as gr | |
| from datetime import datetime | |
| class ErohaDashboard: | |
| def __init__(self): | |
| self.logs = [] | |
| self.start_time = time.time() | |
| def log_request(self, model_name, query_type, response_time): | |
| self.logs.append({ | |
| "time": datetime.now().strftime("%H:%M:%S"), | |
| "model": model_name, | |
| "type": query_type, | |
| "response_time": response_time | |
| }) | |
| # храним только последние 20 записей | |
| if len(self.logs) > 20: | |
| self.logs = self.logs[-20:] | |
| def get_metrics(self): | |
| if not self.logs: | |
| return "—", "—", "—" | |
| avg_time = round(sum(l["response_time"] for l in self.logs) / len(self.logs), 2) | |
| last_model = self.logs[-1]["model"] | |
| total_requests = len(self.logs) | |
| return last_model, total_requests, avg_time | |
| def dashboard_ui(self): | |
| df = pd.DataFrame(self.logs) if self.logs else pd.DataFrame([{ | |
| "time": "—", "model": "—", "type": "—", "response_time": "—" | |
| }]) | |
| last_model, total_requests, avg_time = self.get_metrics() | |
| return ( | |
| f"🧠 **Активная модель:** {last_model}\n" | |
| f"📊 **Запросов обработано:** {total_requests}\n" | |
| f"⚡ **Среднее время ответа:** {avg_time} сек.", | |
| df | |
| ) | |