Commit graph

31779 commits

Author SHA1 Message Date
houdataali
7ffc1a718a
a2a agent Header-Based Context Propagation (#19504)
* a2a agent Header-Based Context Propagation

* docs: add guide for A2A context header forwarding
2026-01-23 19:56:04 -08:00
Misha
de538456e3
feat: support role_mappings from environment variables (#19498)
* feat: support role_mappings from environment variables

* fix linter
2026-01-23 19:54:23 -08:00
Harshit Jain
f4ba5b9209
docs: add litellm-enterprise requirement for managed files (#19689) 2026-01-23 19:51:39 -08:00
Ishaan Jaff
a870722f65
[Feat] UI + Backend - Allow adding policies on Keys/Teams + Viewing on Info panels (#19688)
* ui for policy mgmt

* test_add_guardrails_from_policy_engine_accepts_dynamic_policies_and_pops_from_data
2026-01-23 19:03:44 -08:00
yuneng-jiang
4ed5aa5de0
Merge pull request #19687 from BerriAI/litellm_ui_refresh_mcp
[Fix] UI - Redirect to ui/login on expired JWT
2026-01-23 18:09:44 -08:00
yuneng-jiang
a34664d8b0 redirect to login on expired jwt 2026-01-23 18:03:10 -08:00
Ishaan Jaffer
46ef001150 UI: new build 2026-01-23 17:40:54 -08:00
yuneng-jiang
26a6b86ea9
Merge pull request #19265 from naaa760/fix/guar-patt-edi
fix: ensure guardrail patterns persist on edit and mode toggle
2026-01-23 17:36:09 -08:00
ryan-crabbe
d67d12fc54
perf: Add LRU caching to get_model_info for faster cost lookups (#19606)
- Add @lru_cache decorator to get_model_info() and _cached_get_model_info_helper()
- Update _invalidate_model_cost_lowercase_map() to clear these caches when model_cost changes
- Update test to call cache invalidation after modifying litellm.model_cost

Reduces get_model_cost_information from 46% to <1% of request handling time.
2026-01-23 17:26:45 -08:00
yuneng-jiang
b5dfb57073
Merge pull request #19686 from BerriAI/litellm_key_team_create_routing_setting_ui
[Feature] UI - Create Team and Key Router Settings
2026-01-23 17:26:13 -08:00
ryan-crabbe
6e930c9724
perf: skip pattern_router.route() for non-wildcard models (#19664)
Check "*" in model before calling pattern_router.route() to avoid
unnecessary pattern matching for non-wildcard model configurations.
2026-01-23 17:21:41 -08:00
ryan-crabbe
54f9ad370f
perf: Optimize use_custom_pricing_for_model with set intersection (#19677)
* perf: Optimize use_custom_pricing_for_model with set intersection

Cache CustomPricingLiteLLMParams.model_fields.keys() as a module-level
frozenset and use set intersection to reduce loop iterations from 882k
to 90k (only iterating over keys that exist in both sets).

Performance improvement: 84% faster (6.3x speedup)
- Before: 1.17s total, 65µs per call
- After: 0.19s total, 10µs per call

* Use .get() for defensive dictionary access
2026-01-23 17:18:16 -08:00
yuneng-jiang
de9802578b Fixing tests 2026-01-23 17:15:50 -08:00
ryan-crabbe
0133d50a45
perf: Optimize strip_trailing_slash with O(1) index check (#19679)
* perf: Optimize strip_trailing_slash with O(1) index check

Replace rstrip("/") with direct index check for O(1) performance
instead of O(n) string scanning.

Results:
- strip_trailing_slash: 311ms → 13ms (96% faster)
- get_standard_logging_object_payload: 6.11s → 5.80s (5% faster)

* Handle multiple trailing slashes in strip_trailing_slash

Use rstrip for correctness when URL ends with "//" or more,
otherwise use O(1) index check for single trailing slash.
2026-01-23 17:12:08 -08:00
yuneng-jiang
f9bdc20be2 fixing tests 2026-01-23 17:07:51 -08:00
yuneng-jiang
ee1fd1c6c2 fixing build 2026-01-23 17:04:52 -08:00
yuneng-jiang
804567d681 Merge remote-tracking branch 'origin' into litellm_key_team_create_routing_setting_ui 2026-01-23 16:56:30 -08:00
yuneng-jiang
9850dbe934 Adding router settings to create team and key 2026-01-23 16:56:19 -08:00
Alexsander Hamir
5c61586e65
Add GCS mock mode for testing without API calls (#19683) 2026-01-23 16:25:32 -08:00
Alexsander Hamir
56883add3c
Add Langfuse mock mode for testing without API calls (#19676) 2026-01-23 15:33:40 -08:00
mubashir1osmani
8e060593bf
feat(vercel_ai_gateway): add embeddings support
feat(vercel_ai_gateway): add embeddings support
2026-01-23 18:28:25 -05:00
yuneng-jiang
22a268c544
Merge pull request #19673 from BerriAI/litellm_ui_router_fallbacks_02
[Feature] UI - Fallbacks: New Add Fallbacks Modal
2026-01-23 14:33:30 -08:00
yuneng-jiang
3ba9b13390 adding tests 2026-01-23 14:28:47 -08:00
yuneng-jiang
7e6fc6af2c New add fallbacks modal 2026-01-23 14:21:32 -08:00
Ishaan Jaffer
5b341ee842 fix linting 2026-01-23 13:46:02 -08:00
milan-berri
37b7dff194
add spend-queue-troubleshooting docs (#19659)
* add spend-queue-troubleshooting docs

* adjust spend-queue-troubleshooting docs
2026-01-23 13:44:41 -08:00
mubashir1osmani
c41963c949
fix: add openinference span kinds to arize phoenix
fix: add openinference span kinds to arize phoenix
2026-01-23 16:32:49 -05:00
Ishaan Jaffer
c945677ea8 BUMP pyproject 2026-01-23 13:28:06 -08:00
mubashir1osmani
0993dca4e2 fix lint 2026-01-23 16:27:32 -05:00
yogeshwaran10
e966240562 fix(ui): prevent clearing content filter patterns when editing guardrail
The generic provider params update logic loop was unintentionaly overwriting `patterns` and `blocked_words` with empty values because these fields are managed by a separate component ContentFilterManager and not available in the main form values.

Changes:
- Excluded `patterns` and `blocked_words` from the generic provider params update loop in guardrail_info.tsx
- Ensured these fields are only added to the update payload when explicitly handled by the ContentFilterManager logic (detecting changes via `useRef`).
- Added a regression test in guardrail_info.test.tsx to verify that patterns are preserved when only the guardrail name is updated.

Fixes #19639
2026-01-24 02:56:22 +05:30
mubashir1osmani
33a216d02a remove imports from functions 2026-01-23 16:18:21 -05:00
Ishaan Jaffer
b4dd0e4d19 fix schema.prisma 2026-01-23 13:17:52 -08:00
Ishaan Jaffer
c3b278e488 add migrtion 2026-01-23 13:17:06 -08:00
Ishaan Jaffer
9e02a38002 add schema.prisma 2026-01-23 13:16:58 -08:00
mubashir1osmani
744d15e068 remove imports from functions 2026-01-23 16:16:33 -05:00
Ishaan Jaffer
6621c7b2ef docs fix 2026-01-23 12:54:30 -08:00
Ishaan Jaff
fc19085230
[Feat] Guardrail Policy Management - Allow using UI to manage guardrail policies (#19668)
* init UI

* init schema.prisma

* fix: policy_crud_router

* UI fixes

* update gitignore

* working v0 for policy mgmt

* fix: endpoints to resolve guardrails

* fix code QA checks

* ui build issues

* schema fixes

* fix checks
2026-01-23 12:44:22 -08:00
yuneng-jiang
28bc83e394
Merge pull request #19662 from BerriAI/litellm_yj_ci_01
[Infra] CI/CD - Linting
2026-01-23 12:27:24 -08:00
yuneng-jiang
fbe5ae9e17 fixing flaky tests 2026-01-23 12:20:27 -08:00
yuneng-jiang
8b5b343841 attempt fix flaky tests 2026-01-23 12:10:08 -08:00
yuneng-jiang
5cacf56507 security scan 2026-01-23 11:55:56 -08:00
yuneng-jiang
647a6898a9 skipping non root tests entirely 2026-01-23 11:51:38 -08:00
yuneng-jiang
89bf7e50c4 skipping flaky tests 2026-01-23 11:43:39 -08:00
yuneng-jiang
a28911845f fixing config 2026-01-23 11:11:11 -08:00
Ishaan Jaffer
19141e180e docs fix 2026-01-23 11:06:02 -08:00
yuneng-jiang
a0b2832300 fixing security checks 2026-01-23 11:03:18 -08:00
yuneng-jiang
06b78208dd resetting poetry and requirements 2026-01-23 10:41:35 -08:00
yuneng-jiang
2d4c0f4e65 ci cd fixes - linting security 2026-01-23 10:37:16 -08:00
Chesars
1ac32992de fix(oci): serialize imageUrl as object for OCI GenAI API
OCI GenAI expects imageUrl to be an object with a 'url' property,
not a plain string. This was causing 400 errors when sending images.

Fixes #19589
2026-01-23 15:25:40 -03:00
Chesars
188c2315ad feat(vercel_ai_gateway): add embeddings support
Add support for /embeddings endpoint via Vercel AI Gateway.

Closes #19658

Changes:
- Add VercelAIGatewayEmbeddingConfig in litellm/llms/vercel_ai_gateway/embedding/
- Register provider in utils.py and main.py
- Add unit tests for embedding transformation
- Update documentation with embeddings examples

Usage:
```python
from litellm import embedding

response = embedding(
    model="vercel_ai_gateway/openai/text-embedding-3-small",
    input="Hello world",
    api_key="your-api-key"
)
```
2026-01-23 15:11:37 -03:00