data-quality-env / validate-submission.sh
Hemanth Kunta
Meta hackathon submission
91e7690
#!/usr/bin/env bash
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."