Commit graph

31779 commits

Author SHA1 Message Date
Sameer Kankute
86ae627007 Fix litellm/tests/test_litellm/proxy/_experimental/mcp_server/test_semantic_tool_filter.py tests 2026-02-03 12:08:19 +05:30
Sameer Kankute
7dd0248987 Revert "fix: models loadbalancing billing issue by filter (#18891) (#19220)"
This reverts commit 72e5193451.
2026-02-03 12:04:15 +05:30
krauckbot
17c0a88a60
fix: add missing capability flags to vercel_ai_gateway models (#20276)
67 vercel_ai_gateway models were missing capability flags (supports_vision,
supports_function_calling, supports_tool_choice, supports_response_schema).

These capabilities were inferred from the corresponding direct provider entries
for the same models (e.g., vercel_ai_gateway/anthropic/claude-3.5-sonnet now has
the same capabilities as anthropic/claude-3.5-sonnet).

Models fixed include:
- Claude 3/3.5/3.7 (Anthropic)
- GPT-4/5 variants (OpenAI)
- Gemini 2.0/2.5 (Google)
- Grok 3/4 (xAI)
- Mistral/Mixtral variants
- Qwen models
- DeepSeek models
- And more

This ensures consistent capability reporting across providers for the same
underlying models.

Co-authored-by: krauckbot <krauckbot123@gmail.com>
2026-02-02 22:07:17 -08:00
Cesar Garcia
a904c3f40d
fix(github_copilot): preserve system prompts and auto-inject headers (#20113)
- Remove system-to-assistant message conversion (API now supports system prompts)
- Auto-inject required Copilot headers in chat completions (same as /responses)
- Deprecate disable_copilot_system_to_assistant flag
- Update docs to remove manual extra_headers requirement

Fixes #19873
2026-02-02 22:05:44 -08:00
Cesar Garcia
b33e1e8019
feat(sdk): add proxy_auth for auto OAuth2/JWT token management (#20238)
Adds litellm.proxy_auth to automatically obtain and refresh OAuth2/JWT
tokens when connecting to LiteLLM Proxy or any OAuth2-protected endpoint.

- Add ProxyAuthHandler for token lifecycle (obtain, cache, refresh)
- Add AzureADCredential wrapper for azure-identity credentials
- Add GenericOAuth2Credential for any OAuth2 provider (Okta, Auth0, etc)
- Auto-inject Authorization headers in completion() and embedding()

Closes #19834
2026-02-02 22:04:08 -08:00
yuneng-jiang
9202870e14
Merge pull request #20308 from BerriAI/litellm_ui_community_buttons
[Feature] UI - Navbar: Option to Hide Community Engagement Buttons
2026-02-02 20:10:01 -08:00
yuneng-jiang
2984832843
Merge pull request #20310 from BerriAI/litellm_ui_def_team_settings
[Feature] UI - Default Team Settings: Migrate Default Team Settings to use Reusable Model Select
2026-02-02 20:09:13 -08:00
Ishaan Jaffer
7ae980410b docs fix 2026-02-02 19:50:22 -08:00
Ishaan Jaffer
5aa8725c63 docs Tracing Tools 2026-02-02 19:48:00 -08:00
Sameer Kankute
24a4979aa3
Merge pull request #20320 from BerriAI/litellm_nova-sonic_doc
Add documentation correctly for nova sonic
2026-02-03 09:11:22 +05:30
Ishaan Jaff
5cfcf67d7c
[Feat] /chat/completions - allow using OpenAI style tools for web_search with VertexAI/gemini models (#20280)
* test_gemini_openai_web_search_tool_to_google_search

* feat: Handle OpenAI style web search tools
2026-02-02 19:36:36 -08:00
Sameer Kankute
333419b4d2 Add documentation correctly for nova sonic 2026-02-03 09:03:27 +05:30
Harshit Jain
ec279eb426
fix: proxy failure cases, now log ip and user agent, key hash, name (#20145) 2026-02-02 19:26:50 -08:00
Felipe Rodrigues Gare Carnielli
f32bd8474e adding together ai models to litellm models json 2026-02-03 00:25:58 -03:00
Harshit Jain
04c348e7bb
fixes failure metrics labels (#20152)
Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
2026-02-02 19:20:14 -08:00
Harshit Jain
76a399ba69
feat(guardrails): implement team-based isolation guardrails mgmnt (#19889)
* feat(guardrails): implement team-based isolation guardrails mgmnt

* fix lint errors

* add allow_team_guardrail_config for admin permissions
2026-02-02 19:14:55 -08:00
yuneng-jiang
610ef7b4cf chore: antd modal deprecated props 2026-02-02 19:04:18 -08:00
Ishaan Jaffer
c8f9af1758 fix mypy lint 2026-02-02 19:00:10 -08:00
Ishaan Jaffer
4e8c6d1b10 fix linting 2026-02-02 18:30:56 -08:00
Ishaan Jaff
0ef506a54a
Litellm docs mcp filtering semantic (#20316)
* init: SemanticMCPToolFilter

* init: SemanticToolFilterHook

* test_e2e_semantic_filter

* mock tests: test_semantic_filter_basic_filtering

* Update litellm/proxy/_experimental/mcp_server/semantic_tool_filter.py

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* refactor folder/file organization

* docs fix

* fix filter

* fix: filter_tools

* fix linting tool filrer

* initialize_from_config

* fix: _expand_mcp_tools

* _initialize_semantic_tool_filter

* working: async_post_call_response_headers_hook

* clean up semantic tool filter

* add _initialize_semantic_tool_filter

* build_router_from_mcp_registry

* _get_tools_by_names

* fiix config

* async_post_call_response_headers_hook

* docs mcp filter

* docs fix

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-02 18:29:07 -08:00
Ishaan Jaff
079f49ff6a
[Feat] - MCP Semantic Filtering Support (#20296)
* init: SemanticMCPToolFilter

* init: SemanticToolFilterHook

* test_e2e_semantic_filter

* mock tests: test_semantic_filter_basic_filtering

* Update litellm/proxy/_experimental/mcp_server/semantic_tool_filter.py

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* refactor folder/file organization

* docs fix

* fix filter

* fix: filter_tools

* fix linting tool filrer

* initialize_from_config

* fix: _expand_mcp_tools

* _initialize_semantic_tool_filter

* working: async_post_call_response_headers_hook

* clean up semantic tool filter

* add _initialize_semantic_tool_filter

* build_router_from_mcp_registry

* _get_tools_by_names

* fiix config

* async_post_call_response_headers_hook

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-02 18:28:53 -08:00
yuneng-jiang
cf734cb586 Migrate Default Team settings to use reusable Model Select 2026-02-02 17:57:35 -08:00
Alexsander Hamir
1b9631d260
Add blog post: Achieving Sub-Millisecond Proxy Overhead (#20309) 2026-02-02 17:46:36 -08:00
yuneng-jiang
32b1ff7d11 option to hide community engagement buttons 2026-02-02 17:25:16 -08:00
yuneng-jiang
8eba641190
Merge pull request #20299 from BerriAI/litellm_ui_allowed_routes_dropdown
[Feature] UI - SSO: Add Team Mappings
2026-02-02 17:17:54 -08:00
yuneng-jiang
62993b5f0e
Merge pull request #20305 from BerriAI/litellm_reset_spend_endpoint
[Feature] Key reset_spend endpoint
2026-02-02 16:54:01 -08:00
yuneng-jiang
cd154c4048
Merge pull request #20307 from BerriAI/litellm_ui_disable_global_guardrail
[Fix] UI  - Team Settings: Disable Global Guardrail Persistence
2026-02-02 16:53:08 -08:00
yuneng-jiang
2645d258cb fixing tests 2026-02-02 16:37:40 -08:00
yuneng-jiang
16f0b4942a team setting disable global guardrail fix 2026-02-02 16:34:23 -08:00
yuneng-jiang
edfe2394b9 reset_spend endpoint 2026-02-02 15:52:30 -08:00
shin-bot-litellm
0614ff9fda
docs: add Prisma migration troubleshooting guide (#20300)
* docs: add Prisma migration troubleshooting guide

Add troubleshooting documentation for common Prisma migration errors
encountered when upgrading/downgrading LiteLLM proxy versions.

Covers:
- 'relation does not exist' errors after version rollback
- Blocked migrations from previous failures
- Migration state mismatch after version rollback
- General tips for prisma migrate resolve, db push, and migrate deploy

* docs: simplify prisma migration troubleshooting - focus on delete + restart
2026-02-02 14:39:18 -08:00
shin-bot-litellm
31241416d4
feat: add base /scim/v2 endpoint for SCIM resource discovery (#20301)
Add the following SCIM v2 discovery endpoints per RFC 7643/7644:

- GET /scim/v2 - Base resource discovery (ListResponse of ResourceTypes)
- GET /scim/v2/ResourceTypes - List all supported resource types
- GET /scim/v2/ResourceTypes/{id} - Get a specific resource type (User/Group)
- GET /scim/v2/Schemas - List all supported schemas
- GET /scim/v2/Schemas/{uri} - Get a specific schema by URI

These endpoints are required by identity providers (Okta, Azure AD, etc.)
for SCIM resource discovery. Previously, GET /scim/v2 returned 404.

Also adds SCIMResourceType, SCIMSchema, and SCIMSchemaAttribute Pydantic
models to the SCIM types module.

Fixes #20295
2026-02-02 14:27:00 -08:00
yuneng-jiang
f1227ce5a8
Merge pull request #20111 from BerriAI/litellm_sso_map_teams
[Feature] SSO Config Team Mappings
2026-02-02 14:18:25 -08:00
yuneng-jiang
65c62ffb1b Adding tests 2026-02-02 14:16:50 -08:00
shin-bot-litellm
923b1cfd92
fix: MCP "Session not found" error on VSCode reconnect (#20298)
* fix: strip stale mcp-session-id header to prevent 'Session not found' error loop

When VSCode reconnects to LiteLLM's MCP endpoint after a reload, it sends
a stale mcp-session-id header. The session was already cleaned up, causing
a 404 'Session not found' error. VSCode retries with the same stale ID,
creating an infinite error loop.

Before forwarding requests to the StreamableHTTP session manager, check if
the mcp-session-id header references a valid session. If the session doesn't
exist, strip the header so a new session is created automatically.

Fixes #20292

* refactor: extract stale session handling into _strip_stale_mcp_session_header helper
2026-02-02 14:15:31 -08:00
krauckbot
c4bbd56a56
feat: add Kimi K2.5 model entry for Moonshot provider (#20273)
Add moonshot/kimi-k2.5 model with:
- Input cost: $0.60/M tokens (6e-07)
- Output cost: $3.00/M tokens (3e-06)
- Cache read cost: $0.10/M tokens (1e-07)
- 256K context window
- Vision, function calling, tool choice, web search support

Reference: https://huggingface.co/moonshotai/Kimi-K2.5

Note: K2.5 thinking mode is controlled via API parameters, not a separate model ID.

Co-authored-by: krauckbot <krauckbot123@gmail.com>
2026-02-02 13:28:57 -08:00
yuneng-jiang
899bafb290 adding team mappings UI 2026-02-02 13:12:20 -08:00
yuneng-jiang
1f51f067eb Merge remote-tracking branch 'origin' into litellm_sso_map_teams 2026-02-02 12:40:12 -08:00
yuneng-jiang
f1bca73431 temp commit for branch switching 2026-02-02 12:38:36 -08:00
yuneng-jiang
b30c17c72d
Merge pull request #20210 from BerriAI/litellm_key_block_rev
[Fix] Remove Key Blocking on Login
2026-02-02 12:00:26 -08:00
yuneng-jiang
bb7712366a
Merge pull request #20220 from BerriAI/litellm_ui_next_upgrade
[Infra] UI - Update next to 16.1.6
2026-02-02 12:00:01 -08:00
Ishaan Jaff
73691fb373
Model request tags documentation (#20290)
* Add request tags documentation for spend tracking

- Add new concise doc explaining how to tag model requests
- Include Python SDK and cURL examples
- Show where tags appear in spend logs
- Add common use cases table (AWS accounts, teams, projects)
- Include how to set default tags on API keys
- Add to Spend Tracking section in sidebar

Co-authored-by: ishaan <ishaan@berri.ai>

* Simplify request tags doc for AI Gateway usage

- Focus on config.yaml setup with default_key_generate_params
- Show both request body and header methods for sending tags
- Remove SDK examples, keep concise cURL examples
- Streamline for quick reference

Co-authored-by: ishaan <ishaan@berri.ai>

* Update request tags doc to show model-level config

- Set tags directly on model deployments in litellm_params
- Requests just specify model, tags applied automatically
- Use clear naming: AWS_IAM_PROD, AWS_IAM_DEV

Co-authored-by: ishaan <ishaan@berri.ai>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: ishaan <ishaan@berri.ai>
2026-02-02 11:32:00 -08:00
shin-bot-litellm
0a1b98895b
docs: Add FAQ for setting up and verifying LITELLM_LICENSE (#20284)
* docs: add FAQ for setting up and verifying LITELLM_LICENSE

Added two new FAQ entries to the Enterprise docs page:
- How to set up your Enterprise License (LITELLM_LICENSE) via .env, Docker, or docker-compose
- How to verify the license is active by checking for 'Enterprise Edition' in the Swagger UI

* docs: trim license FAQ to essential steps only
2026-02-02 11:03:45 -08:00
ryan-crabbe
7a6820defa
perf: cache _get_relevant_args_to_use_for_logging() at module level (#20077)
* perf: cache _get_relevant_args_to_use_for_logging() as module-level frozenset

The set of valid LLM API parameter names for logging was being rebuilt
on every request from 8 OpenAI SDK type annotations + set operations.
Since these are static TypedDict annotations that never change at
runtime, compute once at import time and store as a class-level
frozenset.

Line profiler: get_standard_logging_model_parameters() dropped from
774ms to 77ms across 12K calls (90% reduction, ~25µs/req saved).

* test: add tests for cached ModelParamHelper logging args

Verify cached frozenset matches dynamic computation and that
prompt content keys (messages, prompt, input) are excluded from
logged model parameters.
2026-02-02 10:54:49 -08:00
ryan-crabbe
fadc04fbe2
perf: optimize wrapper_async with CallTypes caching and reduced lookups (#20204)
- Cache CallTypes enum values as module-level dict to avoid repeated list
  comprehension and enum construction on every call
- Hoist update_response_metadata getattr lookup to top of function
- Guard verbose print_verbose call behind _is_debugging_on() check
2026-02-02 10:42:12 -08:00
Sameer Kankute
ade35a3f9a
Merge pull request #20266 from BerriAI/litellm_oss_staging_01_31_2026_3
Litellm oss staging 01 31 2026 3
2026-02-02 19:08:14 +05:30
Sameer Kankute
b85f1f2e6d fix: litellm_core_utils/prompt_templates/factory.py:3431 2026-02-02 19:00:12 +05:30
Sameer Kankute
7329fa8e7a fix: litellm_oss_staging_01_31_2026_3 failing tests 2026-02-02 18:50:58 +05:30
Graham Neubig
a513cfdefa fix: Set standard_logging_object for pass-through endpoints (#19887)
Pass-through endpoints (like vLLM classify) were not setting
standard_logging_object because _get_assembled_streaming_response
returns None for non-ModelResponse results.

This caused model_max_budget_limiter.async_log_success_event to raise
ValueError('standard_logging_payload is required').

The fix adds an elif branch in async_success_handler that mirrors the
non-pass-through code path.

Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
2026-02-02 18:25:02 +05:30
Nate Tessman
d7997db912 fix: Include hidden params in chat response to responses api response transformation (#20084)
* Include hidden_params in chat completion to responses transformation

* add tests
2026-02-02 18:24:21 +05:30