Spaces:
Sleeping
Sleeping
| set -euo pipefail | |
| BASE_URL="${1:-http://localhost:7860}" | |
| PY_BIN="${PY_BIN:-}" | |
| if [[ -z "${PY_BIN}" ]]; then | |
| if command -v python3 >/dev/null 2>&1; then | |
| PY_BIN="python3" | |
| elif command -v python >/dev/null 2>&1; then | |
| PY_BIN="python" | |
| else | |
| echo "No Python interpreter found (python3/python)." >&2 | |
| exit 127 | |
| fi | |
| fi | |
| echo "[1/6] Health check" | |
| curl -fsS "${BASE_URL}/health" | grep -q '"status":"ok"' && echo " OK" | |
| echo "[2/6] Reset check" | |
| RESET_JSON="$(curl -fsS -X POST "${BASE_URL}/reset" \ | |
| -H 'content-type: application/json' \ | |
| -d '{"task_id":1,"seed":42}')" | |
| echo "${RESET_JSON}" | grep -q '"task_id":1' && echo " OK" | |
| echo "[3/6] Step query check" | |
| STEP_JSON="$(curl -fsS -X POST "${BASE_URL}/step" \ | |
| -H 'content-type: application/json' \ | |
| -d '{"action":{"action_type":"query","sql":"SELECT COUNT(*) AS n FROM customers"}}')" | |
| echo "${STEP_JSON}" | grep -q '"reward"' && echo " OK" | |
| echo "[4/6] SQL safety guard check (DROP blocked)" | |
| SAFE_JSON="$(curl -fsS -X POST "${BASE_URL}/step" \ | |
| -H 'content-type: application/json' \ | |
| -d '{"action":{"action_type":"query","sql":"DROP TABLE customers"}}')" | |
| echo "${SAFE_JSON}" | grep -q '"value":-0.2' && echo " OK" | |
| echo "[5/6] OpenEnv schema validation" | |
| "${PY_BIN}" -m pip install -q openenv-core | |
| if ! command -v openenv >/dev/null 2>&1; then | |
| echo "openenv CLI not found on PATH after installation" >&2 | |
| exit 1 | |
| fi | |
| openenv validate | |
| echo " OK" | |
| echo "[6/6] Inference dry run (optional, requires model env vars)" | |
| if [[ -n "${API_BASE_URL:-}" && -n "${MODEL_NAME:-}" && ( -n "${HF_TOKEN:-}" || -n "${OPENAI_API_KEY:-}" ) ]]; then | |
| "${PY_BIN}" inference.py | |
| else | |
| echo " Skipped (set API_BASE_URL, MODEL_NAME, HF_TOKEN/OPENAI_API_KEY to run)" | |
| fi | |
| echo "All checks completed." | |