DeepImagix commited on
Commit
af44e92
·
verified ·
1 Parent(s): 473adb8

Create admin_panel.py

Browse files
Files changed (1) hide show
  1. admin_panel.py +33 -0
admin_panel.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # admin_panel.py
2
+ from fastapi import FastAPI, Query, HTTPException
3
+ from usage_logger import get_stats
4
+ from maintenance_control import is_maintenance_mode, set_maintenance_mode
5
+ from model_info import get_model_version_info
6
+
7
+ app = FastAPI(title="NeuraPrompt Admin API")
8
+ ADMIN_KEY = os.getenv("ADMIN_API_KEY", "secret123")
9
+
10
+ def verify_key(api_key: str):
11
+ if api_key != ADMIN_KEY:
12
+ raise HTTPException(status_code=401, detail="Unauthorized")
13
+
14
+ @app.get("/admin/stats/")
15
+ def stats(api_key: str = Query(...)):
16
+ verify_key(api_key)
17
+ return get_stats()
18
+
19
+ @app.get("/admin/maintenance/")
20
+ def maintenance_status(api_key: str = Query(...)):
21
+ verify_key(api_key)
22
+ return {"maintenance_mode": is_maintenance_mode()}
23
+
24
+ @app.post("/admin/maintenance/")
25
+ def toggle_maintenance(active: bool, api_key: str = Query(...)):
26
+ verify_key(api_key)
27
+ set_maintenance_mode(active)
28
+ return {"message": "Updated successfully", "maintenance_mode": active}
29
+
30
+ @app.get("/admin/model_info/")
31
+ def model_info(api_key: str = Query(...)):
32
+ verify_key(api_key)
33
+ return get_model_version_info()