File size: 3,346 Bytes
a39d8ef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env bash
# nl2sql-bench/scripts/run_local.sh
# ─────────────────────────────────────────────────────────────────────────────
# Quick local development server (no Docker needed).
# Prerequisites: Python 3.10+, pip or uv
#
# Usage:
#   chmod +x scripts/run_local.sh
#   ./scripts/run_local.sh
# ─────────────────────────────────────────────────────────────────────────────
set -euo pipefail

REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$REPO_ROOT"

echo "═══════════════════════════════════════════════"
echo "  NL2SQL-Bench β€” Local Dev Server"
echo "═══════════════════════════════════════════════"

# ── Check Python ────────────────────────────────────────────────────────────
if ! command -v python3 &>/dev/null; then
  echo "ERROR: python3 not found. Install Python 3.10+." && exit 1
fi
PY_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
echo "Python: $PY_VERSION"

# ── Virtual environment ──────────────────────────────────────────────────────
if [ ! -d ".venv" ]; then
  echo "Creating virtualenv..."
  python3 -m venv .venv
fi
source .venv/bin/activate

# ── Install deps ─────────────────────────────────────────────────────────────
echo "Installing dependencies..."
pip install -q --upgrade pip
pip install -q openenv-core fastapi "uvicorn[standard]" openai pydantic pytest pytest-asyncio

# ── Load .env if present ─────────────────────────────────────────────────────
if [ -f ".env" ]; then
  echo "Loading .env..."
  set -a
  source .env
  set +a
fi

# ── Export PYTHONPATH ─────────────────────────────────────────────────────────
export PYTHONPATH="$REPO_ROOT:$REPO_ROOT/server"

echo ""
echo "Starting server at http://localhost:8000"
echo "  /reset  β†’ POST   (start episode)"
echo "  /step   β†’ POST   (submit SQL)"
echo "  /state  β†’ GET    (episode metadata)"
echo "  /health β†’ GET    (liveness probe)"
echo "  /docs   β†’ GET    (Swagger UI)"
echo ""
echo "Press Ctrl+C to stop."
echo "───────────────────────────────────────────────"

cd "$REPO_ROOT/server"
uvicorn app:app \
  --host 0.0.0.0 \
  --port 8000 \
  --reload \
  --reload-dir "$REPO_ROOT" \
  --log-level info