Initial SQL-only 1C adapter baseline
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
from check_inference_endpoint import check_endpoint
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
DEFAULT_REPORT = ROOT / "reports" / "inference-endpoint-wait.json"
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(description="Wait for an OpenAI-compatible inference endpoint.")
|
||||
parser.add_argument("--base-url", required=True)
|
||||
parser.add_argument("--expected-model")
|
||||
parser.add_argument("--timeout", type=int, default=900)
|
||||
parser.add_argument("--interval", type=int, default=15)
|
||||
parser.add_argument("--request-timeout", type=int, default=10)
|
||||
parser.add_argument("--report", type=Path, default=DEFAULT_REPORT)
|
||||
parser.add_argument("--print", action="store_true")
|
||||
args = parser.parse_args()
|
||||
|
||||
deadline = time.monotonic() + args.timeout
|
||||
attempts = []
|
||||
while True:
|
||||
result = check_endpoint(args.base_url, args.expected_model, args.request_timeout)
|
||||
result["attempt"] = len(attempts) + 1
|
||||
attempts.append(result)
|
||||
if result["status"] == "ok":
|
||||
report = {"status": "ok", "attempts": attempts}
|
||||
break
|
||||
if time.monotonic() >= deadline:
|
||||
report = {"status": "failed", "attempts": attempts}
|
||||
break
|
||||
time.sleep(args.interval)
|
||||
|
||||
args.report.parent.mkdir(parents=True, exist_ok=True)
|
||||
args.report.write_text(json.dumps(report, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
|
||||
if args.print:
|
||||
print(json.dumps(report, ensure_ascii=False, indent=2))
|
||||
else:
|
||||
print(f"Endpoint wait status: {report['status']} ({args.base_url})")
|
||||
return 0 if report["status"] == "ok" else 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user