deps(backend): bump litellm to 1.101.0 - #831
Merged
Merged
Conversation
Skips 1.99.x and 1.100.x: 1.100.0 shipped Python-compat regressions in response validation that 1.101.0 fixes (#39399 upstream). What changes for us: - temperature/top_p sent to gpt-5.5/5.6/gpt-6 are now dropped under drop_params instead of forwarded, so those requests no longer fail with a provider 400 (#38593 upstream). gpt-5.4 keeps honoring them. - Bundled cost map grows 3040 -> 3818 entries (claude-fable-5-1, gpt-6-astra, gemini-3.8-flash, deprecation_date on 49 mainstream models). Only matters for deployments without egress to GitHub; the map is otherwise fetched live at boot. - Both upstream breaking changes (prompt_token_calculator removed, cerebras supported params) touch nothing we use. No transitive dependency changes. pydantic 2.13 warns once about litellm's ReadOnly TypedDict items when it builds the Message schema; the warnings-as-errors policy turned that into a failure in test_litellm_api_key_override, so it gets a registered ignore with a resolution path.
🧹 Dead-code & unused-dependency reportAdvisory — never gates the PR. Whole-repo scan, so some findings may be false positives (dynamic dispatch, framework hooks, runtime-resolved imports). Triage before removing.
Unused Python code — vulture (1)Python dependencies — deptry: ✅ cleanFrontend — knip: ✅ clean |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
litellm==1.98.0→1.101.0inbackend/pyproject.toml;uv.lockregenerated in the devcontainer (uv 0.12.2). The lock diff is the litellm version + hashes only — no transitive dependency changes.backend/tests/warning_filters.py: pydantic 2.13 emits aUserWarning("Item 'summary' on TypedDict class 'ChatCompletionReasoningItem' is using theReadOnlyqualifier…") the first time it builds litellm'sMessageschema in a process. Our warnings-as-errors policy turned that into a failure intest_litellm_api_key_override; the ignore carries a resolution path (bump once upstream dropsReadOnlyfrom the TypedDicts pydantic consumes, or once pydantic stops warning). At runtime it is a single stderr line per process and has no functional effect.Skips 1.99.x and 1.100.x deliberately: 1.100.0 shipped Python-compat regressions in response validation that 1.101.0 fixes (BerriAI/litellm#39399).
Why
Three minor releases behind. The change that matters for us is BerriAI/litellm#38593:
temperature/top_psent to gpt-5.5 / gpt-5.6 / gpt-6 are now dropped underdrop_params=Trueinstead of forwarded. On 1.98.0 they were forwarded, OpenAI answered 400 ("Unsupported value: 'temperature'…"), which matches none of the patterns inunsupported_param(), so users saw "The AI provider rejected the request". Verified withget_optional_params(..., drop_params=True)on both versions; gpt-5.4 keeps honoring the params as before.Also relevant, verified against our integration surface (
acompletion/aembedding/atranscription/aimage_*,model_cost,get_model_info,get_supported_openai_params,token_counter,litellm.exceptions):prompt_token_calculatordeleted, cerebrasget_supported_openai_params) touch nothing we use.deprecation_dateon 49 mainstream models, sonnet-4-6max_output_tokens64k → 128k). Only matters for deployments without egress to GitHub — the map is otherwise fetched live at boot.anyOf/oneOf/allOfin tool schemas are flattened for OpenAI/Azure chat completions (#38839, #38870); previously a 400 for MCP tools with such schemas.token_counterdiffers by +2–3 tokens on OpenAI-tokenized paths, unchanged for Claude.Follow-ups, out of scope here: gate the temperature slider on the new
default_reasoning_effortmap key (gpt-5.6 still advertisestemperatureinget_supported_openai_paramsbut the value is now silently dropped), and usethinking_always_onto hide "none" in the reasoning-effort select.Planning
Separate dependency-maintenance PR from the LiteLLM upgrade review; no tracking issue.
Testing
Inside the devcontainer on the worktree checkout:
test_image_generation,test_enrich_with_litellm_metadata,test_list_available_models,test_deprecation_lookup,test_deprecation_enrichment,test_litellm_api_key_override): 76 passedtests/unit+tests/unittests+tests/validation(-n 4): 4928 passedtests/integration/credentials/: 12 passed, 1 xfailed (same as develop)ruff check/ruff format --checkclean; all pre-commit and pre-push hooks passScreenshots
n/a