Repository navigation
feat(runner): configure Jev decision judges - #916
Conversation
Signed-off-by: nachiketb <nachiketb@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (4)
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review. WalkthroughCapability routes can now use a decision judge with configured candidates, evidence, and a cutoff. Deployment configuration adds decision clients and targets, validates their route use, and connects them to the router. ChangesDecision Judge Routing
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: ⚪ Minimal · up to The investigated configuration cases do not disrupt decision routing. No merge-blocking issue remains after normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 15.38% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 13 functions across 3 files. (1 skipped: 1 unsupported.)
I’m a rabbit with a config to read, Comment |
Closes SWITCH-1688.
The capability classifier can call decision models, but deployments cannot configure them. This wires Jev into the shared runner so server requests can use a decision judge, then call the selected LLM.
How
decision_clientsfor System One endpoints, environment-based credentials and deadlines, plus separatedecision_targets.routes.<name>.decision. Resolve candidate labels to LLM target IDs; pass evidence and optional instructions unchanged.ClientRouter. Keep existing LLM settings, caller authentication, target prompts and capable fallback behavior./v1/decisionuse the same wiring; existing classifier stats and usage logging apply to normal requests.Validation
cargo test -p switchyard-runner --locked config::).--test server classifier_and--test server decision_).fail_open = false, decision-only routing, custom instructions, target prompts, credential separation and redaction. Also checked classifier latency, outcomes and token usage in stats and the routing log.cargo fmt --all --checkand workspace Clippy pass. No tests added or modified.Live validation
Passed 5 live HTTP checks on
33d215449using Jev (jev-latest) and the LiteLLM gateway configured insecrets/secrets.json:0.0and1.0exercised both routing branches.0.4selected 20B and completed with text, usage and[DONE]./v1/decisionselected each tier with exactly one upstream call and no final LLM call.All returned HTTP 200 with
fail_open = false. Counters confirmed five Jev calls and three LLM calls. Server stats and the routing log recorded Jev latency, successful outcomes and token usage. Credentials stayed out of logs. These are integration checks, not routing-quality calibration.Based directly on latest
main; independent of #915.Summary by CodeRabbit