Commit graph

31415 commits

Author SHA1 Message Date
Ishaan Jaff
c9658f877e
[Docs] Claude Agents SDK x LiteLLM Guide (#20036)
* docs claude agent SDK

* docs fix

* docs

* docs
2026-01-29 18:04:54 -08:00
Ishaan Jaff
476f0b29d2
[Feat] LiteLLM x Claude Agent SDK Integration (#20035)
* fix: bedrock invoke - does not support prompt-caching-scope

* fix: UNSUPPORTED_BEDROCK_INVOKE_BETA_PATTERNS

* init requirements.txt

* init README for claude Agent SDK

* fix: using converse models with UNSUPPORTED_BEDROCK_CONVERSE_BETA_PATTERNS

* fix main.py

* init: proxy_e2e_anthropic_messages_tests
2026-01-29 17:48:38 -08:00
Ishaan Jaff
f7e1a22947
[Feat] New Model - amazon.nova-2-pro-preview-20251202-v1:0 (#20033)
* init: amazon.nova-2-pro-preview-20251202-v1:0

* init: nova amazon.nova-2-pro

* add s3_vectors
2026-01-29 16:55:55 -08:00
yuneng-jiang
0b6bacb6d3 adding tests 2026-01-29 16:34:21 -08:00
yuneng-jiang
81e8a127b8 Allow config embedding models 2026-01-29 16:31:30 -08:00
Alexsander Hamir
12f58247ef
Add event-driven coordination for global spend query to prevent cache stampede (#20030) 2026-01-29 16:07:20 -08:00
yuneng-jiang
f782a2a8a1
Merge pull request #20024 from BerriAI/litellm_new_badge_dot
[Feature] UI - New Badge Dot Render
2026-01-29 14:25:17 -08:00
yuneng-jiang
5cd482cd05 Adding tests 2026-01-29 14:17:59 -08:00
yuneng-jiang
ca8056f74f Merge remote-tracking branch 'origin' into litellm_new_badge_dot 2026-01-29 13:37:37 -08:00
yuneng-jiang
6b77060bbd Adjusting new badges 2026-01-29 13:36:38 -08:00
yuneng-jiang
f3515b71eb
Merge pull request #20017 from BerriAI/litellm_ui_spendlogs_setting_hook
[Feature] UI - Spend Logs: Show Current Store and Retention Status
2026-01-29 13:25:31 -08:00
yuneng-jiang
3c02abb47f
Merge pull request #20015 from BerriAI/litellm_logs_error_code
[Fix] error_code in Spend Logs metadata
2026-01-29 13:24:54 -08:00
yuneng-jiang
96cb2efedb Adding proxy_server 2026-01-29 13:05:38 -08:00
yuneng-jiang
e080f92b7f Adding tests 2026-01-29 13:05:07 -08:00
yuneng-jiang
d081e01ed0 Show spend logs settings + allow delete of rentention period 2026-01-29 12:59:42 -08:00
yuneng-jiang
158e1e32d1 error_code in spend logs error metadata 2026-01-29 11:43:18 -08:00
yuneng-jiang
42081a57db
Merge pull request #19886 from BerriAI/litellm_bulk_edit_keys
[Feature] Bulk Update Keys Endpoint
2026-01-29 09:07:58 -08:00
yuneng-jiang
bc23a97e14
Merge pull request #19971 from BerriAI/litellm_v2_model_info_sorting_fix
[Fix] Sorting for /v2/model/info
2026-01-29 09:07:28 -08:00
Varun Sripad
8b6bcfc9ec fix(gemini): support file retrieval in GoogleAIStudioFilesHandler 2026-01-29 10:03:07 -06:00
Takumi Matsuzawa
fa54c241e0 Fix max_input_tokens for gpt-5.2-codex 2026-01-29 15:39:17 +00:00
Sameer Kankute
7c4577b2ad
Merge pull request #19988 from BerriAI/litellm_gemini_robotics_llm_provider2
Add custom_llm_provider as gemini translation
2026-01-29 18:12:03 +05:30
Sameer Kankute
bd4918c9c8
Merge pull request #19906 from BerriAI/litellm_oss_staging_01_28_2026
oss staging 01/28/2026
2026-01-29 17:47:35 +05:30
Sameer Kankute
df072979e5
Merge branch 'main' into litellm_oss_staging_01_28_2026 2026-01-29 17:39:42 +05:30
Sameer Kankute
a2fd56f007
Merge pull request #19997 from BerriAI/litellm_fix_robotic_model_map_entry
Fix: litellm_fix_robotic_model_map_entry
2026-01-29 17:27:40 +05:30
Sameer Kankute
ef15861fde Fix: litellm_fix_robotic_model_map_entry 2026-01-29 17:26:50 +05:30
Sameer Kankute
4aa786b04e
Merge pull request #19994 from BerriAI/litellm_add_model_map_test
Intentional bad model map
2026-01-29 16:34:26 +05:30
Sameer Kankute
45867ba934 Correct model map path 2026-01-29 16:33:50 +05:30
Sameer Kankute
0beaec0757 Intentional bad model map 2026-01-29 16:29:36 +05:30
Sameer Kankute
f55ed3f945 Intentional bad model map 2026-01-29 16:26:46 +05:30
Sameer Kankute
350349188b
Merge pull request #19993 from BerriAI/litellm_add_model_map_test
Intentional bad model map
2026-01-29 16:26:23 +05:30
Sameer Kankute
b0dec49e9a Remove validate job from lint 2026-01-29 16:26:00 +05:30
Sameer Kankute
39dea34dfa Add Validate model_prices_and_context_window.json job 2026-01-29 16:25:10 +05:30
Sameer Kankute
5dea545c65 Intentional bad model map 2026-01-29 16:17:33 +05:30
Sameer Kankute
6997ee8e34
Merge pull request #19992 from BerriAI/litellm_add_model_map_test
Add test to check if model map is corretly formatted
2026-01-29 16:16:59 +05:30
Sameer Kankute
fa80dc610d Add test to check if model map is corretly formatted 2026-01-29 16:14:32 +05:30
Sameer Kankute
8808e4d7ac Add /openai_passthrough route for openai passthrough requests: 2026-01-29 16:07:45 +05:30
Sameer Kankute
5270aa58bb Add custom_llm_provider as gemini translation 2026-01-29 15:49:30 +05:30
Sameer Kankute
fce26352b6 Add cost tacking and usage info in call_type=aretrieve_batch 2026-01-29 15:27:41 +05:30
Sameer Kankute
4b385e5b32 Add litellm metadata correctly for file create 2026-01-29 15:20:31 +05:30
Sameer Kankute
98ae6dc831 Fix lint issues 2026-01-29 12:47:10 +05:30
Sameer Kankute
d3b2afbbe4 Fix: mypy errors 2026-01-29 12:42:30 +05:30
Sameer Kankute
fa2b065238 Add tests for user level permissions on file and batch access 2026-01-29 12:29:10 +05:30
Sameer Kankute
8966852c86 Fix: Encoding cancel batch response 2026-01-29 12:18:43 +05:30
Aaron Yim
d4031c8ba6
Add OpenRouter Kimi K2.5 (#19872)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:34:48 -08:00
Christopher Chase
87bdfb0253
fix(hosted_vllm): route through base_llm_http_handler to support ssl_verify (#19893)
* fix(hosted_vllm): route through base_llm_http_handler to support ssl_verify

The hosted_vllm provider was falling through to the OpenAI catch-all path
which doesn't pass ssl_verify to the HTTP client. This adds an explicit
elif branch that routes hosted_vllm through base_llm_http_handler.completion()
which properly passes ssl_verify to the httpx client.

- Add explicit hosted_vllm branch in main.py completion()
- Add ssl_verify tests for sync and async completion
- Update existing audio_url test to mock httpx instead of OpenAI client

* feat(hosted_vllm): add embedding support with ssl_verify

- Add HostedVLLMEmbeddingConfig for embedding transformations
- Register hosted_vllm embedding config in utils.py
- Add lazy import for embedding transformation module
- Add unit test for ssl_verify parameter handling
2026-01-28 22:33:07 -08:00
Bernardo Donadio
ba17f51812
fix(proxy): prevent provider-prefixed model leaks (#19943)
* fix(proxy): prevent provider-prefixed model leaks

Proxy clients should not see LiteLLM internal provider prefixes (e.g. hosted_vllm/...) in the OpenAI-compatible response model field.

This patch sanitizes the client-facing model name for both:
- Non-streaming responses returned from base_process_llm_request
- Streaming SSE chunks emitted by async_data_generator

Adds regression tests covering vLLM-style hosted_vllm routing for both streaming and non-streaming paths.

* chore(lint): suppress PLR0915 in proxy handler

Ruff started flagging ProxyBaseLLMRequestProcessing.base_process_llm_request() for too many statements after the hotpatch changes.

Add an explicit '# noqa: PLR0915' on the function definition to avoid a large refactor in a hotpatch.

* refactor(proxy): make model restamp explicit

Replace silent try/except/pass and type ignores with explicit model restamping.

- Logs an error when the downstream response model differs from the client-requested model
- Overwrites the OpenAI `model` field to the client-requested value to avoid leaking internal provider-prefixed identifiers
- Applies the same behavior to streaming chunks, logging the mismatch only once per stream

* chore(lint): drop PLR0915 suppression

The model restamping bugfix made `base_process_llm_request()` slightly exceed Ruff's
PLR0915 (too-many-statements) threshold, requiring a `# noqa` suppression.

Collapse consecutive `hidden_params` extractions into tuple unpacking so the
function falls back under the lint limit and remove the suppression.

No functional change intended; this keeps the proxy model-field bugfix intact
while aligning with project linting rules.

* chore(proxy): log model mismatches as warnings

These model-restamping logs are intentionally verbose: a mismatch is a useful signal
that an internal provider/deployment identifier may be leaking into the public
OpenAI response `model` field.

- Downgrade model mismatch logs from error -> warning
- Keep error logs only for cases where the proxy cannot read/override the model

* fix(proxy): preserve client model for streaming aliasing

Pre-call processing can rewrite request_data['model'] via model alias maps.\n\nOur streaming SSE generator was using the rewritten value when restamping chunk.model, which caused the public 'model' field to differ between streaming and non-streaming responses for alias-based requests.\n\nStash the original client model in request_data as _litellm_client_requested_model after the model has been routed, and prefer it when overriding the outgoing chunk model. Add a regression test for the alias-mapping case.

* chore(lint): satisfy PLR0915 in streaming generator

Ruff started flagging async_data_generator() for too many statements after adding model restamping logic.\n\nExtract the client-model selection + chunk restamping into small helpers to keep behavior unchanged while meeting the project's PLR0915 threshold.
2026-01-28 22:26:38 -08:00
michelligabriele
dcf5f07e5e
fix(proxy): add datadog_llm_observability to /health/services allowed list (#19952)
The /health/services endpoint rejected datadog_llm_observability as an
unknown service, even though it was registered in the core callback
registry and __init__.py. Added it to both the Literal type hint and
the hardcoded validation list in the health endpoint.
2026-01-28 22:16:27 -08:00
Sameer Kankute
654edbd15c Fix Only allowed to call routes: ['llm_api_routes']. Tried to call route: /batches/bGl0ZWxsbV9wcm/cancel 2026-01-29 11:42:49 +05:30
Sameer Kankute
70684ca86f Fix File access permissions for .retreive and .delete 2026-01-29 11:19:24 +05:30
Cesar Garcia
2a48d12507
fix(docker): add libsndfile to main Dockerfile for ARM64 audio processing (#19776)
Fixes #16920 for users of the stable release images.

The previous fix (PR #18092) added libsndfile to docker/Dockerfile.alpine,
but stable releases are built from the main Dockerfile (Wolfi-based),
not the Alpine variant.
2026-01-28 21:33:41 -08:00