From 51a72b497b662071284bcbb34967fe8b052d2844 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Sat, 8 Mar 2025 17:19:58 -0800 Subject: [PATCH] refactor: move reasoning effort logic into Model class method --- aider/main.py | 9 ++------- aider/models.py | 9 +++++++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/aider/main.py b/aider/main.py index 5a083623b..725ae9b33 100644 --- a/aider/main.py +++ b/aider/main.py @@ -773,14 +773,9 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F editor_edit_format=args.editor_edit_format, ) - # add --reasoning-effort cli param + # Set reasoning effort if specified if args.reasoning_effort is not None: - # move this into a Model.set_reasoning_effort() method. ai! - if not getattr(main_model, "extra_params", None): - main_model.extra_params = {} - if "extra_body" not in main_model.extra_params: - main_model.extra_params["extra_body"] = {} - main_model.extra_params["extra_body"]["reasoning_effort"] = args.reasoning_effort + main_model.set_reasoning_effort(args.reasoning_effort) if args.copy_paste and args.edit_format is None: if main_model.edit_format in ("diff", "whole"): diff --git a/aider/models.py b/aider/models.py index 92d248f25..0b2ffc10c 100644 --- a/aider/models.py +++ b/aider/models.py @@ -582,6 +582,15 @@ class Model(ModelSettings): map_tokens = max(map_tokens, 1024) return map_tokens + def set_reasoning_effort(self, effort): + """Set the reasoning effort parameter for models that support it""" + if effort is not None: + if not self.extra_params: + self.extra_params = {} + if "extra_body" not in self.extra_params: + self.extra_params["extra_body"] = {} + self.extra_params["extra_body"]["reasoning_effort"] = effort + def is_deepseek_r1(self): name = self.name.lower() if "deepseek" not in name: