feat: Add --junior-edit-format argument and plumb it into Model()

This commit is contained in:
Paul Gauthier (aider) 2024-09-25 11:09:56 -07:00
parent 6d19abf7ec
commit 888d60d472
3 changed files with 17 additions and 2 deletions

View file

@ -196,6 +196,12 @@ def get_parser(default_config_files, git_root):
default=None,
help="Specify the model to use for junior tasks (default depends on --model)",
)
group.add_argument(
"--junior-edit-format",
metavar="JUNIOR_EDIT_FORMAT",
default=None,
help="Specify the edit format for the junior model (default: depends on junior model)",
)
group.add_argument(
"--show-model-warnings",
action=argparse.BooleanOptionalAction,

View file

@ -534,7 +534,10 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F
args.model = "claude-3-5-sonnet-20240620"
main_model = models.Model(
args.model, weak_model=args.weak_model, junior_model=args.junior_model
args.model,
weak_model=args.weak_model,
junior_model=args.junior_model,
junior_edit_format=args.junior_edit_format
)
if args.verbose:

View file

@ -597,11 +597,12 @@ def get_model_info(model):
class Model(ModelSettings):
def __init__(self, model, weak_model=None, junior_model=None):
def __init__(self, model, weak_model=None, junior_model=None, junior_edit_format=None):
self.name = model
self.max_chat_history_tokens = 1024
self.weak_model = None
self.junior_model = None
self.junior_edit_format = junior_edit_format
self.info = self.get_model_info(model)
@ -716,6 +717,11 @@ class Model(ModelSettings):
weak_model=False,
junior_model=False,
)
# Use the provided junior_edit_format if available, otherwise use the ModelSettings value
if self.junior_edit_format is None:
self.junior_edit_format = self.junior_edit_format or self.junior_model.edit_format
return self.junior_model
def tokenizer(self, text):