[MISC] Bump litellm 1.85.1 → 1.90.3 for MiniMax-M3 cost support#2169
Conversation
1.85.1 has no `minimax/MiniMax-M3` entry in litellm's cost map, so native MiniMax-M3 usage bills $0. 1.90.0 added the model with its long-context pricing tier (input/output/cache `_above_512k_tokens`), letting the standard litellm cost path price it correctly. 1.90.3 is the settled patch on that minor. No new dependency floors and no in-scope breaking changes to `completion`/`cost_per_token`/ `register_model`/`token_counter` between 1.85.1 and 1.90.3; the 1.90.0 `register_model` fix (preserves built-in cache pricing on override) is a bonus. Re-locked all consuming services so the running images pick up the new version rather than staying pinned at 1.85.1 transitively. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
Summary by CodeRabbit
WalkthroughThe SDK’s ChangesLiteLLM version alignment
Estimated code review effort: 1 (Trivial) | ~2 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
| Filename | Overview |
|---|---|
| unstract/sdk1/src/unstract/sdk1/patches/litellm_cohere_timeout.py | Updates the strict version guard so the Cohere timeout workaround applies to LiteLLM 1.90.3. |
| unstract/sdk1/pyproject.toml | Updates the SDK dependency pin from LiteLLM 1.85.1 to 1.90.3. |
| unstract/sdk1/uv.lock | Locks LiteLLM 1.90.3 with updated package hashes and metadata. |
Reviews (4): Last reviewed commit: "Merge branch 'main' into misc/bump-litel..." | Re-trigger Greptile
There was a problem hiding this comment.
🧹 Nitpick comments (1)
unstract/sdk1/pyproject.toml (1)
30-30: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winAdd regression coverage for the LiteLLM upgrade.
The SDK directly uses
completion,acompletion,token_counter, andcost_per_token. Please cover MiniMax-M3 pricing below and above 512k tokens, cache pricing for custom overrides, and sync/async response parsing so future LiteLLM changes cannot silently record zero cost.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@unstract/sdk1/pyproject.toml` at line 30, Add regression tests covering the LiteLLM upgrade: validate MiniMax-M3 pricing below and above 512k tokens, cache pricing with custom overrides, and sync/async response parsing through completion and acompletion. Exercise token_counter and cost_per_token so successful responses record nonzero, expected costs and remain protected against future LiteLLM changes.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@unstract/sdk1/pyproject.toml`:
- Line 30: Add regression tests covering the LiteLLM upgrade: validate
MiniMax-M3 pricing below and above 512k tokens, cache pricing with custom
overrides, and sync/async response parsing through completion and acompletion.
Exercise token_counter and cost_per_token so successful responses record
nonzero, expected costs and remain protected against future LiteLLM changes.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 7493fef4-7fe8-4d54-98a9-87b85448ca1a
⛔ Files ignored due to path filters (9)
backend/uv.lockis excluded by!**/*.lockplatform-service/uv.lockis excluded by!**/*.lockunstract/connectors/uv.lockis excluded by!**/*.lockunstract/filesystem/uv.lockis excluded by!**/*.lockunstract/sdk1/uv.lockis excluded by!**/*.lockunstract/tool-registry/uv.lockis excluded by!**/*.lockunstract/workflow-execution/uv.lockis excluded by!**/*.lockuv.lockis excluded by!**/*.lockworkers/uv.lockis excluded by!**/*.lock
📒 Files selected for processing (1)
unstract/sdk1/pyproject.toml
The patch is version-guarded to the exact litellm pin; the 1.85.1 -> 1.90.3 bump left it skipped, so `_patched_async_embedding` was never defined and its test failed to import. The bug is still present in 1.90.3 (cohere `async_embedding`/`embedding` still don't forward `timeout` to `client.post()`) and the copied bodies still match upstream, so only the version constant needed updating. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Unstract test resultsPer-group results
Critical paths
|



What
Bumps
litellmfrom1.85.1to1.90.3inunstract/sdk1and re-locks all consuming services (backend, workers, platform-service, tool-registry, workflow-execution, connectors, filesystem, root).Why
litellm
1.85.1has nominimax/MiniMax-M3entry in its cost map, so native MiniMax-M3 usage silently bills $0 (the prefixed model string isn't found → the bareexceptin the cost path records zero). litellm1.90.0added the model along with its long-context pricing tier —input/output/cache_read_*_cost_per_token_above_512k_tokens— so the standard litellm cost path prices M3 correctly, including the >512k flat-rate switch.1.90.3is the settled patch on that minor.This unblocks the MiniMax adapter PR (#2166) to drop its bespoke local pricing engine and rely on litellm like every other adapter.
Safety review (1.85.1 → 1.90.3)
requires-distis byte-identical across the range (openai>=2.20,pydantic>=2.10,httpx>=0.28,requires-python>=3.10,<3.14) — all already satisfied.completion(),cost_per_token,generic_cost_per_token,model_cost,get_model_info,register_model, ortoken_counter.register_modelchange now preserves built-in cache pricing when registering custom overrides.Verification
(On 1.85.1 the model was absent → $0.)
Note
This is a bump PR raised separately so the team owns the regression check. Full regression coverage relies on CI + the SDK test suite on this branch.
🤖 Generated with Claude Code