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 )