#!/usr/bin/env python3 """作业 1 的模拟服务器状态接口。operationId 对应 Langfuse 里的 getServerStatus。""" import json from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer from urllib.parse import parse_qs, urlparse class Handler(BaseHTTPRequestHandler): def do_GET(self): parsed = urlparse(self.path) if parsed.path == "/health": self._send({"status": "ok"}) return if parsed.path == "/server/status": name = (parse_qs(parsed.query).get("server_name") or ["unknown"])[0] self._send( { "server": name, "cpu": "45%", "memory": "62%", "gpu_util": "78%", "gpu_memory": "18.2/24 GB", } ) return self.send_response(404) self.end_headers() def _send(self, payload): body = json.dumps(payload, ensure_ascii=False).encode() self.send_response(200) self.send_header("Content-Type", "application/json") self.send_header("Content-Length", str(len(body))) self.end_headers() self.wfile.write(body) def log_message(self, fmt, *args): print("%s - %s" % (self.address_string(), fmt % args), flush=True) if __name__ == "__main__": ThreadingHTTPServer(("0.0.0.0", 8777), Handler).serve_forever()