sakha / scripts /check_hf_endpoint.py
atharva-again's picture
feat(inference): adapt to new action system
68162aa unverified
import argparse
import json
import sys
try:
import httpx
except ImportError:
import urllib.request
def check_endpoint(url: str, mode: str = "hf") -> bool:
reset_url = f"{url}/reset" if not url.endswith("/reset") else url
try:
try:
resp = httpx.post(reset_url, json={"seed": 42}, timeout=10.0)
except NameError:
req = urllib.request.Request(
reset_url,
data=json.dumps({"seed": 42}).encode(),
headers={"Content-Type": "application/json"},
method="POST",
)
with urllib.request.urlopen(req, timeout=10) as r:
resp = type(
"Resp",
(),
{"status_code": r.status, "json": lambda: json.loads(r.read())},
)()
if resp.status_code != 200:
print(f"FAIL: status {resp.status_code}")
return False
data = resp.json() if hasattr(resp, "json") else {}
if "observation" not in data and "done" not in data:
print(f"FAIL: response missing observation/done keys: {list(data.keys())}")
return False
print(f"OK: {mode} endpoint returned valid reset response")
return True
except Exception as e:
print(f"FAIL: {e}")
return False
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--url", required=True)
parser.add_argument("--mode", default="hf", choices=["local", "hf"])
args = parser.parse_args()
ok = check_endpoint(args.url, args.mode)
sys.exit(0 if ok else 1)
if __name__ == "__main__":
main()