diff --git a/deploy/k8s/docker/serve.py b/deploy/k8s/docker/serve.py index f1a1afe..89afb5e 100644 --- a/deploy/k8s/docker/serve.py +++ b/deploy/k8s/docker/serve.py @@ -120,8 +120,57 @@ class Handler(BaseHTTPRequestHandler): self._json(200, {"models": [BACKEND.model], "backend": BACKEND.backend_name}) return + if self.path in ("/", "/index.html"): + self._send_index() + return self._json(404, {"error": "not found", "path": self.path}) + def _send_index(self) -> None: + """根路径欢迎页:列出可用接口,便于浏览器直接访问。""" + try: + h = BACKEND.health() + health_s = json.dumps(h, ensure_ascii=False) + except Exception as exc: # noqa: BLE001 + health_s = json.dumps({"status": "dry-run", + "reason": str(exc)[:80]}, + ensure_ascii=False) + html = f""" + + + + iAOP Inference Service + + + +

iAOP Inference Service

+

iAOP-Core 推理服务({BACKEND.backend_name} 后端 · {BACKEND.model})。 + 当前为 dry-run 占位模式(未接入真实推理硬件/模型服务)。

+

可用接口

+ +

当前健康状态

+
{health_s}
+ +""" + body = html.encode("utf-8") + self.send_response(200) + self.send_header("Content-Type", "text/html; charset=utf-8") + self.send_header("Content-Length", str(len(body))) + self.end_headers() + self.wfile.write(body) + def do_POST(self): # noqa: N802 - http.server 命名 if self.path == "/v1/chat/completions": body = self._read_body()