Changes were made to litellm_proxy_extras (schema.prisma, utils.py, migrations)
but version was not bumped, causing CI publish job to fail.
This commit bumps the version from 0.4.27 to 0.4.28 in all required files:
- litellm-proxy-extras/pyproject.toml
- requirements.txt
- pyproject.toml
Co-authored-by: shin-bot-litellm <shin-bot-litellm@users.noreply.github.com>
hosted_vllm no longer uses the OpenAI client, so these tests
that mock the OpenAI client are not applicable to hosted_vllm.
Removes hosted_vllm from:
- test_openai_compatible_custom_api_base
- test_openai_compatible_custom_api_video
This fixes the failing litellm_mapped_enterprise_tests (metrics/logging) job.
Recent commits added new labels to several Prometheus metrics (model_id, client_ip, user_agent)
but the test assertions weren't fully updated to expect these new labels.
Tests fixed:
- test_async_post_call_failure_hook
- test_async_log_failure_event
- test_increment_token_metrics
- test_log_failure_fallback_event
- test_set_latency_metrics
- test_set_llm_deployment_success_metrics
Labels added to test assertions:
- model_id for token metrics (litellm_tokens_metric, litellm_input_tokens_metric, litellm_output_tokens_metric)
- model_id for latency metrics (litellm_llm_api_latency_metric)
- model_id for remaining requests/tokens metrics
- model_id for fallback metrics
- model_id for overhead latency metric
- client_ip and user_agent for deployment failure/total/success responses
- client_ip and user_agent for proxy failed/total requests metrics
- files/main.py: rename uuid import to uuid_module to avoid conflict with router import
- integrations/opentelemetry.py: add fallback for callback_name to ensure str type
- llms/gemini/files/transformation.py: add type annotation for params dict
- proxy/management_endpoints/key_management_endpoints.py: add null check for prisma_client
The condition `value and isinstance(value, dict)` fails for empty dicts
because `{}` is falsy in Python. Users commonly pass `web_search_options={}`
to enable Nova grounding without specifying additional options.
Changed the condition to `isinstance(value, dict)` which correctly handles
both empty and non-empty dicts.
Fixes failing tests:
- test_bedrock_nova_grounding_async
- test_bedrock_nova_grounding_request_transformation
- test_bedrock_nova_grounding_web_search_options_non_streaming
- test_bedrock_nova_grounding_with_function_tools
The DataDog LLM Obs logger was checking for DD_API_KEY and DD_SITE
before checking if agent mode (LITELLM_DD_AGENT_HOST) was configured.
In agent mode, the DataDog agent handles authentication, so these
environment variables are not required.
This fix moves the agent mode check first, and only validates
DD_API_KEY and DD_SITE when using direct API mode.
Fixes test_datadog_llm_obs_agent_configuration and
test_datadog_llm_obs_agent_no_api_key_ok
Replace direct AsyncHTTPHandler instantiation with get_async_httpx_client
to avoid +500ms latency per request from creating new async clients.
Added httpxSpecialProvider.UI for UI-related HTTP requests like logo downloads.
* Add async_post_call_response_headers_hook to CustomLogger (#20070)
Allow CustomLogger callbacks to inject custom HTTP response headers
into streaming, non-streaming, and failure responses via a new
async_post_call_response_headers_hook method.
* async_post_call_response_headers_hook
---------
Co-authored-by: michelligabriele <gabriele.michelli@icloud.com>