mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-25 14:55:00 +00:00
final details on --map-tokens
This commit is contained in:
parent
1f9e9be64d
commit
ef22f44d19
2 changed files with 21 additions and 15 deletions
|
@ -63,6 +63,8 @@ class Coder:
|
|||
self.auto_commits = auto_commits
|
||||
self.dirty_commits = dirty_commits
|
||||
self.dry_run = dry_run
|
||||
self.pretty = pretty
|
||||
self.show_diffs = show_diffs
|
||||
|
||||
if pretty:
|
||||
self.console = Console()
|
||||
|
@ -86,21 +88,21 @@ class Coder:
|
|||
|
||||
if self.repo:
|
||||
rel_repo_dir = os.path.relpath(self.repo.git_dir, os.getcwd())
|
||||
self.io.tool_output("Using git repo:", rel_repo_dir)
|
||||
capabilities_msg = f"Using git repo {rel_repo_dir}, "
|
||||
else:
|
||||
self.io.tool_error("No suitable git repo, will not automatically commit edits.")
|
||||
capabilities_msg = "Not using git, "
|
||||
self.find_common_root()
|
||||
|
||||
self.pretty = pretty
|
||||
self.show_diffs = show_diffs
|
||||
|
||||
if self.verbose:
|
||||
rm_io = io
|
||||
else:
|
||||
rm_io = None
|
||||
|
||||
rm_io = io if self.verbose else None
|
||||
self.repo_map = RepoMap(map_tokens, self.root, self.main_model, rm_io)
|
||||
|
||||
if self.repo_map.has_ctags:
|
||||
capabilities_msg += "using ctags."
|
||||
else:
|
||||
capabilities_msg += "not using ctags."
|
||||
|
||||
self.io.tool_output(capabilities_msg)
|
||||
|
||||
def find_common_root(self):
|
||||
if self.abs_fnames:
|
||||
common_prefix = os.path.commonpath(list(self.abs_fnames))
|
||||
|
|
|
@ -58,9 +58,6 @@ class RepoMap:
|
|||
IDENT_CACHE_DIR = ".aider.ident.cache"
|
||||
TAGS_CACHE_DIR = ".aider.tags.cache"
|
||||
|
||||
# 1/4 of gpt-4's context window
|
||||
max_map_tokens = 512
|
||||
|
||||
def __init__(self, map_tokens=1024, root=None, main_model="gpt-4", io=None):
|
||||
self.io = io
|
||||
|
||||
|
@ -71,7 +68,11 @@ class RepoMap:
|
|||
self.load_ident_cache()
|
||||
self.load_tags_cache()
|
||||
|
||||
self.map_tokens = map_tokens
|
||||
self.max_map_tokens = map_tokens
|
||||
if map_tokens > 0:
|
||||
self.has_ctags = self.check_for_ctags()
|
||||
else:
|
||||
self.has_ctags = False
|
||||
|
||||
self.tokenizer = tiktoken.encoding_for_model(main_model)
|
||||
|
||||
|
@ -96,10 +97,13 @@ class RepoMap:
|
|||
return repo_content
|
||||
|
||||
def choose_files_listing(self, chat_files, other_files):
|
||||
if self.max_map_tokens <= 0:
|
||||
return
|
||||
|
||||
if not other_files:
|
||||
return
|
||||
|
||||
if self.use_ctags:
|
||||
if self.has_ctags:
|
||||
files_listing = self.get_ranked_tags_map(chat_files, other_files)
|
||||
num_tokens = self.token_count(files_listing)
|
||||
if self.io:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue