diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index b3e7c4e4f..0f1e2f54b 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -901,6 +901,5 @@ class Coder: def check_model_availability(main_model): available_models = openai.Model.list() - print(available_models) model_ids = [model.id for model in available_models["data"]] return main_model.name in model_ids diff --git a/aider/models/openrouter.py b/aider/models/openrouter.py index e52f9bbbc..11e0bc323 100644 --- a/aider/models/openrouter.py +++ b/aider/models/openrouter.py @@ -7,7 +7,17 @@ class OpenRouterModel(Model): self.name = name self.edit_format = "diff" self.use_repo_map = True - self.max_context_tokens = 1024 * 8 # TODO: figure out proper encodings for non openai models self.tokenizer = tiktoken.get_encoding("cl100k_base") + + available_models = openai.Model.list().data + found = next((details for details in available_models if details.get('id') == name), None) + + if found: + self.max_context_tokens = int(found.context_length) + self.prompt_price = float(found.get('pricing').get('prompt')) * 1000 + self.completion_price = float(found.get('pricing').get('completion')) * 1000 + + else: + raise ValueError('invalid openrouter model for {name}')