Commit Graph

2546 Commits

Author SHA1 Message Date
Sameer Kankute
df072979e5
Merge branch 'main' into litellm_oss_staging_01_28_2026 2026-01-29 17:39:42 +05:30
Ishaan Jaff
9c5fed4f52
[Feat] LiteLLM Vector Stores - Add permission management for users, teams (#19972)
* fix: create_vector_store_in_db

* add team/user to LiteLLM_ManagedVectorStore

* add _check_vector_store_access

* add new fields

* test_check_vector_store_access

* add vector_store/list endpoints

* fix code QA checks
2026-01-28 18:55:40 -08:00
Alexsander Hamir
69bd4426e8
[Release Day] - Fixed CI/CD issues & changed processes (#19902) 2026-01-28 17:57:24 -08:00
Ishaan Jaff
d12ce3cd5d
[Fix] VertexAI Pass through - fix regression that caused vertex ai passthroughs to stop working for router models (#19967)
* fix(vertex_ai): replace custom model names with actual Vertex AI model names in passthrough URLs (#19948)

When the passthrough URL already contains project and location, the code
was skipping the deployment lookup and forwarding the URL as-is to Vertex AI.
For custom model names like gcp/google/gemini-2.5-flash, Vertex AI returned
404 because it only knows the actual model name (gemini-2.5-flash).

The fix makes the deployment lookup always run, so the custom model name
gets replaced with the actual Vertex AI model name before forwarding.

* add _resolve_vertex_model_from_router

* fix: get_llm_provider

* Potential fix for code scanning alert no. 4020: Clear-text logging of sensitive information

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

---------

Co-authored-by: michelligabriele <gabriele.michelli@icloud.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-01-28 16:54:01 -08:00
yuneng-jiang
cccda30a9e
Merge pull request #19960 from BerriAI/litellm_ui_spend_logs_error_message
[Feature] Add error_message Search in Spend Logs Endpoint
2026-01-28 16:04:29 -08:00
yuneng-jiang
cb8ead6013 Add error_message search in spend logs endpoint 2026-01-28 15:06:31 -08:00
Ishaan Jaff
3ef475b70e
[Fix] A2a Gateway - Allow supporting old A2a card formats (#19949)
* fix: LiteLLMA2ACardResolver

* fix: LiteLLMA2ACardResolver

* feat: .well-known/agent.json

* test_card_resolver_fallback_from_new_to_old_path
2026-01-28 15:02:08 -08:00
michelligabriele
ea3853e977
fix(vertex_ai): support model names with slashes in passthrough URLs (#19944)
The regex in get_vertex_model_id_from_url() was using [^/:]+
which stopped at the first slash, truncating model names like
'gcp/google/gemini-2.5-flash' to just 'gcp'. This caused
access_groups checks to fail for custom model names.

Changed the pattern to [^:]+ to allow slashes in model names,
only stopping at the colon before the action (e.g., :generateContent).
2026-01-28 09:33:53 -08:00
boarder7395
8e4f06583a
Fix team cli auth flow (#19666)
* Cleanup code for user cli auth, and make sure not to prompt user for team multiple times while polling

* Adding tests

* Cleanup normalize teams some more
2026-01-28 08:52:52 -08:00
Sameer Kankute
169c9dae79
Merge pull request #19914 from BerriAI/litellm_responses_api_bridge_usage
Fix: output_tokens_details.reasoning_tokens None
2026-01-28 18:35:30 +05:30
Sameer Kankute
9fe8b12f44
Merge pull request #19924 from BerriAI/litellm_minimax_reasoning_caching_1
Add Prompt caching and reasoning support for MiniMax, GLM, Xiaomi
2026-01-28 18:04:13 +05:30
Sameer Kankute
c5c1fbc5a2 Fix test_calculate_usage_completion_tokens_details_always_populated and logging object test 2026-01-28 18:00:42 +05:30
Sameer Kankute
0fadcbb21f
Merge pull request #19915 from BerriAI/litellm_x_ai_responses_web
Add xai websearch params support fo Responses API
2026-01-28 17:34:28 +05:30
Sameer Kankute
7386621d04
Merge pull request #19839 from BerriAI/litellm_oss_staging_01_27_2026
Litellm oss staging 01 27 2026
2026-01-28 17:33:27 +05:30
Sameer Kankute
f6ead49afe Add Prompt caching and reasoning support for MiniMax, GLM, Xiaomi 2026-01-28 17:25:26 +05:30
Sameer Kankute
bd15ebba84 fix: Pydantic will fail to parse it because cached_tokens is required but not provided 2026-01-28 11:51:26 +05:30
Sameer Kankute
6fb2a0d11f Fix: output_tokens_details.reasoning_tokens None 2026-01-28 11:35:18 +05:30
yuneng-jiang
28ca991296 Allow dynamic setting of store_prompts_in_spend_logs 2026-01-27 20:52:07 -08:00
Sameer Kankute
d76fb5932a Add xai websearch params support 2026-01-28 09:54:43 +05:30
mubashir1osmani
9a245031bd
feat(hosted_vllm): support thinking parameter in anthropic_messages() and .completion()
feat(hosted_vllm): support `thinking` parameter in `anthropic_messages()` and `.completion()`
2026-01-27 22:13:53 -05:00
Sameer Kankute
42a0d576f3
Merge pull request #19910 from BerriAI/main
merge 01 27
2026-01-28 08:30:47 +05:30
Cesar Garcia
64c102e3c2
fix(gemini): subtract implicit cached tokens from text_tokens for correct cost calculation (#19775)
When Gemini uses implicit caching, it returns cachedContentTokenCount but
NOT cacheTokensDetails. Previously, text_tokens was not adjusted in this case,
causing costs to be calculated as if all tokens were non-cached.

This fix subtracts cachedContentTokenCount from text_tokens when no
cacheTokensDetails is present (implicit caching), ensuring correct cost
calculation with the reduced cache_read pricing.
2026-01-27 18:18:47 -08:00
Cesar Garcia
807ba011eb
fix(main): use local tiktoken cache in lazy loading (#19774)
The lazy loading implementation for encoding in __getattr__ was calling
tiktoken.get_encoding() directly without first setting TIKTOKEN_CACHE_DIR.
This caused tiktoken to attempt downloading the encoding file from the
internet instead of using the local copy bundled with litellm.

This fix uses _get_default_encoding() from _lazy_imports which properly
sets TIKTOKEN_CACHE_DIR before loading tiktoken, ensuring the local cache
is used.
2026-01-27 18:16:58 -08:00
Teo Stocco
d6cf4df3cb
fix: tool with antropic #19800 (#19805) 2026-01-27 18:02:37 -08:00
Jay Prajapati
6a9d41234f
fix: allow tool_choice for Azure GPT-5 chat models (#19813)
* fix: don't treat gpt-5-chat as GPT-5 reasoning

* fix: mark azure gpt-5-chat as supporting tool_choice

* test: cover gpt-5-chat params on azure/openai
2026-01-27 17:51:13 -08:00
Jay Prajapati
4717f742eb
fix: filter unsupported beta headers for Bedrock Invoke API (#19877)
- Add whitelist-based filtering for anthropic_beta headers
- Only allow Bedrock-supported beta flags (computer-use, tool-search, etc.)
- Filter out unsupported flags like mcp-servers, structured-outputs
- Remove output_format parameter from Bedrock Invoke requests
- Force tool-based structured outputs when response_format is used

Fixes #16726
2026-01-27 17:47:27 -08:00
Harshit Jain
d0939075bc
fix: guardrails issues streaming-response regex (#19901) 2026-01-27 17:36:18 -08:00
yuneng-jiang
7109aafe4c
Merge pull request #19903 from BerriAI/litellm_ui_model_table_adjustable_col
[Feature] Add sortBy and sortOrder params for /v2/model/info
2026-01-27 17:16:22 -08:00
yuneng-jiang
1581bcf985 add sortBy and sortOrder params for /v2/model/info 2026-01-27 16:54:52 -08:00
Ishaan Jaff
51339f5ef1
[Feat] RAG API - Add s3_vectors as provider on /vector_store/search API + UI for creating + PDF support for /rag/ingest (#19895)
* init S3VectorsRAGIngestion as a supported ingestion provider for RAG API

* test: TestRAGS3Vectors

* init S3VectorsVectorStoreOptions

* init s3 vectors

* code clean up + QA

* fix: get_credentials

* S3VectorsRAGIngestion

* TestRAGS3Vectors

* docs: AWS S3 Vectors

* add asyncio QA checks

* fix: S3_VECTORS_DEFAULT_DIMENSION

* init ui for bedrock s3 vectors

* fix add /search support for s3_vectors

* init atransform_search_vector_store_request

* feat: S3VectorsVectorStoreConfig

* TestS3VectorsVectorStoreConfig

* atransform_search_vector_store_request

* fix: S3VectorsVectorStoreConfig

* add validation for bucket name etd

* fix UI validation for s3 vector store

* init extract_text_from_pdf

* add pypdf

* fix code QA checks

* fix navbar

* init s3_vector.png

* fix QA code
2026-01-27 16:30:59 -08:00
michelligabriele
7d5439adda
fix(bedrock): support tool search header translation for Sonnet 4.5 (#19871)
Extend advanced-tool-use header translation to include Claude Sonnet 4.5
in addition to Opus 4.5 on Bedrock Invoke API.

When Claude Code sends the advanced-tool-use-2025-11-20 header, it now
gets correctly translated to Bedrock-specific headers for both:
- Claude Opus 4.5
- Claude Sonnet 4.5

Headers translated:
- tool-search-tool-2025-10-19
- tool-examples-2025-10-29

Fixes defer_loading validation error on Bedrock with Sonnet 4.5.

Ref: https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool
2026-01-27 12:17:09 -08:00
yuneng-jiang
45954155d7
Merge pull request #19799 from BerriAI/litellm_sso_email_casing
[Fix] SSO Email Case Sensitivity
2026-01-27 09:52:03 -08:00
yuneng-jiang
50612715a5
Merge pull request #19814 from BerriAI/litellm_team_member_add_fix
[Fix] /team/member_add User Email and ID Verifications
2026-01-27 09:49:01 -08:00
michelligabriele
388b4c90b6
fix(proxy): handle agent parameter in /interactions endpoint (#19866) 2026-01-27 09:34:58 -08:00
Harshit Jain
0f0b71e6d9
feat: add feature to make silent calls (#19544)
* feat: add feature to make silent calls

* add test or silent feat

* add docs for silent feat

* fix lint issues and  UI logs

* add docs of ab testing and deep copy
2026-01-27 09:16:53 -08:00
Sameer Kankute
5c1588e3b7
Merge pull request #19841 from BerriAI/litellm_bedrock_tool_search_header
Translate advanced-tool-use to Bedrock-specific headers for Claude Opus 4.5
2026-01-27 17:48:51 +05:30
Sameer Kankute
8565a9f5a2
Merge pull request #19847 from BerriAI/litellm_image_streaming_download
Fix: Stream the download in chunks for image handling
2026-01-27 17:47:35 +05:30
Sameer Kankute
c834d7d1fe
Merge branch 'main' into litellm_oss_staging_01_27_2026 2026-01-27 17:11:15 +05:30
Sameer Kankute
0214cb04cd
Merge branch 'main' into litellm_oss_staging_01_26_2026 2026-01-27 17:00:58 +05:30
Sameer Kankute
adf6d7e1db
Merge pull request #19692 from BerriAI/litellm_oss_staging_01_24_2026
Litellm oss staging 01 24 2026
2026-01-27 16:59:28 +05:30
Sameer Kankute
9a2750f8ec
Merge pull request #19617 from BerriAI/litellm_oss_staging_01_23_2026
Litellm oss staging 01 23 2026
2026-01-27 16:55:32 +05:30
Sameer Kankute
988dd2a911 Fix: Stream the download in chunks 2026-01-27 14:35:54 +05:30
Harshit Jain
885a02e6c8
fix: token calculations and refactor (#19696) 2026-01-26 22:08:17 -08:00
Sameer Kankute
3f32562587 Translate advanced-tool-use to Bedrock-specific headers for Claude Opus 4.5 2026-01-27 11:20:16 +05:30
Cesar Garcia
16f456ad82
fix(azure): use generic cost calculator for audio token pricing (#19771)
Azure audio models were charging audio output tokens at the text token
rate instead of the correct audio token rate. This resulted in costs
being ~6.65x lower than expected.

The fix replaces Azure's custom cost calculation logic with the generic
cost calculator that properly handles text, audio, cached, reasoning,
and image tokens.

Fixes #19764
2026-01-26 21:00:03 -08:00
Cesar Garcia
b1968a8e33
fix(responses): update local_vars with detected provider (#19782) (#19798)
When using the responses API with provider-specific params (aws_*, vertex_*)
without explicitly passing custom_llm_provider, the code crashed with:
AttributeError: 'NoneType' object has no attribute 'startswith'

Root cause: local_vars was captured via locals() before get_llm_provider()
detected the provider from the model string (e.g., "bedrock/..."), so
custom_llm_provider remained None when processing provider-specific params.

Fix: Update local_vars["custom_llm_provider"] after get_llm_provider() call
so the detected provider is available for param processing.

Affected provider-specific params:
- aws_* (aws_region_name, aws_access_key_id, etc.) for Bedrock/SageMaker
- vertex_* (vertex_project, vertex_location, etc.) for Vertex AI
2026-01-26 20:47:35 -08:00
Krish Dholakia
6a54dcfa93
feat: Add model_id label to Prometheus metrics (#18048) (#19678)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-01-26 20:32:08 -08:00
yuneng-jiang
b10f71d583 fixing breaking change: just user_id provided should upsert still 2026-01-26 18:10:51 -08:00
Alexsander Hamir
f95572e3ed
Fix broken mocks in 6 flaky tests to prevent real API calls (#19829)
* Fix broken mocks in 6 flaky tests to prevent real API calls

Added network-level HTTP blocking using respx to prevent tests from making real API calls when Python-level mocks fail. This makes tests more reliable and retryable in CI.

Changes:

- Azure OIDC test: Added Azure Identity SDK mock to prevent real Azure calls

- Vector store test: Added @respx.mock decorator to block HTTP requests

- Resend email tests (3): Added @respx.mock decorator for all 3 test functions

- SendGrid email test: Added @respx.mock decorator

All test assertions and verification logic remain unchanged - only added safety nets to catch leaked API calls.

* Fix failing OIDC secret manager tests

Fixed two test failures in test_secret_managers_main.py:

1. test_oidc_azure_ad_token_success: Corrected the patch path for get_bearer_token_provider from 'litellm.secret_managers.get_azure_ad_token_provider.get_bearer_token_provider' to 'azure.identity.get_bearer_token_provider' since the function is imported from azure.identity.

2. test_oidc_google_success: Added @patch('httpx.Client') decorator to prevent any real HTTP connections during test execution, resolving httpx.ConnectError issues.

Both tests now pass successfully.
2026-01-26 17:39:40 -08:00
Alexsander Hamir
c442fcd922
CI/CD: Increase retries and stabilize litellm_mapped_tests_core (#19826)
* Fix PLR0915: Extract system message handling to reduce statement count

* fix mypy

* fix: add host_progress_callback parameter to mock_call_tool in test

The test_call_tool_without_broken_pipe_error was failing because the mock function did not accept the host_progress_callback keyword argument that the actual implementation passes to client.call_tool(). Updated the mock to accept this parameter to match the real implementation signature.

* fixing flaky tests around oidc and email

* Add documentation comment to test file

* add retry

* add dependency

* increase retry

---------

Co-authored-by: yuneng-jiang <yuneng.jiang@gmail.com>
2026-01-26 17:00:18 -08:00