feat(ui): run the Lite preset's medium and complex tiers at their documented efforts - #38482
Conversation
|
@greptileai can you reply here with a score and why that score? |
|
bugbot run |
|
Score: 4/5 The feature is well-scoped and convincingly covered. The explicit I’m holding back 5/5 because |
Greptile SummaryThe Lite auto-router preset now assigns documented reasoning efforts to its medium and complex tiers.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| ui/litellm-dashboard/src/autorouter_presets.json | Updates the Lite preset description and adds per-tier reasoning-effort configuration for its medium and complex models. |
| ui/litellm-dashboard/src/lib/autorouter_presets.test.ts | Verifies the Lite preset’s effort declarations and their conversion into tier model parameters. |
Reviews (5): Last reviewed commit: "feat(ui): run the Lite preset's medium a..." | Re-trigger Greptile
| from fastapi import FastAPI, Request | ||
| import uuid, json | ||
| app = FastAPI() |
There was a problem hiding this comment.
Out-of-boundary FastAPI handler
This file constructs custom FastAPI request handlers outside litellm/proxy/, bypassing the repository's established dependency and handler boundary.
Rule Used: What: Do not allow fastapi imports on files outsid... (source)
| @app.post("/v1/chat/completions") | ||
| async def cc(request: Request): | ||
| body = await request.json() | ||
| open("/tmp/claude-501/-Users-tin/c58f6262-3b18-4f0e-a1e1-010bca404add/scratchpad/stub_last.json","w").write(json.dumps(body, indent=1)) |
|
|
||
| class TestDeclaredEffortList: | ||
| def test_a_declared_list_answers_where_no_flag_could(self): | ||
| """The Kimi K3 shape: low, high and max, with medium excluded. No flag can drop medium, |
There was a problem hiding this comment.
These tests add extensive narrative comments and docstrings beyond the repository's allowed comment categories, duplicating implementation history that can drift from the self-describing assertions.
Context Used: CLAUDE.md (source)
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
aba9a37 to
49655da
Compare
261d76c to
98a7b4a
Compare
|
@greptileai rig/stub.py is gone; it was a stale parent commit, now rebased. This PR is lite-only. Score? |
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 98a7b4a. Configure here.
49655da to
481f256
Compare
98a7b4a to
7399548
Compare
|
Pushed: trimmed overlong lines and condensed the test prose per the repo comment rule. All within 120 now. |
|
bugbot run |
|
@greptileai line lengths and test comments addressed. Score? |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 7399548. Configure here.
481f256 to
5e02f0a
Compare
7399548 to
5e02f0a
Compare
|
bugbot run |
|
@greptileai can you reply here with a score and why that score? |
|
Confidence score: 4/5. No blocking issues found. The change is appropriately scoped to the Lite preset, sets I’m not giving 5/5 because the |
5e02f0a to
0dc08e6
Compare
198cd92 to
a4fef59
Compare
|
bugbot run |
|
@greptileai can you reply here with a score and why that score? |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit a4fef59. Configure here.
|
Confidence score: 4/5 The change is appropriately scoped and correctly uses the existing I’m not giving 5/5 yet because the |
|
Confidence score: 4/5. The change is focused and correctly uses the existing I’m not giving 5/5 because the |
0dc08e6 to
e377a04
Compare
a4fef59 to
d8a5e8b
Compare
…umented efforts Lite ran Muse Spark 1.2 and Kimi K3 at whatever effort each provider happens to default to. Set the ones their own docs name: Muse Spark 1.2 at xhigh, and Kimi K3 at max, which is Kimi's own default and what the model map now declares for that model. Stacked on the map change, since without it kimi-k3 resolves to unknown levels and the tier editor's capability-blind fallback list does not offer max.
d8a5e8b to
542649b
Compare
|
@greptileai can you reply here with score & why |
|
bugbot run |
|
Confidence score: 5/5 I found no blocking issues. The change is narrowly scoped to the Lite preset and uses the existing |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 542649b. Configure here.
|
@greptileai rereview |
TLDR
Problem this solves:
How it solves it:
User Flow
Before: an admin picking the Lite template gets two mid-tier models on whatever thinking their provider defaults to
muse-spark-1.2and Complex withkimi-k3maxby hand and the dropdown does not offer itAfter: both tiers arrive on the effort their model documents
muse-spark-1.2readsxhigh, and the one besidekimi-k3readsmaxreasoning_effort: maxeven though the caller sent nonereasoning_effort: xhighRelevant issues
maxfor kimi-k3 at allLinear ticket
Pre-Submission checklist
Screenshots / Proof of Fix
Shared setup. A local proxy holding the four model groups this preset names, each pointed at a local stub upstream that echoes the body it received. The auto-router is built by reading
autorouter_presets.jsonstraight off the branch and handing itscomplexity_router_configto the proxy verbatim, so what is under test is the shipped preset data rather than a hand-copied version of it.No request below sends
reasoning_effort. Every value the stub reports came from the preset. Tiers are reached by prompt complexity, withLITELLM ESCALATEbumping the scored tier one step up.Substitution declared: no provider on this account sells Kimi K3, Muse Spark or Claude Opus 5, so the upstream is a local stub. The stub only ever receives what the gateway decided to send, which is the whole question here.
Before (49655da, the parent commit)
fireworks_ai/deepseek-v4-flash, the stub receives no effortmeta/muse-spark-1.2, the stub receives no effortfireworks_ai/kimi-k3, the stub receives no effortanthropic/claude-opus-5, the stub receives no effortAfter (98a7b4a)
Type
🆕 New Feature
Caveats (if any)
Medium
Low
supports_xhigh_reasoning_effort: true, confirmed on the live rigFinal Attestation
Note
Low Risk
Bundled preset JSON and dashboard tests only; behavior change is default routing params for admins who choose the Lite template, with no auth or core gateway logic edits in this diff.
Overview
The Lite auto-router preset now declares per-tier
reasoning_effortfor its medium and complex models instead of leaving them on provider defaults.autorouter_presets.jsonaddstier_model_configsfor MEDIUM (muse-spark-1.2→xhigh) and COMPLEX (kimi-k3→max), and the preset description is updated to match. SIMPLE and REASONING tiers are unchanged.Tests lock in those
tier_model_configsvalues and assertbuildPresetPrefillmaps them intotier_model_paramsso the Add Model / Auto Router UI shows the correct effort dropdowns and saved routers forward the params on routed requests.Reviewed by Cursor Bugbot for commit 542649b. Bugbot is set up for automated code reviews on this repo. Configure here.