Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions litellm/model_prices_and_context_window_backup.json
Original file line number Diff line number Diff line change
Expand Up @@ -21276,6 +21276,7 @@
"supports_image_size": false
},
"gemini/gemini-2.5-flash-image": {
"supports_reasoning": false,
"cache_read_input_token_cost": 3e-08,
"deprecation_date": "2026-10-02",
"input_cost_per_audio_token": 1e-06,
Expand Down Expand Up @@ -21327,6 +21328,7 @@
"supports_image_size": false
},
"gemini/gemini-3-pro-image": {
"supports_reasoning": false,
"input_cost_per_image": 0.0011,
"input_cost_per_token": 2e-06,
"input_cost_per_token_batches": 1e-06,
Expand Down Expand Up @@ -21370,6 +21372,7 @@
"supports_reasoning": false
},
"gemini/gemini-3-pro-image-preview": {
"supports_reasoning": false,
"deprecation_date": "2026-06-25",
"input_cost_per_image": 0.0011,
"input_cost_per_token": 2e-06,
Expand Down Expand Up @@ -21414,6 +21417,7 @@
"web_search_billing_unit": "per_query"
},
"gemini/gemini-3.1-flash-image": {
"supports_reasoning": false,
"input_cost_per_token": 5e-07,
"input_cost_per_token_batches": 2.5e-07,
"litellm_provider": "gemini",
Expand Down Expand Up @@ -21456,6 +21460,7 @@
"web_search_billing_unit": "per_query"
},
"gemini/gemini-3.1-flash-image-preview": {
"supports_reasoning": false,
"deprecation_date": "2026-06-25",
"input_cost_per_token": 5e-07,
"input_cost_per_token_batches": 2.5e-07,
Expand Down Expand Up @@ -40899,6 +40904,7 @@
"supports_tool_choice": true
},
"vertex_ai/gemini-2.5-flash-image": {
"supports_reasoning": false,
"deprecation_date": "2026-10-02",
"cache_read_input_token_cost": 3e-08,
"input_cost_per_audio_token": 1e-06,
Expand Down Expand Up @@ -40945,6 +40951,7 @@
"supports_image_size": false
},
"vertex_ai/gemini-3-pro-image": {
"supports_reasoning": false,
"deprecation_date": "2027-05-28",
"input_cost_per_image": 0.0011,
"input_cost_per_token": 2e-06,
Expand All @@ -40962,6 +40969,7 @@
"source": "https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-pro-image"
},
"vertex_ai/gemini-3-pro-image-preview": {
"supports_reasoning": false,
"input_cost_per_image": 0.0011,
"input_cost_per_token": 2e-06,
"input_cost_per_token_batches": 1e-06,
Expand All @@ -40978,6 +40986,7 @@
"source": "https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-pro-image"
},
"vertex_ai/gemini-3.1-flash-image": {
"supports_reasoning": false,
"deprecation_date": "2027-05-28",
"input_cost_per_image": 0.00056,
"input_cost_per_token": 5e-07,
Expand All @@ -40993,6 +41002,7 @@
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#gemini-models"
},
"vertex_ai/gemini-3.1-flash-image-preview": {
"supports_reasoning": false,
"input_cost_per_image": 0.00056,
"input_cost_per_token": 5e-07,
"litellm_provider": "vertex_ai-language-models",
Expand Down
10 changes: 10 additions & 0 deletions model_prices_and_context_window.json
Original file line number Diff line number Diff line change
Expand Up @@ -21276,6 +21276,7 @@
"supports_image_size": false
},
"gemini/gemini-2.5-flash-image": {
"supports_reasoning": false,
"cache_read_input_token_cost": 3e-08,
"deprecation_date": "2026-10-02",
"input_cost_per_audio_token": 1e-06,
Expand Down Expand Up @@ -21327,6 +21328,7 @@
"supports_image_size": false
},
"gemini/gemini-3-pro-image": {
"supports_reasoning": false,
"input_cost_per_image": 0.0011,
"input_cost_per_token": 2e-06,
"input_cost_per_token_batches": 1e-06,
Expand Down Expand Up @@ -21370,6 +21372,7 @@
"supports_reasoning": false
},
"gemini/gemini-3-pro-image-preview": {
"supports_reasoning": false,
"deprecation_date": "2026-06-25",
"input_cost_per_image": 0.0011,
"input_cost_per_token": 2e-06,
Expand Down Expand Up @@ -21414,6 +21417,7 @@
"web_search_billing_unit": "per_query"
},
"gemini/gemini-3.1-flash-image": {
"supports_reasoning": false,
"input_cost_per_token": 5e-07,
"input_cost_per_token_batches": 2.5e-07,
"litellm_provider": "gemini",
Expand Down Expand Up @@ -21456,6 +21460,7 @@
"web_search_billing_unit": "per_query"
},
"gemini/gemini-3.1-flash-image-preview": {
"supports_reasoning": false,
"deprecation_date": "2026-06-25",
"input_cost_per_token": 5e-07,
"input_cost_per_token_batches": 2.5e-07,
Expand Down Expand Up @@ -40899,6 +40904,7 @@
"supports_tool_choice": true
},
"vertex_ai/gemini-2.5-flash-image": {
"supports_reasoning": false,
"deprecation_date": "2026-10-02",
"cache_read_input_token_cost": 3e-08,
"input_cost_per_audio_token": 1e-06,
Expand Down Expand Up @@ -40945,6 +40951,7 @@
"supports_image_size": false
},
"vertex_ai/gemini-3-pro-image": {
"supports_reasoning": false,
"deprecation_date": "2027-05-28",
"input_cost_per_image": 0.0011,
"input_cost_per_token": 2e-06,
Expand All @@ -40962,6 +40969,7 @@
"source": "https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-pro-image"
},
"vertex_ai/gemini-3-pro-image-preview": {
"supports_reasoning": false,
"input_cost_per_image": 0.0011,
"input_cost_per_token": 2e-06,
"input_cost_per_token_batches": 1e-06,
Expand All @@ -40978,6 +40986,7 @@
"source": "https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-pro-image"
},
"vertex_ai/gemini-3.1-flash-image": {
"supports_reasoning": false,
"deprecation_date": "2027-05-28",
"input_cost_per_image": 0.00056,
"input_cost_per_token": 5e-07,
Expand All @@ -40993,6 +41002,7 @@
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#gemini-models"
},
"vertex_ai/gemini-3.1-flash-image-preview": {
"supports_reasoning": false,
"input_cost_per_image": 0.00056,
"input_cost_per_token": 5e-07,
"litellm_provider": "vertex_ai-language-models",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -680,3 +680,45 @@ def test_imagen_get_complete_url(self):
assert "us-central1" in url
assert "imagegeneration@006" in url
assert "predict" in url

class TestVertexAIImageModelsSupportsReasoning:
"""Vertex AI Gemini image models must not inherit reasoning support.

Image generation endpoints reject reasoning_effort with a 400. The
vertex_ai/ entries were missing an explicit supports_reasoning: false,
causing them to silently inherit True from the provider-level fallback.
"""

MODELS = [
"vertex_ai/gemini-2.5-flash-image",
"vertex_ai/gemini-3-pro-image-preview",
"vertex_ai/gemini-3-pro-image",
"vertex_ai/gemini-3.1-flash-image-preview",
"vertex_ai/gemini-3.1-flash-image",
"gemini/gemini-3-pro-image-preview",
"gemini/gemini-3-pro-image",
"gemini/gemini-3.1-flash-image-preview",
"gemini/gemini-3.1-flash-image",
]

def test_supports_reasoning_is_false_in_cost_map(self):
"""supports_reasoning must be explicitly False in the cost map for all image models."""
from litellm.litellm_core_utils.get_model_cost_map import GetModelCostMap

cost_map = GetModelCostMap.load_local_model_cost_map()
for model in self.MODELS:
assert model in cost_map, f"{model} not found in cost map"
assert cost_map[model].get("supports_reasoning") is False, (
f"{model}: expected supports_reasoning=False, "
f"got {cost_map[model].get('supports_reasoning')!r}"
)

def test_supports_reasoning_returns_false(self):
"""litellm.supports_reasoning() must return False for all affected image models."""
import litellm

for model in self.MODELS:
result = litellm.supports_reasoning(model=model)
assert result is False, (
f"{model}: litellm.supports_reasoning() returned {result!r}, expected False"
)
Loading