Download api_server.py from usman-ai-dev/ai-code-maintainability-engine: direct link, hf CLI and curl.
- Browser
- Download file 2.14 kB
-
https://huggingface.co/spaces/usman-ai-dev/ai-code-maintainability-engine/resolve/main/api_server.py
- Command line
-
hf download hf://spaces/usman-ai-dev/ai-code-maintainability-engine/api_server.py
-
curl -L -o api_server.py https://huggingface.co/spaces/usman-ai-dev/ai-code-maintainability-engine/resolve/main/api_server.py
2.14 kB
| import math | |
| import os | |
| import psutil | |
| from fastapi import FastAPI | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from fastapi.staticfiles import StaticFiles | |
| from pydantic import BaseModel | |
| from scoring_api import evaluate | |
| from phase2.optimization import IterativeOptimizer | |
| app = FastAPI(title="AI Code Maintainability Scoring Engine API") | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| class ScoreRequest(BaseModel): | |
| code: str | |
| class RefactorRequest(BaseModel): | |
| code: str | |
| target_score: float = 20.0 | |
| max_iterations: int = 3 | |
| def health(): | |
| proc = psutil.Process() | |
| mem_info = proc.memory_info() | |
| sys_mem = psutil.virtual_memory() | |
| return { | |
| "status": "ok", | |
| "service": "AI Code Maintainability Scoring Engine", | |
| "memory": { | |
| "process_rss_mb": round(mem_info.rss / (1024 * 1024), 2), | |
| "process_vms_mb": round(mem_info.vms / (1024 * 1024), 2), | |
| "process_memory_percent": round(proc.memory_percent(), 2), | |
| "system_total_gb": round(sys_mem.total / (1024**3), 2), | |
| "system_available_gb": round(sys_mem.available / (1024**3), 2), | |
| "system_used_percent": sys_mem.percent, | |
| }, | |
| } | |
| def score(request: ScoreRequest): | |
| return evaluate(request.code) | |
| def refactor(request: RefactorRequest): | |
| optimizer = IterativeOptimizer( | |
| target_score=request.target_score, | |
| max_iterations=request.max_iterations, | |
| ) | |
| result = optimizer.optimize(request.code) | |
| if not math.isfinite(result["final_score"]): | |
| result["final_score"] = None | |
| return result | |
| # Mount frontend dist static files if present | |
| frontend_dist = os.path.join(os.path.dirname(__file__), "frontend", "dist") | |
| if os.path.exists(frontend_dist): | |
| app.mount("/", StaticFiles(directory=frontend_dist, html=True), name="frontend") | |
| if __name__ == "__main__": | |
| import uvicorn | |
| port = int(os.environ.get("PORT", 7860)) | |
| uvicorn.run("api_server:app", host="0.0.0.0", port=port) | |