Mirrowel commited on
Commit
c3b2e49
·
1 Parent(s): 54f0f2c

feat: Add default thinking parameter handling for specific Gemini models

Browse files
src/rotator_library/client.py CHANGED
@@ -27,6 +27,7 @@ class RotatingClient:
27
  def __init__(self, api_keys: Dict[str, List[str]], max_retries: int = 2, usage_file_path: str = "key_usage.json"):
28
  os.environ["LITELLM_LOG"] = "ERROR"
29
  litellm.set_verbose = False
 
30
  if not api_keys:
31
  raise ValueError("API keys dictionary cannot be empty.")
32
  self.api_keys = api_keys
@@ -139,6 +140,10 @@ class RotatingClient:
139
  else:
140
  # If conversion returns None, remove it to avoid sending empty settings
141
  del litellm_kwargs["safety_settings"]
 
 
 
 
142
 
143
  if "gemma-3" in model and "messages" in litellm_kwargs:
144
  new_messages = [
 
27
  def __init__(self, api_keys: Dict[str, List[str]], max_retries: int = 2, usage_file_path: str = "key_usage.json"):
28
  os.environ["LITELLM_LOG"] = "ERROR"
29
  litellm.set_verbose = False
30
+ litellm.drop_params = True
31
  if not api_keys:
32
  raise ValueError("API keys dictionary cannot be empty.")
33
  self.api_keys = api_keys
 
140
  else:
141
  # If conversion returns None, remove it to avoid sending empty settings
142
  del litellm_kwargs["safety_settings"]
143
+
144
+ if provider == "gemini":
145
+ provider_instance = self._provider_instances[provider]
146
+ provider_instance.handle_thinking_parameter(litellm_kwargs, model)
147
 
148
  if "gemma-3" in model and "messages" in litellm_kwargs:
149
  new_messages = [
src/rotator_library/providers/gemini_provider.py CHANGED
@@ -50,3 +50,10 @@ class GeminiProvider(ProviderInterface):
50
  })
51
 
52
  return gemini_settings
 
 
 
 
 
 
 
 
50
  })
51
 
52
  return gemini_settings
53
+
54
+ def handle_thinking_parameter(self, payload: Dict[str, Any], model: str):
55
+ """
56
+ Adds a default thinking parameter for specific Gemini models if not already present (To show reasoning output).
57
+ """
58
+ if model in ["gemini/gemini-2.5-pro", "gemini/gemini-2.5-flash"] and "thinking" not in payload:
59
+ payload["thinking"] = {"type": "enabled", "budget_tokens": -1}