Commit graph

1851 commits

Author SHA1 Message Date
Krish Dholakia
ac3aa74c22
(feat) Anthropic - support Structured Outputs output_format for Claude 4.5 sonnet and Opus 4.1 + Arize Phoenix - root span logging (#16949)
* feat(anthropic/chat/transformations): for claude-4-5-sonnet and opus-4-1 support passing structured output to anthropic api

* docs: document new feature

* fix: fix output format

* fix: cleanup

* fix(transformation.py): conditionally pass in json tool call

* fix: support ARIZE_SPACE_ID instead of ARIZE_SPACE_KEY

* docs(arize_integration.md): cleanup arize docs

* feat(callback_info_helpers.tsx): allow setting arize space id via ui

* fix: fix linting error

* fix(opentelemetry.py): working arize phoenix root span tracing
2025-11-22 12:08:26 -08:00
Ishaan Jaffer
f5c8136243 fix docker model runner tests 2025-11-22 11:07:56 -08:00
Ishaan Jaffer
9ea74a1aa9 TestDockerModelRunnerIntegration 2025-11-22 10:46:12 -08:00
Alexsander Hamir
ca2a27c377
fix: add missing mock attributes in websocket and realtime tests (#16974)
- Add scope and url attributes to WebSocket mock in test_user_api_key_auth_websocket
- Add shared_realtime_ssl_context initialization in realtime handler test
2025-11-22 10:44:23 -08:00
Alexsander Hamir
9a0658084b
Fix SSL test failures due to caching and test isolation issues (#16973)
This commit fixes two critical test failures and two test isolation issues
in the SSL configuration tests.

## Critical Test Failures Fixed

### 1. test_get_ssl_configuration
**Problem:** Test was failing with assertion error that ssl.create_default_context
was never called (expected 1 call, got 0).

**Root Cause:** The get_ssl_configuration() function uses a caching mechanism
(_ssl_context_cache) to avoid creating duplicate SSL contexts with the same
configuration. When tests run in sequence, a previous test may have created an
SSL context with the same configuration (same cafile, ssl_security_level,
ssl_ecdh_curve). When this test runs, it retrieves the cached context instead
of creating a new one, so ssl.create_default_context() is never called, causing
the mock assertion to fail.

**Fix:** Clear the SSL context cache at the start of the test to ensure a fresh
context is created, allowing the mock to be called and verified.

### 2. test_ssl_ecdh_curve
**Problem:** Test was failing with assertion error that set_ecdh_curve was
never called (expected 1 call, got 0).

**Root Cause:** Same caching issue as above. Additionally, the test needed to
use a real SSLContext instance instead of a MagicMock because _create_ssl_context
calls methods like set_ciphers() and minimum_version that require a real context.

**Fix:**
- Clear the SSL context cache at the start of the test
- Use a real SSLContext instance and patch set_ecdh_curve on it specifically
- Added explanatory comment about why a real context is needed

## Test Isolation Issues Fixed

### 3. test_ssl_security_level
**Problem:** Test was failing because it expected LiteLLMAiohttpTransport but
got httpx.AsyncHTTPTransport instead.

**Root Cause:** Test isolation issue. Other tests in the file (test_force_ipv4_transport,
test_aiohttp_disabled_transport) set litellm.disable_aiohttp_transport = True
but don't restore the original value. When this test runs after those tests,
aiohttp transport is disabled, causing it to use httpx transport instead.

**Fix:** Explicitly enable aiohttp transport at the start of the test and restore
the original value in a finally block, ensuring the test works regardless of
test execution order.

### 4. test_ssl_verification_with_aiohttp_transport
**Problem:** Same as above - expected LiteLLMAiohttpTransport but got
httpx.AsyncHTTPTransport.

**Root Cause:** Same test isolation issue - aiohttp transport disabled by
previous tests.

**Fix:** Same approach - explicitly enable aiohttp transport and restore
original value in finally block.

## Why These Fixes Work

1. **Cache clearing:** By clearing _ssl_context_cache before each test, we
   ensure that get_ssl_configuration() creates a fresh SSL context, allowing
   mocks to be properly called and verified.

2. **Test isolation:** By saving and restoring the disable_aiohttp_transport
   setting, tests are independent of each other and work correctly regardless
   of execution order.

These are minimal, targeted fixes that address the root causes without
modifying production code or affecting other functionality.
2025-11-22 10:07:30 -08:00
Ishaan Jaffer
ee758914e0 test docker model runner 2025-11-22 10:06:14 -08:00
Alexsander Hamir
eb5031da1e
[Perf] Fix bottlenecks degrading realtime endpoint performance (#16670)
* Cache realtime websocket request body

Move the realtime request payload builder out of the websocket handler and wrap it with an LRU cache so repeated connections reuse the same bytes object. This keeps the JSON formatting cost down while bounding memory usage.

* Optimize realtime websocket caching

Refactored /v1/realtime to use cached helpers for both the JSON body and query params, introduced a reusable request-scope template, and optimized header handling to avoid redundant work.

* Refine realtime websocket header handling

* Reuse websocket scope headers in auth

* Refactor realtime request body helper

Move the realtime request body formatter into proxy common utils so it can be reused across modules. Reuse it in the websocket auth flow to share LRU caching and avoid ad hoc byte builders.

* fix: revert to old pattern

The old pattern was necessary, we can just return the optimized function instead.

* Reuse SSL context for realtime

Create a shared SSLContext for OpenAI realtime websocket dials and pass it into websockets.connect so we stop re-reading verify paths on every session.

* feat: reuse shared TLS context for realtime websockets

- add `SHARED_REALTIME_SSL_CONTEXT` helper so all realtime websocket clients share the same TLS settings
- wire the shared context into OpenAI, Azure, custom HTTPX handlers, and realtime health checks
- update realtime tests to assert that the expected SSL context is passed to `websockets.connect`

This keeps TLS configuration consistent and avoids recreating SSL contexts per connection.

* Reuse HTTP SSL context for realtime

Remove the standalone realtime SSL helper, expose a shared context directly from the HTTP handler, and point all realtime websocket clients and tests to it. Add the websocket header comparison tool.

* Lazy-load shared realtime SSL context

Fix circular imports introduced by eagerly instantiating the shared TLS context. Make the HTTP handler lazily create the context and have realtime clients/tests fetch it on demand, keeping configuration consistent without breaking startup.

* add: unit test for realtime LRU caches

* fix: merge conflict with imports
2025-11-22 10:01:02 -08:00
Sameer Kankute
82dc0354ce
Litellm sameer nov 3 stable branch (#16963)
* Add openai metadata filed in the request

* Add docs related to openai metadata

* Add utils

* test_completion_openai_metadata[True]

* Added support for though signature for gemini 3 in responses api (#16872)

* Added support for though signature for gemini 3

* Update docs with all supported endpoints and cost tracking

* Added config based routing support for batches and files

* fix lint errors

* Litellm anthropic image url support (#16868)

* Add image as url support to anthropic

* fix mypy errors

* fix tests

* Fix: Populate spend_logs_metadata in batch and files endpoints (#16921)

* Add spend-logs-metadata to the metadata

* Add tests for spend logs metadata in batches

* use better names

* Remove support for penalty param for gemini 3 (#16907)

* Remove support for penalty param

* remove halucinated model names

* fix mypy/test errors

* fix tests

* fix too many lines error

* fix too many lines error

* Add config for cicd test case

* Fix final tests

* fix batch tests

* fix batch tests
2025-11-22 09:35:05 -08:00
Dima-Mediator
a0d4d0b304
Gemini models: capture image_tokens and support cost_per_output_image_token in costs calculations (#16912) 2025-11-21 19:59:24 -08:00
Ishaan Jaffer
1f36fad94b TestDockerModelRunnerIntegration 2025-11-21 17:39:33 -08:00
Ishaan Jaffer
e7a32c1e8f docker test fixes 2025-11-21 16:52:58 -08:00
Ishaan Jaffer
2226450437 test_ensure_initialize_azure_sdk_client_always_used 2025-11-21 16:15:35 -08:00
Ishaan Jaff
8e318dd06c
[Feat] New LLM Provider - Docker Model Runner (#16948)
* add DOCKER_MODEL_RUNNER

* add DockerModelRunnerChatConfig Transorm

* add docker_model_runner

* add docker_model_runner

* docs docker model runner

* add DockerModelRunnerChatConfig

* add docker_model_runner to providers

* test_completion_hits_correct_url_and_body

* fix sidebar

* TestDockerModelRunnerIntegration

* test_completion_with_custom_engine_and_host

* docs docker model runner

* docs fix
2025-11-21 16:09:32 -08:00
colinlin-stripe
f9d8eeaf8e
[stripe] gemini 3 thought signatures in tool call id (#16895)
* though signature tool call id

* [stripe] refactor and tests

* [stripe] remove md and move to factory

* [stripe] remove redudant test

* [stripe] ran black formatting

* [stripe] add thought signature docs

* [stripe] remove unused import
2025-11-21 13:44:53 -08:00
Sameer Kankute
c3143e388e
Add thought signature support to v1/messages api (#16812)
* Add thought signature support to v1/messages api

* update the thinking level handling logic

* update the thinking level handling logic

* Add streaming support

* fix intalling litellm error
2025-11-19 20:24:31 -08:00
Sebastian
cb843684b8
fix(vertex_ai): add includeThoughts=True for Gemini 3 reasoning_effort (#16838)
Gemini 3 models require 'includeThoughts: True' in the thinkingConfig to return the actual thought text. Previously, using reasoning_effort set the 'thinkingLevel' but missed the boolean flag, resulting in empty reasoning_content.

This fix:
1. Updates `_map_reasoning_effort_to_thinking_level` to include `includeThoughts: True` for low/medium/high.
2. Adds unit tests to verify the config mapping.
2025-11-19 19:14:42 -08:00
Cesar Garcia
7d5cb8ebb2
fix(gemini): Add reasoning_content to streaming responses with tools (#16854)
Fixes #16805

When using Gemini models (2.5/3.0) with streaming + tools enabled,
the reasoning_content field was missing from stream chunks, even though
thinking_blocks were present in non-streaming responses.

Changes:
- Convert thinking_blocks to reasoning_content for streaming responses
- Extract "thinking" field from each thinking_block
- Concatenate multiple thinking parts with newlines
- Assign to reasoning_content in chat_completion_message for streaming

Testing:
- Added test_streaming_chunk_with_tool_calls_includes_reasoning_content
- Test verifies reasoning_content appears with tool calls in streaming
- All 39 existing Gemini tests pass
2025-11-19 19:09:37 -08:00
Sameer Kankute
6fc7397dde
Add Vertex AI Image Edit Support (#16828)
* Add vertex ai image edit support

* Fix lint errors
2025-11-19 18:39:28 -08:00
Naki
98dd866b26
feat(github-copilot): Add Responses API support for gpt-5.1-codex model (#16845)
- Implement GithubCopilotResponsesAPIConfig for /responses endpoint
- Add support for models requiring responses API (e.g., gpt-5.1-codex)
- Auto-detect vision requests and set X-Initiator header
- Follow OpenAI Responses API compatibility pattern
- Add comprehensive unit tests (16 tests passing)

Fixes #16820
2025-11-19 13:17:19 -08:00
Sameer Kankute
29057ba6ad Added support for azure anthopic models via chat completion 2025-11-19 11:55:38 +05:30
Alan Ponnachan
b92cc2b2f9
fix(bedrock): Ensure consistent chunk IDs in Bedrock streaming responses (#16596)
* ensure consistent chunk IDs in streaming responses

* use native conversationId for consistent stream chunk IDs
2025-11-18 20:37:21 -08:00
Sameer Kankute
acf206bec6
Add Day 0 gemini-3-pro-preview support (#16719)
* Add thinking signature support for gemini

* Add docs related to thinking signature

* remove double base64 import

* fix mypy errors

* fix litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py mypy

* Add new gemini 3 model and features

* Add docs related to gemini 3

* Update gemini 3 pricing

* fix llm translation tests

* fix mapped tests
2025-11-18 09:44:45 -08:00
Andrey
4dbbec233c
Snowflake provider support: added embeddings, PAT, account_id (#15727)
* added oauth mcp to docs

* added azure ai/grok-4 model family

* Revert "added oauth mcp to docs"

This reverts commit 950b7cef44.

* fix: arize ui integration

* need to remove a file

This reverts commit d6c877b73a.

* snowflake support PAT, account_id and embeddings

* format

* test embeddings

* format

* complete test

* fix: add arize from ui

* updated clarifai functions to openai compatible (#15615)

* fix: npm build errors

* update tests

* SnowflakeBaseConfig moved to utils

* rename pat_key => api_ke

* key_type=PAT => 'pat/key'

* fix if api_key is None

* doc update

* doc update

---------

Co-authored-by: mubashir1osmani <mubashir.osmani777@gmail.com>
Co-authored-by: Mubashir Osmani <ilikewafflesomcuh@gmail.com>
Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
Co-authored-by: mogith-pn <143642606+mogith-pn@users.noreply.github.com>
2025-11-17 20:27:46 -08:00
John Lathouwers
d93e13be36
OCI Provider - Add oci_endpoint_id Parameter for OCI Dedicated Endpoints #16723 2025-11-17 19:59:34 -08:00
Ishaan Jaff
08e115ecff
[Feat] Add SSML Support for Azure Text-to-Speech (AVA) (#16747)
* detect SSML in input

* transform_text_to_speech_request

* test_litellm_speech_with_ssml_passthrough

* add Passing Raw SSML

* fix is_ssml_input
2025-11-17 15:41:22 -08:00
Sameer Kankute
a2e3b942dc
Vector store files Stable Release (#16643)
* Add support for vector store files endpoints (#16490)

* Add base code for vector store integration

* fix azure related tests and linting error

* fix mypy errors

* Add vector store files documentation

* fix mapped tests

* Add bytedance and ideogram support in fal ai (#16636)

* Add fal ai flux pro v1.1 support (#16578)

* Add fal ai flux pro v1.1 support

* Add tests and docs

---------

Co-authored-by: Ishaan Jaffer <ishaanjaffer0324@gmail.com>
2025-11-15 13:00:33 -08:00
Sameer Kankute
59d17cc468
Litellm anthropic contex management param support (#16528)
* Add support for anthropic context_management param

* Add support for anthropic context_management param

* Add context management in response

* fix review changes

---------

Co-authored-by: Ishaan Jaffer <ishaanjaffer0324@gmail.com>
2025-11-15 13:00:09 -08:00
Cesar Garcia
cc72037cec
feat(openai): Add verbosity parameter support for GPT-5 family models (#16660)
OpenAI's GPT-5 model family supports a verbosity parameter to control
the length and detail of responses. This parameter accepts three values:
'low', 'medium', or 'high'.

Changes:
- Added verbosity parameter to completion() and acompletion() signatures
- Added verbosity to DEFAULT_CHAT_COMPLETION_PARAM_VALUES in constants.py
- Added verbosity to get_optional_params() in utils.py
- Added verbosity to GPT-5 supported params list
- Updated OpenAI docs with verbosity usage examples
- Added comprehensive test for verbosity parameter

Supported models: gpt-5, gpt-5.1, gpt-5-mini, gpt-5-nano, gpt-5-codex, gpt-5-pro
2025-11-14 19:38:27 -08:00
Ishaan Jaff
8a43fbe8f7
Revert "[Feat] VertexAI - Add BGE Embeddings support (#16033)" (#16677)
This reverts commit 7133488282.
2025-11-14 17:41:06 -08:00
Cesar Garcia
0a0b5eee47
fix: Resolve pytest module name collision for test_transformation.py files (#16661)
Fixes #16613

The issue was caused by two test files having the same module name
(test_transformation.py) in different directories, which caused pytest
to fail with an import file mismatch error.

Changes:
- Renamed tests/test_litellm/llms/xai/responses/test_transformation.py
  to test_xai_responses_transformation.py
- Renamed tests/test_litellm/llms/openai_like/chat/test_transformation.py
  to test_openai_like_chat_transformation.py

Both files now have unique, descriptive names that reflect their
specific test purposes and prevent module name collisions.
2025-11-14 16:50:40 -08:00
Emerson Gomes
1dac777346
Add Vertex Kimi-K2-Thinking (#16671)
* Add Vertex Kimi-K2-Thinking

* Update model_prices_and_context_window.json

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

* Update litellm/model_prices_and_context_window_backup.json

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-14 16:49:48 -08:00
Cesar Garcia
65061bafc7
feat(openai): Add support for reasoning_effort='none' in GPT-5.1 (#16658)
* feat(openai): Add support for reasoning_effort='none' in GPT-5.1

OpenAI's GPT-5.1 introduced a new reasoning effort parameter 'none'
which replaces the previous 'minimal' setting for faster, lower-latency
responses. This is now the default setting for GPT-5.1.

Changes:
- Updated REASONING_EFFORT type to include 'none' value
- Added GPT-5.1, GPT-5-mini, and GPT-5-nano to documentation
- Updated docs to reflect 'none' as GPT-5.1's default reasoning effort
- Added test to verify reasoning_effort='none' passes through correctly

Fixes #16633

* feat(responses): Add support for reasoning_effort='none' in Responses API transformation
2025-11-14 13:41:49 -08:00
Ishaan Jaff
124ba463f8
[Feat] RunwayML - Add support for /audio/speech eleven_multilingual_v2 endpoint (#16604)
* init RunwayMLTextToSpeechConfig

* add RunwayMLTextToSpeechConfig

* add  RunwayMLTextToSpeechConfig

* test_runwayml_tts_async

* runway ml speech

* fix voices

* fix test

* docs runway lm

* add runwayml here

* fix RunwayMLTextToSpeechConfig

* test_openai_voice_mapping_to_runwayml
2025-11-13 14:32:09 -08:00
Ishaan Jaff
7133488282
[Feat] VertexAI - Add BGE Embeddings support (#16033)
* Support for Custom Vertex AI Models via PSC Endpoint with api_base (#15953)

* Support for Custom Vertex AI Models via PSC Endpoint with api_base

* Add docs related psc

* remove not needed files

* remove print statemnt

* fix mypy errors

* add TextEmbeddingBGEInput

* add VertexBGEConfig

* add BGE handling

* test_vertex_ai_bge_embedding_with_custom_api_base

* fix request transform vertex BGE

* test_vertex_ai_bge_embedding_with_custom_api_base

* tes BGE

* test_is_bge_model_detection

* docs cleanup

* handling BGE URL

* fix VertexBGEConfig

* test_vertex_ai_bge_with_endpoint_id_pattern

* docs vertex BGE

* docs

* docs fix

* fix VertexAIModelRoute

* from ..common_utils import VertexAIError, get_vertex_base_model_name
add

* fix VertexAIGemmaModels

* fix get_vertex_base_model_name

* test_vertex_ai_bge_psc_endpoint_url_construction

---------

Co-authored-by: Sameer Kankute <sameer@berri.ai>
2025-11-13 12:41:00 -08:00
Sameer Kankute
018bd2e039
Add Gemini image edit support (#16430)
* Add gemini image edit support

* fix lint errors

* fix lint errors

* fix lint errors

* Add docs
2025-11-12 18:48:27 -08:00
Ishaan Jaff
b30439257b
[Feat] Add RunwayML Img Gen API support (#16557)
* TestRunwaymlImageGeneration

* fix RUNWAYML

* rename

* fix rename

* get_runwayml_image_generation_config

* get_runwayml_image_generation_config

* TestRunwaymlImageGeneration

* add RUNWAYML_POLLING_TIMEOUT

* fix rnwayml transform img gen

* runwayml_image_cost_calculator

* runwayml_image_cost_calculator

* docs runwayml

* fix runwayML polling

* test_get_first_default_fallback
2025-11-12 18:20:14 -08:00
Sameer Kankute
517eb0ee10
Use safe loading of creds (#16479) 2025-11-11 19:16:29 -08:00
Alan Ponnachan
8cb610b8b2
Sanitize null token values in provider responses (#16493) 2025-11-11 19:08:00 -08:00
Ishaan Jaff
50b5cf5215
[Feat] New Provider - Add RunwayML Provider for video generations (#16505)
* add RUNWAYML

* init folders

* add RunwayMLVideoConfig

* add RUNWAYML_DEFAULT_API_VERSION

* add RunwayMLVideoConfig

* fix getting status

* add async_transform_video_content_response

* add runwayml transform_video_content_response

* fix config.yaml

* add runwayml docs

* add runwayml to videos

* docs runwayml video gen

* add new models to model cost map

* TestRunwayMLVideoTransformation

* fix linting errors
2025-11-11 18:48:23 -08:00
yellowsubmarine372
b6dbd4fa28
fix: apply provided timeout value to ClientTimeout.total (#16395) 2025-11-10 19:37:42 -08:00
Sameer Kankute
6cab77f53f
Added thinking streaming support for mistral (#16434) 2025-11-10 18:41:45 -08:00
Ishaan Jaffer
8c1dd78c13 fix imports 2025-11-08 18:01:32 -08:00
Sameer Kankute
86d73c918c
Adds support for returning Azure Content Policy error information when exceptions from Azure OpenAI occur (#16231)
* add provider_specific_fields to ContentPolicyViolationError

* use provider_specific_fields in ProxyException

* update openai_exception_handler

* fix use exception checker for content policy violation azure

* add AzureOpenAIExceptionMapping

* test_azure_with_content_safety_error

* Accessing Provider-Specific Error Details

* TestExceptionCheckers

* unit test got provider_specific_fields=

* add clear types for error dict

* fix test_azure_with_content_safety_error

---------

Co-authored-by: Ishaan Jaff <ishaanjaffer0324@gmail.com>
2025-11-08 16:04:36 -08:00
Sameer Kankute
e037d9315d
Add Vertex and Gemini Videos API with Cost Tracking + UI support (#16323)
* Use video id for videos api

* remove mock code

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

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

* remove print statements

* Update video prefix for 'video_'

* Add veo with openai videos unified specs

* Add videos testing to UI

* remove mock code

* Remove not need ui changes:

* Fix mypy errors related to gemini

* fix test_transform_video_create_request

* Add vertex ai veo config

* Add vertex ai veo config

* Add cost tracking for gemini and add optional param passing

* fix bugs related to vertex ai veo

* Add Gemini Veo Video Generation in Openai Videos Unified Spec (#16229)

* Add veo with openai videos unified specs

* Add videos testing to UI

* remove mock code

* Remove not need ui changes:

* Fix mypy errors related to gemini

* fix test_transform_video_create_request

* Add contant video duration for gemini and vertex

* Fix litellm_mapped_tests tests

* fix azure videos issue

* Added doc for videos vertex ai

* fix seconds param error

* fix lint errors

* test_transform_video_create_response_cost_tracking_no_duration

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Ishaan Jaffer <ishaanjaffer0324@gmail.com>
2025-11-08 16:03:51 -08:00
Sameer Kankute
6fb0a8fc58
Added xai responses support (#16391)
* Added xai responses support

* add the xai provider config above

* remove init file

* remove init file

* Fix f string lint error

---------

Co-authored-by: Ishaan Jaffer <ishaanjaffer0324@gmail.com>
2025-11-08 12:30:09 -08:00
Alan Ponnachan
2408e09f6a
feat: Add support for Anthropic Memory Tool (#16115)
* add memory tool in anthropic.py

* add memory tool test

* make format

* update transformation

* adding memory to hosted tools

* add test

* make format
2025-11-07 19:27:28 -08:00
Ishaan Jaffer
a8533dc5c4 Revert "Added xai responses support (#16310)"
This reverts commit ee50f09e73.
2025-11-07 18:39:38 -08:00
Ishaan Jaffer
736b6b3e1e TestVertexAIRerankTransform 2025-11-07 18:18:48 -08:00
Emerson Gomes
940a72ceb0
Add Vertex MiniMAX m2 (#16373) 2025-11-07 14:27:42 -08:00
Sameer Kankute
94e1a1ecac
Use vertex creds passed via arguments (#16266) 2025-11-06 19:35:22 -08:00