From c2e716ec4a71b7e4dd02eded6cbf426939c70006 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Tue, 4 Feb 2025 16:00:20 -0800 Subject: [PATCH] refactor: Change LITELLM_MODEL_DEFS from list to dict for efficient model registration --- aider/models.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/aider/models.py b/aider/models.py index 21950e527..9862b09f8 100644 --- a/aider/models.py +++ b/aider/models.py @@ -86,7 +86,7 @@ MODEL_ALIASES = { "flash": "gemini/gemini-2.0-flash-exp", } # Deferred model definitions loaded from metadata files -LITELLM_MODEL_DEFS = [] +LITELLM_MODEL_DEFS = dict() @dataclass @@ -162,6 +162,10 @@ class ModelInfoManager: pass def get_model_from_cached_json_db(self, model): + resource_data = LITELLM_MODEL_DEFS.get(model) + if resource_data: + return resource_data + if not self.content: self._update_cache() @@ -240,12 +244,6 @@ class Model(ModelSettings): self.get_editor_model(editor_model, editor_edit_format) def get_model_info(self, model): - global LITELLM_MODEL_DEFS - if LITELLM_MODEL_DEFS: - litellm._load_litellm() - for model_def in LITELLM_MODEL_DEFS: - litellm.register_model(model_def) - LITELLM_MODEL_DEFS.clear() return model_info_manager.get_model_info(model) def _copy_fields(self, source): @@ -674,7 +672,7 @@ def register_litellm_models(model_fnames): continue # Defer registration with litellm to faster path. - LITELLM_MODEL_DEFS.append(model_def) + LITELLM_MODEL_DEFS.update(model_def) except Exception as e: raise Exception(f"Error loading model definition from {model_fname}: {e}")