refactor: move reasoning effort logic into Model class method

This commit is contained in:
Paul Gauthier (aider) 2025-03-08 17:19:58 -08:00
parent d6e57dd194
commit 51a72b497b
2 changed files with 11 additions and 7 deletions

View file

@ -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"):

View file

@ -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: