Spaces:
Running on Zero
Running on Zero
Update app.py
Browse files
app.py
CHANGED
|
@@ -29,6 +29,21 @@ MODELS = [
|
|
| 29 |
'Aravindan/awesome-gpt-2-coder', 'Qwen/Qwen2.5-Coder-0.5B'
|
| 30 |
]
|
| 31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
# Global class to safely manage the loaded model and tokenizer in memory
|
| 33 |
class ModelManager:
|
| 34 |
def __init__(self):
|
|
@@ -42,10 +57,11 @@ def get_system_stats():
|
|
| 42 |
"""Returns a dictionary of current system metrics with formatted strings."""
|
| 43 |
mem = psutil.virtual_memory()
|
| 44 |
disk = psutil.disk_usage('/')
|
| 45 |
-
return
|
| 46 |
-
f"CPU\t: {psutil.cpu_percent(interval=1)}%"
|
| 47 |
-
f"
|
| 48 |
-
f"Disk\t: {round(disk.used / (1024**3), 2)} / {round(disk.total / (1024**3), 2)} GB"
|
|
|
|
| 49 |
))
|
| 50 |
|
| 51 |
def load_new_model(model_id):
|
|
|
|
| 29 |
'Aravindan/awesome-gpt-2-coder', 'Qwen/Qwen2.5-Coder-0.5B'
|
| 30 |
]
|
| 31 |
|
| 32 |
+
ACTIVE_SESSIONS = {}
|
| 33 |
+
SESSION_TIMEOUT = 5*60
|
| 34 |
+
|
| 35 |
+
def live_count(request: gr.Request):
|
| 36 |
+
current_time = time.time()
|
| 37 |
+
if request:
|
| 38 |
+
ACTIVE_SESSIONS[request.session_hash] = current_time
|
| 39 |
+
|
| 40 |
+
# Prune
|
| 41 |
+
expired = [s for s, t in ACTIVE_SESSIONS.items() if current_time - t > SESSION_TIMEOUT]
|
| 42 |
+
for s in expired:
|
| 43 |
+
ACTIVE_SESSIONS.pop(s, None)
|
| 44 |
+
|
| 45 |
+
return len(ACTIVE_SESSIONS)
|
| 46 |
+
|
| 47 |
# Global class to safely manage the loaded model and tokenizer in memory
|
| 48 |
class ModelManager:
|
| 49 |
def __init__(self):
|
|
|
|
| 57 |
"""Returns a dictionary of current system metrics with formatted strings."""
|
| 58 |
mem = psutil.virtual_memory()
|
| 59 |
disk = psutil.disk_usage('/')
|
| 60 |
+
return (
|
| 61 |
+
f"CPU\t\t: {psutil.cpu_percent(interval=1)}%\n"
|
| 62 |
+
f"Mem\t\t: {round(mem.used / (1024**3), 2)} / {round(mem.total / (1024**3), 2)} GB\n"
|
| 63 |
+
f"Disk\t\t: {round(disk.used / (1024**3), 2)} / {round(disk.total / (1024**3), 2)} GB\n"
|
| 64 |
+
f"Active\t\t: {live_count()}/5min"
|
| 65 |
))
|
| 66 |
|
| 67 |
def load_new_model(model_id):
|