DGXAI/driftcall
0
1---2title: DriftCall3emoji: ๐4colorFrom: indigo5colorTo: pink6sdk: docker7pinned: true8license: apache-2.09short_description: OpenEnv env + site ยท canonical /reset ยท one Space10tags:11 - openenv12 - rl13 - voice14 - indic15 - schema-drift16 - grpo17 - gemma-3n18---19 20# DriftCall โ Unified Space21 22One HF Space serving the OpenEnv-compliant DriftCall env **and** the23project site, both under the same hostname. OpenEnv routes are at the24canonical bare paths (no `/api` prefix), so the registry and the gym25client see this Space exactly as it sees the dedicated env Space.26 27## URL surface28 29| Path | Method | What it does |30|------------------|----------|--------------|31| `/` | `GET` | static project site (Vite-built React + pretext) |32| `/assets/*` | `GET` | site bundle (CSS, JS, fonts) |33| `/healthz` | `GET` | OpenEnv health probe (`text/plain "ok"`) |34| `/reset` | `POST` | OpenEnv reset (bearer auth + X-Session-Id) |35| `/step` | `POST` | OpenEnv step |36| `/state` | `GET` | OpenEnv read-only state |37| `/close` | `POST` | OpenEnv close session |38| `/openenv.yaml` | `GET` | the manifest (served from disk) |39| `/demo` | `GET` | 302 โ dedicated Gradio demo Space |40 41The OpenEnv routes do not collide with the static frontend because42they are HTTP verb-specific (`POST /reset`, `POST /step`, `POST /close`,43plus `GET /healthz` and `GET /state`) โ Vite-emitted assets live under44`/assets/*` and never overlap.45 46## Why both, not separate?47 48The dedicated env Space (`DGXAI/driftcall-env`) and project site49(`DGXAI/driftcall-site`) still exist as canonical, isolated artefacts.50This Space is an **additive** convenience for hackathon judging:51land at one URL and you see the project, can hit the reward function52endpoint, and get redirected to the demo. The Gradio demo stays53separate because it's GPU-heavy and benefits from its own scaling.54 55## What's bundled56 57Self-contained โ the build dir for this Space contains everything it58needs to run, with no references to anything outside it:59 60```61unified_space/build/62โโโ app.py โ canonical OpenEnv FastAPI (verbatim copy)63โโโ unified_app.py โ extends app.py + adds static mount + /demo redirect64โโโ openenv.yaml โ OpenEnv v1.0 manifest65โโโ requirements.txt โ runtime deps (no training stack)66โโโ Dockerfile โ multi-stage CPU image, Kokoro + faster-whisper baked67โโโ cells/ โ DriftCallEnv + 5 reward components + drift + audio68โโโ data/ โ briefs, drift patterns, API schemas69โโโ site/ โ Vite-built React dist (frontend)70```71 72Build + push with `bash deploy/unified_space/build.sh --push` from the73repo root.74 75## OpenEnv compliance76 77- Manifest: served at `/openenv.yaml`78- Endpoints: bare-path canonical (`/reset`, `/step`, `/state`, `/close`, `/healthz`)79- Auth: bearer (`DRIFTCALL_ENV_TOKEN`) + `X-Session-Id` header on mutating calls80- Action / Observation refs: `cells.step_04_models:DriftCallAction` /81 `cells.step_04_models:DriftCallObservation`82- Reward: 5 components (R1..R5) with weights, calibration via Brier +83 uncertain floor โ see `cells/step_08_rewards.py` and the openenv.yaml84 reward block.85 