diff --git a/pr_agent/algo/__init__.py b/pr_agent/algo/__init__.py index 0de83548..db2da0eb 100644 --- a/pr_agent/algo/__init__.py +++ b/pr_agent/algo/__init__.py @@ -28,6 +28,8 @@ MAX_TOKENS = { 'gpt-4.1-mini-2025-04-14': 1047576, 'gpt-4.1-nano': 1047576, 'gpt-4.1-nano-2025-04-14': 1047576, + 'gpt-5': 200000, + 'gpt-5-2025-08-07': 200000, 'o1-mini': 128000, # 128K, but may be limited by config.max_model_tokens 'o1-mini-2024-09-12': 128000, # 128K, but may be limited by config.max_model_tokens 'o1-preview': 128000, # 128K, but may be limited by config.max_model_tokens diff --git a/pr_agent/algo/ai_handlers/litellm_ai_handler.py b/pr_agent/algo/ai_handlers/litellm_ai_handler.py index ed77daf6..84911937 100644 --- a/pr_agent/algo/ai_handlers/litellm_ai_handler.py +++ b/pr_agent/algo/ai_handlers/litellm_ai_handler.py @@ -288,6 +288,21 @@ class LiteLLMAIHandler(BaseAiHandler): messages[1]["content"] = [{"type": "text", "text": messages[1]["content"]}, {"type": "image_url", "image_url": {"url": img_path}}] + thinking_kwargs_gpt5 = None + if model.startswith('gpt-5'): + if model.endswith('_thinking'): + thinking_kwargs_gpt5 = { + "reasoning_effort": 'low', + "allowed_openai_params": ["reasoning_effort"], + } + else: + thinking_kwargs_gpt5 = { + "reasoning_effort": 'minimal', + "allowed_openai_params": ["reasoning_effort"], + } + model = model.replace('_thinking', '') # remove _thinking suffix + + # Currently, some models do not support a separate system and user prompts if model in self.user_message_only_models or get_settings().config.custom_reasoning_model: user = f"{system}\n\n\n{user}" @@ -310,6 +325,11 @@ class LiteLLMAIHandler(BaseAiHandler): "api_base": self.api_base, } + if thinking_kwargs_gpt5: + kwargs.update(thinking_kwargs_gpt5) + if 'temperature' in kwargs: + del kwargs['temperature'] + # Add temperature only if model supports it if model not in self.no_support_temperature_models and not get_settings().config.custom_reasoning_model: # get_logger().info(f"Adding temperature with value {temperature} to model {model}.") diff --git a/pr_agent/settings/configuration.toml b/pr_agent/settings/configuration.toml index d1963f01..ab04f463 100644 --- a/pr_agent/settings/configuration.toml +++ b/pr_agent/settings/configuration.toml @@ -6,8 +6,8 @@ [config] # models -model="o4-mini" -fallback_models=["gpt-4.1"] +model="gpt-5-2025-08-07" +fallback_models=["o4-mini"] #model_reasoning="o4-mini" # dedicated reasoning model for self-reflection #model_weak="gpt-4o" # optional, a weaker model to use for some easier tasks # CLI diff --git a/requirements.txt b/requirements.txt index 18f6e383..6e3f6f60 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,7 @@ google-cloud-aiplatform==1.38.0 google-generativeai==0.8.3 google-cloud-storage==2.10.0 Jinja2==3.1.2 -litellm==1.70.4 +litellm==1.75.2 loguru==0.7.2 msrest==0.7.1 openai>=1.55.3