From b654a16b48fffa22a46273b828cd2e2fe9157917 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Mon, 5 Aug 2024 16:26:04 -0300 Subject: [PATCH] Accept repo maps within 10% of token budget --- aider/repomap.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/aider/repomap.py b/aider/repomap.py index f8f412622..11e71b2ee 100644 --- a/aider/repomap.py +++ b/aider/repomap.py @@ -403,23 +403,23 @@ class RepoMap: sample_tokens = self.token_count(sample_tree) if sample_tokens > 0: - estimated_tags = int((max_map_tokens / sample_tokens) * sample_size) + estimated_tags = int((max_map_tokens / sample_tokens) * sample_size * 1.5) middle = min(estimated_tags, num_tags) else: middle = min(max_map_tokens // 50, num_tags) - dump(max_map_tokens, sample_size, sample_tokens, estimated_tags, middle) - while lower_bound <= upper_bound: - dump(lower_bound, middle, upper_bound) - tree = self.to_tree(ranked_tags[:middle], chat_rel_fnames) num_tokens = self.token_count(tree) - if num_tokens < max_map_tokens and num_tokens > best_tree_tokens: + pct_err = abs(num_tokens - max_map_tokens) / max_map_tokens + if (num_tokens <= max_map_tokens and num_tokens > best_tree_tokens) or pct_err < 0.1: best_tree = tree best_tree_tokens = num_tokens + if pct_err < 0.1: + break + if num_tokens < max_map_tokens: lower_bound = middle + 1 else: