Spaces:
Paused
Paused
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}
|