|
| 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