# admin_panel.py import os from fastapi import FastAPI, Query, HTTPException from usage_logger import get_stats from maintenance_control import is_maintenance_mode, set_maintenance_mode from model_info import get_model_version_info app = FastAPI(title="NeuraPrompt Admin API") ADMIN_KEY = os.getenv("ADMIN_API_KEY", "secret123") def verify_key(api_key: str): if api_key != ADMIN_KEY: raise HTTPException(status_code=401, detail="Unauthorized") @app.get("/admin/stats/") def stats(api_key: str = Query(...)): verify_key(api_key) return get_stats() @app.get("/admin/maintenance/") def maintenance_status(api_key: str = Query(...)): verify_key(api_key) return {"maintenance_mode": is_maintenance_mode()} @app.post("/admin/maintenance/") def toggle_maintenance(active: bool, api_key: str = Query(...)): verify_key(api_key) set_maintenance_mode(active) return {"message": "Updated successfully", "maintenance_mode": active} @app.get("/admin/model_info/") def model_info(api_key: str = Query(...)): verify_key(api_key) return get_model_version_info()