|  | 
|  | 1 | +# Semantic Router Quickstart | 
|  | 2 | + | 
|  | 3 | +> ⚠️ This is an initial skeleton for the 10-minute quickstart workflow. Content will be expanded in follow-up tasks. | 
|  | 4 | +
 | 
|  | 5 | +## Goal | 
|  | 6 | +Provide a single command path (`make quickstart`) that prepares the router, runs a small evaluation, and surfaces a concise report so that new users can validate the system within 10 minutes. | 
|  | 7 | + | 
|  | 8 | +## Structure | 
|  | 9 | +- `quickstart.sh` – orchestrates dependency checks, model downloads, and service startup. | 
|  | 10 | +- `quick-eval.sh` – executes a minimal benchmark run and captures results. | 
|  | 11 | +- `config-quickstart.yaml` – opinionated defaults for running the router locally. | 
|  | 12 | +- `sample-data/` – trimmed datasets used for fast evaluation. | 
|  | 13 | +- `templates/` – report and config templates shared by quickstart scripts. | 
|  | 14 | + | 
|  | 15 | +## Next Steps | 
|  | 16 | +1. Teach the benchmark loader to honor `QUICKSTART_SAMPLE_ROOT` so local JSONL slices are used offline. | 
|  | 17 | +2. Add a Makefile target (`quickstart`) that chains router bootstrap and quick evaluation. | 
|  | 18 | +3. Create CI smoke tests that run the 10-minute flow with the trimmed datasets. | 
|  | 19 | + | 
|  | 20 | +## Quick Evaluation | 
|  | 21 | +Run the standalone evaluator once the router is healthy. A typical flow looks like: | 
|  | 22 | + | 
|  | 23 | +```bash | 
|  | 24 | +./examples/quickstart/quickstart.sh &   # starts router (Ctrl+C to stop) | 
|  | 25 | +./examples/quickstart/quick-eval.sh --dataset mmlu --samples 5 --mode router | 
|  | 26 | +``` | 
|  | 27 | + | 
|  | 28 | +The evaluation script will place raw artifacts under `examples/quickstart/results/<timestamp>/raw` and derive: | 
|  | 29 | +- `quickstart-summary.csv` – compact metrics table for spreadsheets or dashboards. | 
|  | 30 | +- `quickstart-report.md` – Markdown summary suitable for PRs or runbooks. | 
|  | 31 | + | 
|  | 32 | +Key flags: | 
|  | 33 | +- `--mode router|vllm|both` to toggle which side runs. | 
|  | 34 | +- `--samples` to tune runtime vs. statistical confidence. | 
|  | 35 | +- `--output-dir` for custom destinations (defaults to timestamped folder). | 
|  | 36 | +- All settings also respect `QUICKSTART_*` environment overrides. | 
|  | 37 | + | 
|  | 38 | +## Local Sample Data | 
|  | 39 | +The `sample-data/` directory now includes trimmed JSONL slices for quick runs: | 
|  | 40 | +- `mmlu-sample.jsonl` – 10 multi-category academic questions. | 
|  | 41 | +- `arc-sample.jsonl` – 10 middle-school science questions with ARC-style options. | 
|  | 42 | + | 
|  | 43 | +Each record follows the same schema that the benchmark loader expects (`question_id`, `category`, `question`, `options`, `answer`, optional `cot_content`). Sizes stay under 10 KB per file so the quickstart remains lightweight. | 
|  | 44 | + | 
|  | 45 | +**Integration hook**: upcoming work will extend `bench/vllm_semantic_router_bench` to read from these JSONL files whenever `QUICKSTART_SAMPLE_ROOT` is set (falling back to Hugging Face datasets otherwise). Keep the files committed and deterministic so that the automated 10-minute flow can depend on them once the loader change lands. | 
|  | 46 | + | 
|  | 47 | + | 
0 commit comments