diff --git a/docs/my-website/docs/providers/gemini.md b/docs/my-website/docs/providers/gemini.md index 1803c3afac8..5d07a144514 100644 --- a/docs/my-website/docs/providers/gemini.md +++ b/docs/my-website/docs/providers/gemini.md @@ -63,10 +63,13 @@ response = completion( LiteLLM translates OpenAI's `reasoning_effort` to Gemini's `thinking` parameter. [Code](https://github.com/BerriAI/litellm/blob/620664921902d7a9bfb29897a7b27c1a7ef4ddfb/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py#L362) +Added an additional non-OpenAI standard "disable" value for non-reasoning Gemini requests. + **Mapping** | reasoning_effort | thinking | | ---------------- | -------- | +| "disable" | "budget_tokens": 0 | | "low" | "budget_tokens": 1024 | | "medium" | "budget_tokens": 2048 | | "high" | "budget_tokens": 4096 | diff --git a/docs/my-website/docs/providers/vertex.md b/docs/my-website/docs/providers/vertex.md index df9049675a0..1d8e3085e3b 100644 --- a/docs/my-website/docs/providers/vertex.md +++ b/docs/my-website/docs/providers/vertex.md @@ -662,10 +662,13 @@ print(resp) LiteLLM translates OpenAI's `reasoning_effort` to Gemini's `thinking` parameter. [Code](https://github.com/BerriAI/litellm/blob/620664921902d7a9bfb29897a7b27c1a7ef4ddfb/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py#L362) +Added an additional non-OpenAI standard "disable" value for non-reasoning Gemini requests. + **Mapping** | reasoning_effort | thinking | | ---------------- | -------- | +| "disable" | "budget_tokens": 0 | | "low" | "budget_tokens": 1024 | | "medium" | "budget_tokens": 2048 | | "high" | "budget_tokens": 4096 | diff --git a/litellm/constants.py b/litellm/constants.py index 1cf5bef521b..48ea7d1a691 100644 --- a/litellm/constants.py +++ b/litellm/constants.py @@ -36,6 +36,9 @@ SINGLE_DEPLOYMENT_TRAFFIC_FAILURE_THRESHOLD = int( os.getenv("SINGLE_DEPLOYMENT_TRAFFIC_FAILURE_THRESHOLD", 1000) ) # Minimum number of requests to consider "reasonable traffic". Used for single-deployment cooldown logic. +DEFAULT_REASONING_EFFORT_DISABLE_THINKING_BUDGET = int( + os.getenv("DEFAULT_REASONING_EFFORT_DISABLE_THINKING_BUDGET", 0) +) DEFAULT_REASONING_EFFORT_LOW_THINKING_BUDGET = int( os.getenv("DEFAULT_REASONING_EFFORT_LOW_THINKING_BUDGET", 1024) ) diff --git a/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py b/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py index b90dc98ccf7..ba86ecf6127 100644 --- a/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py +++ b/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py @@ -26,6 +26,7 @@ import litellm.litellm_core_utils import litellm.litellm_core_utils.litellm_logging from litellm import verbose_logger from litellm.constants import ( + DEFAULT_REASONING_EFFORT_DISABLE_THINKING_BUDGET, DEFAULT_REASONING_EFFORT_HIGH_THINKING_BUDGET, DEFAULT_REASONING_EFFORT_LOW_THINKING_BUDGET, DEFAULT_REASONING_EFFORT_MEDIUM_THINKING_BUDGET, @@ -428,6 +429,11 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): "thinkingBudget": DEFAULT_REASONING_EFFORT_HIGH_THINKING_BUDGET, "includeThoughts": True, } + elif reasoning_effort == "disable": + return { + "thinkingBudget": DEFAULT_REASONING_EFFORT_DISABLE_THINKING_BUDGET, + "includeThoughts": False, + } else: raise ValueError(f"Invalid reasoning effort: {reasoning_effort}")