# Steal My Model Challenge Instructions ## API 1. `POST /register` - output: `{"player_token": "...", "query_limit": 8000}` 2. `POST /predict` - header: `Authorization: Bearer <player_token>` - input: `{"x": [float, ...]}` length `DIM` - output: `{"label": 0|1, "remaining": int}` 3. `POST /submit` - header: `Authorization: Bearer <player_token>` - input: `{"n_guess": [float, ...], "beta_guess": float}` - success rule: `max(abs(n_guess - n), abs(beta_guess - beta)) < CHECK_TOL` Classifier rule: - `label = 1 if dot(n, x) + beta >= 0 else 0` - `n` is a hidden unit vector. - Small random label flip noise may exist. ## Usage Get a token first: ```bash python get_token.py --run --url http://chal.thjcc.org:31443 ``` Quick API example: ```bash python get_token.py --run --url http://chal.thjcc.org:31443 python example.py python example.py --run --url http://chal.thjcc.org:31443 --token <player_token> --dim 16 --x "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" ``` If you used many queries or interrupted a run, register a new token before retrying