minato1718's picture
Fix: Serve Gradio UI + lightweight runtime deps
e882ca4 verified
from __future__ import annotations
from typing import Any
import requests
class AuditEnvClient:
"""Small HTTP client for OpenEnv-style interactions with the running server."""
def __init__(self, base_url: str = "http://127.0.0.1:8000") -> None:
self.base_url = base_url.rstrip("/")
self.session = requests.Session()
self.session_id: str | None = None
def reset(self, task_id: str = "easy", seed: int = 42) -> dict[str, Any]:
resp = self.session.post(f"{self.base_url}/reset", json={"task_id": task_id, "seed": seed}, timeout=30)
resp.raise_for_status()
payload = resp.json()
self.session_id = payload.get("session_id")
return payload
def step(self, action: dict[str, Any]) -> dict[str, Any]:
payload = dict(action)
if self.session_id and "session_id" not in payload:
payload["session_id"] = self.session_id
resp = self.session.post(f"{self.base_url}/step", json=payload, timeout=30)
resp.raise_for_status()
return resp.json()
def state(self) -> dict[str, Any]:
resp = self.session.get(f"{self.base_url}/state", timeout=30)
resp.raise_for_status()
return resp.json()
def close(self) -> None:
self.session.close()
__all__ = ["AuditEnvClient"]