[Router][CLI][Dashboard][Docs] Support decision-scoped candidate quality - #2714
[Router][CLI][Dashboard][Docs] Support decision-scoped candidate quality#2714duchangyong wants to merge 4 commits into
Conversation
Signed-off-by: 0027020836 <du.changyong2@iwhalecloud.com>
✅ Deploy Preview for vllm-semantic-router ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
👥 vLLM Semantic Team NotificationThe following members have been identified for the changed files in this PR and have been automatically assigned when their GitHub accounts are assignable in this repository: 📁
|
✅ Supply Chain Security Report — All Clear
Scanned at |
| if modelRef.Model == "" { | ||
| continue | ||
| } | ||
| if modelRef.QualityScore != nil && (math.IsNaN(*modelRef.QualityScore) || *modelRef.QualityScore < 0 || *modelRef.QualityScore > 1) { |
There was a problem hiding this comment.
[P2] Validate quality scores in candidate iterations too. This check only walks Decision.ModelRefs, but ModelRef is also used by candidateIterations[].models. Values such as .nan or 2 therefore pass canonical validation on that path even though the same values are rejected in modelRefs. Please reuse the quality-score validation from validateDecisionCandidateIterationModels and add invalid candidate-iteration cases.
There was a problem hiding this comment.
Addressed in dfd10eec and extended with behavior-level coverage in ebcb0c90.
- The shared quality-score validator is now used for canonical decision model refs, runtime model refs, and
candidateIterations[].models[]. - Validation tests cover negative values, values above 1, and non-finite
.nanvalues. - The
routing-strategiesE2E now verifies both model-card fallback and reversed decision-scoped quality overrides through real chat-completion requests; the existing cost policy remains covered. make agent-ci-gate ENV=cpuand the targeted isolated Podman/Kind E2E pass.
…cision-candidate-quality Signed-off-by: 0027020836 <du.changyong2@iwhalecloud.com>
Signed-off-by: 0027020836 <du.changyong2@iwhalecloud.com>
Signed-off-by: 0027020836 <du.changyong2@iwhalecloud.com>
Closes #2711
Purpose
routing.decisions[].modelRefs[].quality_scoreoverride so the same model can carry different quality priors in different decisions.0..1range, and fall back to the model-card quality score only when the decision override is omitted.multi_factorselection and expose the same contract through the CLI schema, dashboard editor, reference configuration, and documentation.Router/CLI/Dashboard/Docs/E2E.Test Plan
make agent-ci-gate ENV=cpu.routing-strategiesE2E profile in an isolated Podman/Kind cluster.VLLM_SR_PORT_OFFSETsetting and verify the simulator sidecar environment plus/healthzendpoint on the offset port.Test Result
make agent-ci-gate ENV=cpu: passed, including lint, reference-config checks, the complete Router test suite, CLI tests, Dashboard checks, E2E build, and documentation validation.routing-strategiesE2E:decision-scoped-multi-factorpassed 1/1 in an isolated Podman/Kind cluster, verifying three real chat-completion routing paths: model-card quality fallback selectedpremium-model, reversed decision-scoped quality overrides selectedeconomy-model, and the cost policy continued to selecteconomy-model(verified_policies=3)./healthzresponse on the offset port.Semantic Router PR Checklist
[Router],[CLI],[Dashboard],[Operator],[Fleet-Sim],[Bindings],[Training],[E2E],[Docs], or[CI/Build]git commit -s