Commit Graph
2310 Commits
Author SHA1 Message Date
Ishaan JaffandGitHub ef336dcb38 [SCIM] Add Error handling for existing user on SCIM (#11862)
* fix handling existing user on SCIM

* test scim v2 fixes
2025-06-18 09:49:13 -07:00
Ishaan JaffandGitHub 6ffebe7394 [Fix] v1/messages endpoint always uses us-central1 with vertex_ai-anthropic models (#11831)
* fix - vertex location

* test_validate_environment_uses_vertex_ai_location
2025-06-18 07:00:04 -07:00
Cole McIntoshandGitHub 7d1e0651d8 Implement health check backend API and storage functionality - fix ci/cd (#11852)
* feat: Add health check functionality and endpoints

- Introduced methods for saving health check results to the database, including validation and cleaning of data.
- Added new health check endpoints to retrieve health check history and latest health statuses for models.
- Updated model prices and context window configuration for new Azure transcription models.

* test: Add unit tests for health check functionality

- Introduced tests for PrismaClient health check methods, including saving results and retrieving health check history.
- Added tests for the _save_health_check_to_db function to ensure proper handling of healthy and unhealthy endpoints.
- Implemented mock objects to simulate database interactions and validate method behaviors.

* Refactor health endpoint model ID handling and improve logging

- Updated health endpoint to use `get_deployment` for retrieving model names based on model IDs, enhancing error handling for missing models.
- Changed health check result saving to the database to be non-blocking by using `asyncio.create_task`.
- Cleaned up code for better readability and maintainability.

* Refactor utility functions in proxy module for improved readability and error handling

- Removed unused imports and simplified exception handling in `_get_redoc_url` and `_get_docs_url` functions to manage circular imports.
- Cleaned up logging statements for consistency and clarity.
- Streamlined error message formatting in `handle_exception_on_proxy` function.

* Enhance type hinting and default values in ProxyUpdateSpend class for improved clarity and robustness

- Added type hints for `_end_user_list_transactions` to specify it as a dictionary mapping end user IDs to spend amounts.
- Updated default values for optional fields in `SpendLogsPayload` to ensure they are initialized properly, enhancing error handling.
- Refactored `_premium_user_check` function to improve model validation logic and error handling.

* Fix disable_spend_updates method to handle None return value gracefully

- Updated the disable_spend_updates method to return False if the environment variable DISABLE_SPEND_UPDATES is not set or is None, improving robustness in configuration handling.

* Refactor join_paths function in utils.py for improved path handling

- Enhanced the join_paths function to better manage leading and trailing slashes, ensuring correct path concatenation.
- Added logic to handle cases where either base_path or route is empty, improving robustness and usability.

* Enhance health check functionality and improve error handling

- Introduced a new method `_save_health_check_to_db` for saving health check results to the database, utilizing safe JSON functions for data integrity.
- Refactored existing health check methods to streamline the process and improve error logging.
- Updated email sending logic to ensure secure connections and better error handling.
- Improved spend update logic with batch processing and retry mechanisms for database operations.
- Added utility functions for projected spend calculations and enhanced validation for team configurations.

* Add health check methods for database interaction

- Introduced `save_health_check_result` method to save health check results with detailed logging and validation.
- Added `get_health_check_history` method for retrieving health check records with optional filtering.
- Implemented `get_all_latest_health_checks` method to fetch the latest health checks for each model.
- Enhanced error handling and logging for all new methods to improve reliability and traceability.

* Refactor health check result saving to use typed arguments

- Updated the `_save_health_check_to_db` function to call `save_health_check_result` with explicitly typed arguments instead of a dictionary spread, enhancing code clarity and type safety.
- Removed unused method bindings in the mock Prisma client tests to streamline the test setup.

* Remove unused `_save_health_check_to_db` function from utils.py to streamline code and improve maintainability.

* Implement response time validation and details cleaning in health check result saving

- Added `_validate_response_time` method to ensure response time values are valid and handle exceptions gracefully.
- Introduced `_clean_details` method to validate and clean details JSON, improving data integrity.
- Refactored `save_health_check_result` to utilize these new methods for optional fields, enhancing code clarity and maintainability.
- Updated tests to bind new methods to the mock Prisma client for comprehensive testing.

* Add health check utility functions and refactor existing endpoints

- Introduced `_convert_health_check_to_dict` to standardize health check record conversion to dictionary format for JSON responses.
- Added `_check_prisma_client` helper function to streamline database availability checks and improve error handling.
- Refactored health check endpoints to utilize the new utility functions, enhancing code clarity and maintainability.

* Refactor health check tests for improved clarity and coverage

- Simplified the mock PrismaClient setup by consolidating method bindings.
- Updated health check result saving tests to use parameterized scenarios for better coverage.
- Added tests for health check history retrieval and graceful handling when no database client is provided.
- Removed redundant mock functions to streamline the test suite.

* Implement helper function for health check and database saving

- Added `_perform_health_check_and_save` to encapsulate health check execution and optional database saving.
- Refactored health endpoint logic to utilize the new helper function, improving code clarity and reducing redundancy.
- Enhanced error handling and streamlined the process of saving health check results to the database.

* refactor: rename target_model parameter to model in health check function
2025-06-18 06:57:08 -07:00
2740c8d77d Fix vertex ai claude thinking params (#11796)
* fix:  vertex_ai/claude-sonnet-4 thinking params can not be accepted

* CHORE: add unit test

---------

Co-authored-by: wick.hu <wick.hu@momenta.ai>
2025-06-17 22:35:31 -07:00
Ishaan JaffandGitHub 0eb8a3de10 [Feat] v2 Pass through endpoints - Add support for subroutes for pass through endpoints + Cleaned up UI (#11827)
* fix: add construct_target_url_with_subpath

* add InitPassThroughEndpointHelpers

* added debugging for pass through routes

* add PassThroughGenericEndpoint to include subpath and input_cost_per_request

* polish page

* Add Pass-Through Endpoint

* polish pass through ui

* fixes for initialize_pass_through_endpoints

* PassThroughGenericEndpoint

* test_add_subpath_route

* test_initialize_pass_through_endpoints_with_include_subpath

* fix code QA check
2025-06-17 20:52:28 -07:00
Ishaan JaffandGitHub a8196159b9 [Bug Fixes] MCP - using MCPs defined on config.yaml + fix for MCP error Team doesn't exist in cache (#11824)
* fix - dont allow missing team to block MCP list response

* use HTTP as default transport

* _generate_stable_server_id

* fix list MCP servers

* ui fix

* test_list_mcp_servers_empty_result

* test_generate_stable_server_id

* _generate_stable_server_id

* fix code QA

* fix code QA
2025-06-17 16:25:12 -07:00
Ishaan JaffandGitHub bcdb53920a [Fix] Bug Fix for using prom metrics config (#11779)
* fixes for using config for prom metrics

* test_set_llm_deployment_success_metrics_with_label_filtering

* fixes for deployment failure

* fix code qa checks

* test_async_post_call_success_hook
2025-06-17 14:44:24 -07:00
Krish DholakiaandGitHub cb90f8e613 Allow /models to return correct models for custom wildcard prefixes (#11784)
* fix(model_checks.py): cleanup logic

support wildcard models with non-provider prefix's for model discovery

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

* feat(model_checks.py): delegate wildcard prefix appending to the get_known_models_from_wildcard function

remove from the 'get_provider_models' function

* fix(model_checks.py): don't double add the wildcard prefix

* test: update tests
2025-06-16 22:11:36 -07:00
Krish DholakiaandGitHub 30b431681e JWT Auth - correctly return user email + UI Model Update - Allow editing model access group for existing model (#11783)
* fix(handle_jwt.py): check user object, if jwt user is proxy admin

correctly return user role - if jwt user has role updated in UI

* test(test_handle_jwt.py): add unit test for passing correct user role

* feat(model_info_view.tsx): separate UI component for updating edit model component

* feat(model_info_view.tsx): allow updating model access group on UI

show all available access groups in ui component

* docs: minor fixes
2025-06-16 22:11:04 -07:00
Krish DholakiaandGitHub 87ae2cf3d7 SSO - Allow passing additional headers + Spend Tags - automatically track spend by user agent (allows cost tracking for claude code) (#11781)
* feat(ui_sso.py): allow admin to specify additional headers for sso provider

some sso providers require special headers to return a json response

* test(test_ui_sso.py): add unit tests to ensure custom headers are respect3ed

* docs(config_settings.md): document new header param

* fix(litellm_pre_call_utils.py): add spend tag tracking by user agent

allows checking spend for cli tools like claude code

* feat(litellm_pre_call_utils.py): track spend by user agent part if user agent contains "/"

allows tracking spend across user agent versions

Better cost tracking for claude cod

* test(test_litellm_pre_call_utils.py): add testing for pre call utils, user agent parsing

* fix: fix linting check
2025-06-16 21:53:40 -07:00
Ishaan JaffandGitHub 80501b8268 [Feat] Day-0 Support for OpenAI Re-usable prompts Responses API (#11782)
* add prompt to responses params

* add OpenAI PromptObject

* add prompt param to responses api

* test_get_optional_params_responses_api

* test_openai_responses_litellm_router_with_prompt

* docs Reusable Prompts
2025-06-16 21:28:50 -07:00
Abinand PandGitHub 99c2a7fb70 feat: update the feature of ollama_embeddings to work on a sync api (#11746)
* feat: update the feature of ollama_embeddings to work on a sync api

Signed-off-by: Abinand P <abinand0911@gmail.com>

* lint:fixing of the lint file

Signed-off-by: Abinand P <abinand0911@gmail.com>

* fix:test

Signed-off-by: Abinand P <abinand0911@gmail.com>

* chore: added test for ollama embedding and refactored handler

Signed-off-by: Abinand P <abinand0911@gmail.com>

* fix:lint error

Signed-off-by: Abinand P <abinand0911@gmail.com>

---------

Signed-off-by: Abinand P <abinand0911@gmail.com>
2025-06-16 19:07:33 -07:00
Krrish Dholakia bb907b5ecc test: fix test 2025-06-16 18:49:41 -07:00
35d74af5a0 [Fix] Pass through - Langfuse don't log request to Langfuse passthrough on Langfuse (#11768)
* dont log lf pass through request

* test_is_langfuse_route

* Update litellm/proxy/pass_through_endpoints/success_handler.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-16 17:30:23 -07:00
Krish DholakiaandGitHub 7a128e2017 VertexAI Anthropic - streaming passthrough cost tracking (#11734)
* feat(vertex_passthrough_logging_handler.py): initial anthropic passthrough streaming cost tracking support

* fix: fix linting errors

* test: update test
2025-06-15 01:16:43 -07:00
Karthick JandGitHub ac4c29c352 feat(azure): Make Azure AD scope configurable (#11621) 2025-06-14 17:43:01 -07:00
Ishaan Jaff 355e6118d8 def test_text_completion_stream(): 2025-06-14 16:46:09 -07:00
Ishaan Jaff 363d6b6858 test_xai_check_for_stop_in_supported_params 2025-06-14 16:33:38 -07:00
Krish DholakiaandGitHub c92b6c175c Prometheus - fix request increment + add route tracking for streaming requests (#11731)
* fix(prometheus.py): remove request increment from inside the log success event

it's only done on post-call success/failure

* fix(litellm_logging.py): add additional validation step for checking if 'stream' is true

prevent double counting on non-stream requests

* test: add unit testing to ensure stream is not incorrectly set to true

* feat(litellm_logging.py): emit request route in standard logging payload

used by prometheus streaming metrics for route

* fix: fix otel test

* fix: fix linting errors

* test: update test

* fix: fix linting error
2025-06-14 16:26:48 -07:00
Ishaan JaffandGitHub c40580f892 [Fix] JWT - Fix error when team member already part of team (#11735)
* fix _check_member_duplication

* fix map_user_to_teams

* test_map_user_to_teams_handles_already_in_team_exception

* test_team_endpoints.py
2025-06-14 15:50:16 -07:00
Ishaan Jaff 1c1e41c51d Revert "Implement health check backend API and storage functionality (#11678)"
This reverts commit 5f34ceea1a.
2025-06-14 15:45:33 -07:00
Ishaan Jaff ad82792c4b fix lf OTEL 2025-06-14 15:43:38 -07:00
Ishaan JaffandGitHub d4107dfd68 [Bug Fix] Ensure /redis/info works on GCP Redis (#11732)
* fix cache_redis_info

* mock_redis_client_list_restricted
2025-06-14 15:35:09 -07:00
Cole McIntoshandGitHub 5f34ceea1a Implement health check backend API and storage functionality (#11678)
* feat: Add health check functionality and endpoints

- Introduced methods for saving health check results to the database, including validation and cleaning of data.
- Added new health check endpoints to retrieve health check history and latest health statuses for models.
- Updated model prices and context window configuration for new Azure transcription models.

* test: Add unit tests for health check functionality

- Introduced tests for PrismaClient health check methods, including saving results and retrieving health check history.
- Added tests for the _save_health_check_to_db function to ensure proper handling of healthy and unhealthy endpoints.
- Implemented mock objects to simulate database interactions and validate method behaviors.

* Refactor health endpoint model ID handling and improve logging

- Updated health endpoint to use `get_deployment` for retrieving model names based on model IDs, enhancing error handling for missing models.
- Changed health check result saving to the database to be non-blocking by using `asyncio.create_task`.
- Cleaned up code for better readability and maintainability.

* Refactor utility functions in proxy module for improved readability and error handling

- Removed unused imports and simplified exception handling in `_get_redoc_url` and `_get_docs_url` functions to manage circular imports.
- Cleaned up logging statements for consistency and clarity.
- Streamlined error message formatting in `handle_exception_on_proxy` function.

* Enhance type hinting and default values in ProxyUpdateSpend class for improved clarity and robustness

- Added type hints for `_end_user_list_transactions` to specify it as a dictionary mapping end user IDs to spend amounts.
- Updated default values for optional fields in `SpendLogsPayload` to ensure they are initialized properly, enhancing error handling.
- Refactored `_premium_user_check` function to improve model validation logic and error handling.

* Fix disable_spend_updates method to handle None return value gracefully

- Updated the disable_spend_updates method to return False if the environment variable DISABLE_SPEND_UPDATES is not set or is None, improving robustness in configuration handling.

* Refactor join_paths function in utils.py for improved path handling

- Enhanced the join_paths function to better manage leading and trailing slashes, ensuring correct path concatenation.
- Added logic to handle cases where either base_path or route is empty, improving robustness and usability.

* Enhance health check functionality and improve error handling

- Introduced a new method `_save_health_check_to_db` for saving health check results to the database, utilizing safe JSON functions for data integrity.
- Refactored existing health check methods to streamline the process and improve error logging.
- Updated email sending logic to ensure secure connections and better error handling.
- Improved spend update logic with batch processing and retry mechanisms for database operations.
- Added utility functions for projected spend calculations and enhanced validation for team configurations.

* Add health check methods for database interaction

- Introduced `save_health_check_result` method to save health check results with detailed logging and validation.
- Added `get_health_check_history` method for retrieving health check records with optional filtering.
- Implemented `get_all_latest_health_checks` method to fetch the latest health checks for each model.
- Enhanced error handling and logging for all new methods to improve reliability and traceability.

* Refactor health check result saving to use typed arguments

- Updated the `_save_health_check_to_db` function to call `save_health_check_result` with explicitly typed arguments instead of a dictionary spread, enhancing code clarity and type safety.
- Removed unused method bindings in the mock Prisma client tests to streamline the test setup.

* Remove unused `_save_health_check_to_db` function from utils.py to streamline code and improve maintainability.

* Implement response time validation and details cleaning in health check result saving

- Added `_validate_response_time` method to ensure response time values are valid and handle exceptions gracefully.
- Introduced `_clean_details` method to validate and clean details JSON, improving data integrity.
- Refactored `save_health_check_result` to utilize these new methods for optional fields, enhancing code clarity and maintainability.
- Updated tests to bind new methods to the mock Prisma client for comprehensive testing.

* Add health check utility functions and refactor existing endpoints

- Introduced `_convert_health_check_to_dict` to standardize health check record conversion to dictionary format for JSON responses.
- Added `_check_prisma_client` helper function to streamline database availability checks and improve error handling.
- Refactored health check endpoints to utilize the new utility functions, enhancing code clarity and maintainability.

* Refactor health check tests for improved clarity and coverage

- Simplified the mock PrismaClient setup by consolidating method bindings.
- Updated health check result saving tests to use parameterized scenarios for better coverage.
- Added tests for health check history retrieval and graceful handling when no database client is provided.
- Removed redundant mock functions to streamline the test suite.

* Implement helper function for health check and database saving

- Added `_perform_health_check_and_save` to encapsulate health check execution and optional database saving.
- Refactored health endpoint logic to utilize the new helper function, improving code clarity and reducing redundancy.
- Enhanced error handling and streamlined the process of saving health check results to the database.
2025-06-14 14:27:11 -07:00
nevinandGitHub b7cb66ee8f Fixed grok-3-mini to not use stop tokens (#11563)
* fixed grok-3-mini to not use stop tokens

* added xai config test
2025-06-14 14:26:43 -07:00
Cole McIntoshandGitHub d1bd68155e Add Langfuse OpenTelemetry Integration (#11607)
* feat(langfuse_otel): add Langfuse OpenTelemetry integration for observability

- Introduced a new integration for Langfuse OpenTelemetry, allowing users to send LiteLLM traces and observability data.
- Updated sidebars to include documentation for the new integration.
- Added example usage and configuration details in the documentation.
- Implemented necessary classes and methods to handle OpenTelemetry attributes and configuration.
- Included tests to validate the integration functionality and environment variable handling.

Still WIP

* Remove example script for Langfuse OpenTelemetry integration with LiteLLM
2025-06-14 14:18:38 -07:00
Ishaan JaffandGitHub b091c1ac4d [Feat] Prometheus - Allow controlling exposed metrics and labels (#11489)
* feat: init prometheus_metrics_config

* feat: add prometheus_metrics_config

* test prometheus

* feat: use factor to init metrics

* fix - pretty print allowed metrics controls

* fix config

* fix - working get_labels_for_metric

* test_no_prometheus_config

* docs update prometheus
2025-06-14 13:56:40 -07:00
Ishaan Jaff 318ad52896 test_anthropic_basic_completion_with_headers 2025-06-14 13:56:06 -07:00
Ishaan Jaff 5a051cb264 test_async_embedding_azure_caching - flaky test 2025-06-14 13:55:29 -07:00
Ishaan Jaff e3094c2249 set flaky tests as flaky 2025-06-14 13:51:52 -07:00
Krish DholakiaandGitHub 84999ddef3 UI - Fix remaining users activity if no limit + allow filtering by model access groups (#11730)
* feat(enterprise/): fix remaining users check on license

* fix(usage_indicator.tsx): if no max user set, don't render remaining user info card

only for users with user limits on their license

* fix(leftnav.tsx): only show remaining users to admin

* feat(columns.tsx): don't allow sorting on model access groups

it's a list[str]

* feat(model_dashboard.tsx): add model access group filters
2025-06-14 13:38:58 -07:00
Krrish Dholakia f5aa24c3eb test: update unit testing 2025-06-14 08:41:34 -07:00
Ishaan Jaff 098fb0307a Revert "Enable System Proxy Support for aiohttp Transport (#11616)"
This reverts commit 33c134c6ac.
2025-06-14 08:32:51 -07:00
Krish DholakiaandGitHub afe8abc768 Add anthropic 'none' tool choice param support (#11695)
* docs(index.md): add stable pip package

* fix(anthropic/chat/transformation.py): add 'none' tool choice mapping

Allows disabling anthropic tool calling

Maintain parity

* fix(transformation.py): if tool_choice="none" ignore 'disable_parallel_Tool_use'

unsupported param from anthropic - makes sense as the 'none' implies no tool calls are being made
2025-06-13 21:22:03 -07:00
Krish DholakiaandGitHub 8579332f44 Add model access groups on UI (#11719)
* fix(anthropic/chat/transformation.py): append prefix to start of assistant response, if set

ensures assistant response contains complete response

* fix(anthropic/chat/transformation.py): add flag to allow user to opt out of enabling prefix in prompt

* fix(anthropic/chat/transformation.py): working e2e support for prefix prompt in assistant response

* feat(networking.tsx): always include model access groups on UI

show admin created access groups when giving key/user/team model permissions

* feat(add_model_tab.tsx): initial ui component for adding to an existing model access group

allows user to add model to an access group (simplify giving users/keys/teams model access)

* feat(proxy_server.py): add 'only_model_access_groups' flag support to `/v1/models`

simplifies listing available access groups on UI

* test: add e2e test for new only_model_access_groups param

* feat(add_model_tab.tsx): allow adding+viewing model access groups on models tab

make feature functional on UI

* feat(view_users.tsx): route edit user to user info page

more detailed user edit

* feat(columns.tsx): route edit user to user info page

more detailed user edit

* fix(columns.tsx): fix linting error

* build(ui/): fix linting errors
2025-06-13 21:20:25 -07:00
Krrish Dholakia 31a73be03f fix(litellm_logging.py): skip should_run_logging check on streaming 2025-06-13 21:19:24 -07:00
Ishaan Jaff 5b451bf483 test_openai_azure_embedding_simple 2025-06-13 19:00:25 -07:00
Krish DholakiaandGitHub 7df76175b4 fix(prometheus.py): fix total token increment + add semantic tests for prometheus metrics (#11718)
fixes regression where total requests was incremented by token value
2025-06-13 16:43:00 -07:00
19a8b23644 [Feat] Add Authentication + Permission Management for MCP List, Call Tool Ops (#11682)
* add basic auth checks for MCP

* working MCP auth

* fix MCP

* add get_allowed_mcp_servers for key, team

* add get_allowed_mcp_servers

* TOOLS FROM MCP SERVERS

* fix - working context vars for handling auth to MCPs

* fix imports

* working _get_allowed_mcp_servers_for_key

* TestUserAPIKeyAuthMCP

* test_user_api_key_auth_mcp

* fix code qa check

* fix imports

* test_mcp_server.py

* fix: fix - working permission mgmt

* Update litellm/proxy/_experimental/mcp_server/auth/user_api_key_auth_mcp.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-13 10:13:51 -07:00
Alvaro SevillaandGitHub 196a7269f6 fix(vertex_ai): support global location in vertex ai passthrough (#11661)
* Support global location in vertex ai passthrough

* refactor
2025-06-13 09:51:04 -07:00
07472ce21f Logging: prevent double logging logs when bridge is used (anthropic <-> chat completion OR chat completion <-> responses api) (#11687)
* feat(anthropic/passthrough): pass dynamic api key/api base params to litellm.completion

allows calls to work with config.yaml

* fix(responses_api/transformation): fix passing dynamic params to responses api from .completion()

Allows responses api to work with config.yaml

* fix(langfuse.py): fix responses api usage logging to langfuse

* refactor(litellm_logging.py): add more generic solution for responses api usage logging

ensures it works across all logging integrations

* fix(litellm_logging.py): patch for anthropic messages not returning a pydantic object

it should ideally return a pydantic object, which would simplify checks and reduce errors

* fix(handler.py): correctly bubble up empty choices errors to litellm.completion

causes downstream errors as it is expected there is at least one choice set

* feat(litellm_logging.py): prevent double logging litellm responses

ensures accurate spend tracking for calls when bridges are used

* fix(litellm_logging.py): ensure logging is consistently enforced across all call types

* fix: patch - set calltype before entering bridge api

ensures logging object is applying the correct logic on the event hooks

* fix(types/router.py): loosen type hint for mock response

* change space_key header to space_id for Arize (#11595)

* feat(schema): add additional indexes to LiteLLM_SpendLogs for improved query performance (#11675)

* Revert "feat(schema): add additional indexes to LiteLLM_SpendLogs for improve…" (#11683)

This reverts commit 2a7f113fde.

* [Feat] Use dedicated Rest endpoints for list, calling MCP tools  (#11684)

* fix: (fix) use specific rest endpoints for MCP

* ui - use rest mcp endpoints

* fix imports

* docs DISABLE_AIOHTTP_TRUST_ENV

* docs(caching.md): remove batch redis get recommendation - old code path, no longer necessary

* fix(vertex_and_google_ai_studio_gemini.py): handle gemini not passing audio token usage data

* Chat Completions <-> Responses API Bridge Improvements (#11685)

* feat(anthropic/passthrough): pass dynamic api key/api base params to litellm.completion

allows calls to work with config.yaml

* fix(responses_api/transformation): fix passing dynamic params to responses api from .completion()

Allows responses api to work with config.yaml

* fix(langfuse.py): fix responses api usage logging to langfuse

* refactor(litellm_logging.py): add more generic solution for responses api usage logging

ensures it works across all logging integrations

* fix(litellm_logging.py): patch for anthropic messages not returning a pydantic object

it should ideally return a pydantic object, which would simplify checks and reduce errors

* fix(handler.py): correctly bubble up empty choices errors to litellm.completion

causes downstream errors as it is expected there is at least one choice set

* fix(response_metadata.py): allow model_info to be none

* fix(litellm_logging.py): copy object before mutating

* fix: fix lint check

* fix: fix linting error

* fix: fix linting error

---------

Co-authored-by: vanities <mischkeaa@gmail.com>
Co-authored-by: Cole McIntosh <82463175+colesmcintosh@users.noreply.github.com>
Co-authored-by: Ishaan Jaff <ishaanjaffer0324@gmail.com>
2025-06-12 23:07:36 -07:00
Krish DholakiaandGitHub a76cf95401 Chat Completions <-> Responses API Bridge Improvements (#11685)
* feat(anthropic/passthrough): pass dynamic api key/api base params to litellm.completion

allows calls to work with config.yaml

* fix(responses_api/transformation): fix passing dynamic params to responses api from .completion()

Allows responses api to work with config.yaml

* fix(langfuse.py): fix responses api usage logging to langfuse

* refactor(litellm_logging.py): add more generic solution for responses api usage logging

ensures it works across all logging integrations

* fix(litellm_logging.py): patch for anthropic messages not returning a pydantic object

it should ideally return a pydantic object, which would simplify checks and reduce errors

* fix(handler.py): correctly bubble up empty choices errors to litellm.completion

causes downstream errors as it is expected there is at least one choice set

* fix(response_metadata.py): allow model_info to be none

* fix(litellm_logging.py): copy object before mutating

* fix: fix lint check
2025-06-12 22:28:35 -07:00
7947139913 [Feat] MCP expose streamable https endpoint for LiteLLM Proxy (#11645)
* feat - add https mcp support

* fixes for MCP http integration

* fix code QA

* bump mcp dep

* test_mcp_server_manager_https_server

* test mcp server https

* fix linting error

* bump mcp in poetry

* fix import streamablehttp_client

* fix streamablehttp_client

* fix streamablehttp_client

* add streamablehttp_client

* add simple https server

* working mounted app

* working HTTPS mcp streamable

* fix code QA check

* feat: add MCP Server

* fix - init just as fastapi app

* add LITELLM_MCP_SERVER_DESCRIPTION

* fix importing / init litellm app

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

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

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

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update server.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fixes based on review + code check

* fix linting

* test_streamable_http_mcp_handler_mock

* fix python 3.13 install

* fix deps test

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-12 16:32:04 -07:00
Cole McIntoshandGitHub 6b9754e2aa Merge pull request #11642 from colesmcintosh/mistral-reasoning
Enhance Mistral model support with reasoning capabilities
2025-06-12 16:42:53 -06:00
Thiago SalvatoreandGitHub fab24fae1a fix: Do not add default model on tag based-routing when valid tag (#11454)
* Do not add default when valid tagged model

* Use default models when no tag matches

* Add unit tests
2025-06-12 13:18:42 -07:00
Cole McIntosh cb5ffa9776 Enhance Mistral chat transformation to preserve content types
- Updated the `_add_reasoning_system_prompt_if_needed` method to maintain the original format of list content when prepending the reasoning prompt.
- Adjusted tests to verify that both string and list content types are correctly handled, ensuring the reasoning prompt is added without altering the content structure.
2025-06-12 11:28:40 -06:00
Cole McIntosh 5d6b8618cd Refactor Mistral chat transformation to handle list content
- Updated the `_add_reasoning_system_prompt_if_needed` method to convert list content to strings before prepending the reasoning prompt.
- Adjusted tests to verify that system messages with list content are correctly transformed into strings, ensuring original content is preserved.
2025-06-12 11:23:29 -06:00
Cole McIntosh bee41c1961 Update Mistral documentation and enhance reasoning prompt handling
- Revised the reasoning support indicators in the Mistral model documentation for clarity.
- Improved the `_add_reasoning_system_prompt_if_needed` method to handle both string and list content types for system messages, ensuring the reasoning prompt is correctly prepended.
- Added a new test case to verify the functionality of adding the reasoning system prompt when the existing content is a list.
2025-06-12 11:17:48 -06:00
Cole McIntoshandGitHub c5f91b9d77 Merge branch 'BerriAI:main' into mistral-reasoning 2025-06-12 11:04:57 -06:00
Krish DholakiaandGitHub 369922ef90 Convert scientific notation str to int + Bubble up azure content filter results (#11655)
* fix(utils.py): convert stringified numbers to numbers

Closes https://github.com/BerriAI/litellm/issues/11266

* fix(convert_dict_to_model_response_object/): bubble up azure content_filter_results

* fix: fix linting error

* fix: fix linting errors

* fix(types/utils.py): ensure choices is correctly set

* fix: delete field if not set

* fix: expand scope of choicelogprobs value
2025-06-11 23:07:22 -07:00