feat: initialize XAS test console with native execution

This commit is contained in:
AdamWen95
2026-10-14 09:38:58 +08:00
commit 438844b01a
83 changed files with 9334 additions and 0 deletions
+115
View File
@@ -0,0 +1,115 @@
"""In-container bootstrap. Input contains optional credentials; never persist it."""
from http.server import BaseHTTPRequestHandler, HTTPServer
import json
import os
from pathlib import Path
import subprocess
import sys
import threading
import time
import urllib.error
import urllib.request
class NoRedirect(urllib.request.HTTPRedirectHandler):
def redirect_request(self, request, fp, code, msg, headers, newurl):
return None
class BudgetRelay(HTTPServer):
def __init__(self, address, upstream, key):
super().__init__(address, RelayHandler)
self.upstream, self.key = upstream, key
self.gets, self.posts = 0, 0
self.records = []
class RelayHandler(BaseHTTPRequestHandler):
def log_message(self, *args):
pass
def do_GET(self):
if self.path != "/v1/models" or self.server.gets >= 1:
self.send_error(403, "Request outside run budget")
return
self.server.gets += 1
self.forward(None, 10)
def do_POST(self):
if self.path != "/v1/chat/completions" or self.server.posts >= 3:
self.send_error(403, "Request outside run budget")
return
try:
length = int(self.headers.get("Content-Length", "0"))
if not 0 < length <= 8192:
raise ValueError()
data = self.rfile.read(length)
body = json.loads(data)
if body.get("model") != "deepseek-v4.1-flash" or body.get("max_tokens") != 512 or body.get("stream"):
raise ValueError()
except (ValueError, json.JSONDecodeError):
self.send_error(400, "Unexpected smoke request")
return
self.server.posts += 1 # Count before I/O: timeouts never replenish the budget.
self.forward(data, 600)
def forward(self, data, timeout):
started = time.monotonic()
record = {"path": self.path, "status": None}
try:
req = urllib.request.Request(self.server.upstream + self.path, data=data, headers={
"Content-Type": "application/json", "Authorization": "Bearer " + self.server.key})
opener = urllib.request.build_opener(urllib.request.ProxyHandler({}), NoRedirect())
with opener.open(req, timeout=timeout) as response:
status, payload = response.status, response.read(2 * 1024 * 1024 + 1)
if len(payload) > 2 * 1024 * 1024:
raise ValueError("Response exceeded limit")
record["status"] = status
decoded = json.loads(payload)
if self.path.endswith("completions"):
record["response"] = decoded
self.send_response(status)
self.send_header("Content-Type", "application/json")
self.send_header("Content-Length", str(len(payload)))
self.end_headers()
self.wfile.write(payload)
except urllib.error.HTTPError as exc:
record["status"] = exc.code
self.send_error(exc.code, "Upstream request failed")
except (OSError, ValueError) as exc:
record["error"] = type(exc).__name__
try:
self.send_error(502, "Upstream outcome uncertain; no retry")
except OSError:
pass
finally:
record["seconds"] = round(time.monotonic() - started, 3)
self.server.records.append(record)
print(json.dumps({"event": "model_request", **{k: v for k, v in record.items() if k != "response"}}), flush=True)
def main():
payload = json.loads(sys.stdin.buffer.readline(16384))
relay = None
if payload.get("profile") == "legacy_smoke":
relay = BudgetRelay(("127.0.0.1", 18100), payload.pop("upstream"), payload.pop("key"))
threading.Thread(target=relay.serve_forever, daemon=True).start()
command = (["python3", "-u"] if payload["language"] == "python" else ["/bin/bash"]) + [payload["script"]] + payload["args"]
print("[控制台] 测试进程已启动,输出将持续显示。", flush=True)
status = subprocess.call(command, stdin=subprocess.DEVNULL)
if relay:
report = {"synthetic": False, "scope": "接口冒烟检查,非模型质量评测", "get_attempts": relay.gets,
"completion_attempts": relay.posts, "records": relay.records, "script_exit_code": status}
valid = len(relay.records) == 4 and all(r.get("status") == 200 for r in relay.records)
report["requests_completed"] = valid
report["message"] = "请求均返回成功;请结合实际回答与 finish_reason 判断内容" if valid else "存在失败或未完成请求;未自动重试"
Path(os.environ["XAS_RUN_DIR"], "smoke-response.json").write_text(json.dumps(report, ensure_ascii=False, indent=2), encoding="utf-8")
if not valid:
status = status or 1
relay.shutdown()
print(f"[控制台] 测试进程结束,退出码 {status}。", flush=True)
return status
if __name__ == "__main__":
sys.exit(main())