fix(router): wildcard order fallback to higher-order deployments - #25772
Conversation
Use wildcard-aware deployment lookup when building order-based fallback levels so requests like openai/gpt-4.1-mini can advance from order=1 to order=2, and add a regression test for wildcard routing. Made-with: Cursor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Greptile SummaryThis PR fixes order-based fallback routing for wildcard model groups (e.g. Confidence Score: 5/5Safe to merge — targeted one-line fix with a clear regression test and no backward-incompatible changes. The change is minimal and surgical: replacing No files require special attention.
|
| Filename | Overview |
|---|---|
| litellm/router.py | Replaces _get_all_deployments with get_model_list (wildcard-aware) in the order-based fallback path; existing behavior for exact model groups is preserved since get_model_list calls _get_all_deployments first. |
| tests/test_litellm/test_router_order_fallback.py | Adds a new asyncio test using mock_response (no real network calls) that registers two openai/* deployments at order=1 and order=2, triggers a failure on order=1, and asserts the response comes from the order=2 deployment. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[acompletion: model=openai/gpt-4.1-mini] --> B[Route to order=1 deployment]
B --> C{Deployment fails?}
C -- No --> D[Return response]
C -- Yes --> E[Order-based fallback handler]
E --> F["get_model_list(openai/gpt-4.1-mini)"]
F --> G["_get_all_deployments → empty (no exact match)"]
G --> H["pattern_router.route → finds openai/* deployments"]
H --> I["_order_set = {1, 2}, order_values = [1, 2]"]
I --> J["Build fallback: {model: openai/gpt-4.1-mini, _target_order: 2}"]
J --> K["run_async_fallback with _target_order=2"]
K --> L["Route to order=2 deployment"]
L --> M[Return response]
style G fill:#ffcccc
style H fill:#ccffcc
Reviews (4): Last reviewed commit: "Merge branch 'litellm_internal_staging' ..." | Re-trigger Greptile
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Made-with: Cursor
fb39683
into
litellm_internal_staging
…fallback fix(router): wildcard order fallback to higher-order deployments
Summary
openai/*) can advance fromorder=1to higher order levelsorder=2Fixes LIT-2344
Test plan
poetry run pytest tests/test_litellm/test_router_order_fallback.py::test_router_order_fallback_with_wildcard_model_group -vpoetry run pytest tests/test_litellm/test_router_order_fallback.py -v