Commit graph

12648 commits

Author SHA1 Message Date
Krish Dholakia
f755b70528
fix(factory.py): support optional args for bedrock (#12287)
* fix(factory.py): support optional args for bedrock

Closes https://github.com/BerriAI/litellm/pull/12276

* test(main.py): Support async await on mock_delay

Closes https://github.com/BerriAI/litellm/issues/12282
2025-07-03 21:15:10 -07:00
Ishaan Jaff
bffe5bec7d test fix cli credentials 2025-07-03 21:08:35 -07:00
Ishaan Jaff
e03686de5f tests fix use correct import responses 2025-07-03 21:06:31 -07:00
Ishaan Jaff
4293dd2c2a
test: stabilize credentials CLI patch (#12305) 2025-07-03 18:09:32 -07:00
Ishaan Jaff
3ad6b36ffc
test: patch CredentialsManagementClient in CLI (#12304) 2025-07-03 17:01:50 -07:00
Ishaan Jaff
e7374e3909 test_gemini_url_context 2025-07-03 16:13:44 -07:00
Ishaan Jaff
59f3771799 test_text_completion_stream - hf 2025-07-03 16:00:51 -07:00
Ishaan Jaff
782ba9f5a0 sys.path.insert for cli tests 2025-07-03 15:58:49 -07:00
Ishaan Jaff
81948d4198 fix test 2025-07-03 15:37:10 -07:00
Ishaan Jaff
e75f4c8561 TestCallbackManagementEndpoints 2025-07-03 15:00:53 -07:00
Ishaan Jaff
437f4765b4 test_completion_mistral_api_mistral_large_function_call_with_streaming 2025-07-03 14:58:28 -07:00
Ishaan Jaff
274baac9df test_mcp_tools_with_responses_api 2025-07-03 14:53:30 -07:00
Cole McIntosh
adfe63cf3a
fix: handle proxy internal callbacks in callback management test (#12294)
The test_list_callbacks_mixed_callback_types test was failing when run in parallel with other tests due to the proxy server's internal _PROXY_VirtualKeyModelMaxBudgetLimiter callback persisting across test runs. This fix filters out proxy internal callbacks from the test assertions to ensure consistent test behavior regardless of test execution order or parallelization.
2025-07-03 14:28:46 -07:00
Ishaan Jaff
03a589d323 fix - MCP deepwiki mcp is unstable, move to stable mcp 2025-07-03 14:24:32 -07:00
Ishaan Jaff
3387029723
[Bug Fix] Using gemini-cli with Vertex Anthropic Models (#12246)
* add is_vertex_partner_model

* fixes for get_provider_google_genai_generate_content_config

* bug fix use vertex anthropic models with gemini cli

* vertex_anthropic_mock_response

* test streaming vertex generateContent

* add unified_google_tests

* fix is_vertex_partner_model

* add load_vertex_ai_credentials

* test fix
2025-07-03 12:29:27 -07:00
Krish Dholakia
c0319d0d01 Litellm dev fix gemini web search tracking (#12288)
* feat(stream_chunk_builder_utils.py): correctly return web_search_requests on stream chunk builder

* fix(types/utils.py): handle prompttokendetails

* fix(stream_chunk_builder_utils.py): fix ruff check error

* test: try-except rate limit error

* fix: fix import
2025-07-03 12:27:14 -07:00
Ishaan Jaff
75bb22a868 fix huggingface/deepseek-ai/DeepSeek-R1 2025-07-03 12:13:51 -07:00
Ishaan Jaff
5630147e80 Revert "Revert "fix tests (#12286)""
This reverts commit 12f157513b.
2025-07-03 12:08:27 -07:00
Ishaan Jaff
12f157513b Revert "fix tests (#12286)"
This reverts commit 99ce3a24cc.
2025-07-03 12:04:23 -07:00
Ishaan Jaff
9cc144e3cb test add clear_existing_callbacks 2025-07-03 12:00:36 -07:00
Jugal D. Bhatt
df161f1e45
Litellm mcp tool prefix (#12289)
* prefix all server tools from the backend

* change var name

* fix tests
2025-07-03 11:39:37 -07:00
Ishaan Jaff
96d5f891df fix test 2025-07-03 11:18:41 -07:00
Ishaan Jaff
ba5af3e44b fix keys delete 2025-07-03 11:18:10 -07:00
célina
99ce3a24cc
fix tests (#12286) 2025-07-03 10:57:19 -07:00
Krrish Dholakia
82a0a443c6 feat(stream_chunk_builder_utils.py): correctly return web_search_requests on stream chunk builder 2025-07-03 10:56:26 -07:00
Ishaan Jaff
c3909d6f50 test_keys_delete_error_handling 2025-07-03 10:04:59 -07:00
dcieslak19973
d480cea8b0
Add azure_ai cohere rerank v3.5 (#12283)
* Add azure_ai cohere rerank v3.5

* Fix CI error
2025-07-03 10:01:45 -07:00
Ishaan Jaff
282ce1a859 test - fix delete keys 2025-07-02 22:23:10 -07:00
Krish Dholakia
42cd05dee8
Add Azure Content Safety Guardrails to LiteLLM proxy (#12268)
* feat(azure/prompt_shield.py): initial commit adding prompt shield guardrail + auto discovery mechanism for guardrails

reduces amount of code needed outside of guardrail integration for instrumentation

* feat(azure/prompt_shield.py): working azure prompt shield guardrail integration

Addresses https://github.com/BerriAI/litellm/issues/12254

* test: unit tests for prompt_shield

* fix(prompt_shield.py): add event hook validation for prompt shield guardrail

ensures prompt shield guardrail raises error if asked to run post_call (only runs on user prompt)

* feat(azure/): working text_moderation integration

* fix(text_moderation.py): suppress linting error

* test(test_azure_text_moderation.py): add unit test

* test(test_azure_text_moderation.py): add unit test for responses

* fix(text_moderation.py): return streaming error correctly

ensures error returned to user

* fix: fix linting error

* fix: fix linting check

* test: change mistral model

service tier exceeded

* fix(exception_mapping_utils.py): cover mistral in exception mapping
2025-07-02 21:34:19 -07:00
Krrish Dholakia
a198d4a39f test: change mistral model
service tier exceeded
2025-07-02 21:11:02 -07:00
Ishaan Jaff
1aa55e6a74 test_url_context 2025-07-02 21:10:12 -07:00
Krish Dholakia
bba75aa12b
Add 'audio_url' message type support for VLLM (#12270)
* fix(openai.py): add audio_url content type for vllm

Fixes https://github.com/BerriAI/litellm/issues/12196

* test: fix test
2025-07-02 20:37:45 -07:00
Jugal D. Bhatt
5fe01b9a2b
Add MCP servers header to the scope of header (#12266)
* add mcp header param

* rename class

* fix tests

* fix tests

* added ruff fixes

* fix ruff checks

* added mypy type checking
2025-07-02 20:22:14 -07:00
Ishaan Jaff
eef0623443
[Feat] Add Arize Team Based Logging (#12264)
* working KeyAndTeamLoggingSettings

* add arize_space_id to StandardCallbackDynamicParams

* add construct_dynamic_arize_headers

* add construct_dynamic_arize_headers to

* update otel arize logging

* fix imports

* test_construct_dynamic_arize_headers

* dynamic key/team settings

* test_get_dynamic_logging_metadata_with_arize_team_logging
2025-07-02 17:15:35 -07:00
Jugal D. Bhatt
5a852ca647
Add fix to tests (#12263) 2025-07-02 16:57:49 -07:00
Jugal D. Bhatt
d55712b783
Add MCP url masking on frontend (#12247)
* add url masking on frontend

* fix test

* add signature
2025-07-02 16:32:26 -07:00
Jugal D. Bhatt
88834b8550
[Bump] Litellm responses format (#12253)
* Add responses format changes

* Add check

* Add check

* added more testing
2025-07-02 16:32:06 -07:00
Ishaan Jaff
bc368707df
[Bug Fix] Fixes for bedrock guardrails post_call - applying to streaming responses (#12252)
* fixes for using bedrock guard

* fixes for output_content_bedrock guard

* test_convert_to_bedrock_format_input_source

* test_convert_to_bedrock_format_post_call_streaming_hook

* test bedrock guard
2025-07-02 14:46:27 -07:00
Nathan Brake
14feb5e454
feat: Turn Mistral to use llm_http_handler (#12245)
* Enhance Mistral API: Add support for parallel tool calls and refine name handling in tool messages. Plus, introduce a new test for parallel tool calls in the Mistral model.

* tests

* make mypy happy

* Refine name handling in Mistral chat transformation: clarify conditions for removing the 'name' field based on message role and content.

* refactor: streamline Mistral integration by removing deprecated references and adding a new handler

- Removed "mistral" from the list of compatible providers in constants.
- Updated the completion function in main.py to utilize the new Mistral handler.
- Deleted outdated Mistral chat and embedding files.
- Introduced a new handler for Mistral chat completions, implementing the llm_http_handler pattern.
- Added integration tests for the Mistral handler to ensure proper API base and key handling.

* lint

* fix: remove unneeded handler object

* add tests

* Addres PR comments
2025-07-02 14:01:56 -07:00
Krish Dholakia
df49b24bc0
Azure - responses api bridge - respect responses/ + Gemini - generate content bridge - handle kwargs + litellm params containing stream (#12224)
* fix(main.py): handle router custom azure model name for responses api bridge

* fix(responses/handler): ensure azure model name is stripped before sending to provider

Fixes model name error

* fix(google_genai/main.py): handle stream=true being set in kwargs

* docs: cleanup icons from sidebar

* fix(test-litellm.yml): add google-genai to test litellmyml

* fix(main.py): strip 'responses/' from bridge

* fix(main.py): fix linting errors

* fix(types/openai.py): allow item to be none

handle azure streaming response

* fix(base.py): allow extra fields + handle azure item = none value in response output item added event

* fix(main.py): correctly handle removing responses/

* test(test_main.py): add unit tests
2025-07-02 13:53:52 -07:00
Cole McIntosh
2c60c316ec
Fix: Initialize JSON logging for all loggers when JSON_LOGS=True (#12206)
When JSON_LOGS=True is set, error logs were not being formatted as JSON despite
the configuration. This was because the logging initialization code configured
individual loggers but failed to properly initialize all loggers with the JSON
formatter.

This fix ensures that when json_logs is enabled, the _initialize_loggers_with_handler()
function is called to:
- Configure all loggers (root, LiteLLM, Router, Proxy) with JSON formatter
- Disable logger propagation to prevent duplicate entries
- Set up exception handlers for JSON formatting

Fixes LIT-267
2025-07-02 12:18:28 -07:00
Krish Dholakia
6717d67f3b
fix(streaming_handler.py): store finish reason, even if is_finished is false - allows storing early gemini finish reasons (#12250)
Fixes https://github.com/BerriAI/litellm/issues/12249
2025-07-02 12:09:41 -07:00
Nathan Brake
c2dbc9c64b
fix: mistral transform_response handling for empty string content (#12202)
* Enhance Mistral API: Add support for parallel tool calls and refine name handling in tool messages. Plus, introduce a new test for parallel tool calls in the Mistral model.

* tests

* make mypy happy

* Refine name handling in Mistral chat transformation: clarify conditions for removing the 'name' field based on message role and content.

* handle mistral returning '' instead of None
2025-07-01 22:31:50 -07:00
Krish Dholakia
22d28f5853
Batches - support batch retrieve with target model Query Param + Anthropic - completion bridge, yield content_block_stop chunk (#12228)
* fix(batches_endpoints/endpoints.py): support passing target model names for batch list as a query param

Fixes issue where cloud run fails calls because GET can't contain request body

* test(test_openai_batches_endpoints.py): add unit test

* docs(managed_batches.md): update docs

* feat(spend_tracking_utils.py): support STORE_PROMPTS_IN_SPEND_LOGS env var

ensures prompt is stored in spend logs

* fix(streaming_iterator.py): fix anthropic - completion streaming iterator to yield content block stop

ensures claude code renders messages

* test: skip local test
2025-07-01 22:13:48 -07:00
Jugal D. Bhatt
d322e772f0
Litellm add sentry scrubbing (#12210)
* add sentry scrubbing

* add new constants

* remove_unused_import

* sentry scrubbing test

* added unit test
2025-07-01 20:42:36 -07:00
Ishaan Jaff
7471a30dcd
Revert "Fix: Preserve full path structure for Gemini custom api_base (#12215)" (#12227)
This reverts commit f47254ecab.
2025-07-01 20:41:39 -07:00
Ishaan Jaff
4b4e2dfde4 test base email 2025-07-01 20:33:21 -07:00
Ishaan Jaff
66fafa3a7f
[Feat] Polish - add better error validation when users configure prometheus metrics and labels to control cardinality (#12182)
* self._pretty_print_invalid_metric_error

* docs prometheus.md

* test prom validation checks

* update metric name

* fix _pretty_print_validation_errors

* fix linting

* test prometheus

* test fixes - prometheus
2025-07-01 20:17:17 -07:00
Samuel Boyd
a5c2475ecf
OpenMeter integration error handling fix (#12147)
* fix - tuple was never falsy so never triggered the exception

* test - add test suite for openmeter integration

* refactor - move tests for openmeter integration
2025-07-01 18:12:54 -07:00
Ishaan Jaff
4e7115bc34
Bug Fix - responses api fix got multiple values for keyword argument 'litellm_trace_id' (#12225)
* fix - handling trace id arg on responses api

* test_async_response_api_handler_merges_trace_id_without_error

* test_anthropic_with_responses_api
2025-07-01 18:12:22 -07:00