File size: 1,459 Bytes
106b57a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
        )