From ec95cd2d7643cd77f023fef46f79d63630be2cac Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 27 Nov 2023 10:55:36 -0800 Subject: [PATCH] allow longer conversation histories for models with larger context windows --- aider/coders/base_coder.py | 6 +++++- aider/models/model.py | 1 + aider/models/openai.py | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index 550ba38c8..8aa4ecba1 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -189,7 +189,11 @@ class Coder: for fname in self.get_inchat_relative_files(): self.io.tool_output(f"Added {fname} to the chat.") - self.summarizer = ChatSummary(models.Model.weak_model()) + self.summarizer = ChatSummary( + models.Model.weak_model(), + self.main_model.max_chat_history_tokens, + ) + self.summarizer_thread = None self.summarized_done_messages = [] diff --git a/aider/models/model.py b/aider/models/model.py index 7522c97e0..9b1a3daab 100644 --- a/aider/models/model.py +++ b/aider/models/model.py @@ -8,6 +8,7 @@ class Model: edit_format = None max_context_tokens = 0 tokenizer = None + max_chat_history_tokens = 1024 always_available = False use_repo_map = False diff --git a/aider/models/openai.py b/aider/models/openai.py index 75f2808c9..e6674d769 100644 --- a/aider/models/openai.py +++ b/aider/models/openai.py @@ -40,12 +40,15 @@ class OpenAIModel(Model): if tokens == 8: self.prompt_price = 0.03 self.completion_price = 0.06 + self.max_chat_history_tokens = 1024 elif tokens == 32: self.prompt_price = 0.06 self.completion_price = 0.12 + self.max_chat_history_tokens = 3 * 1024 elif tokens == 128: self.prompt_price = 0.01 self.completion_price = 0.03 + self.max_chat_history_tokens = 4 * 1024 return @@ -56,12 +59,15 @@ class OpenAIModel(Model): if self.name == "gpt-3.5-turbo-1106": self.prompt_price = 0.001 self.completion_price = 0.002 + self.max_chat_history_tokens = 3 * 1024 elif tokens == 4: self.prompt_price = 0.0015 self.completion_price = 0.002 + self.max_chat_history_tokens = 1024 elif tokens == 16: self.prompt_price = 0.003 self.completion_price = 0.004 + self.max_chat_history_tokens = 2 * 1024 return