mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-31 17:55:01 +00:00
refactor: Update repo map token handling and improve warning message
This commit is contained in:
parent
a9cf438100
commit
d48008e13d
4 changed files with 15 additions and 6 deletions
|
@ -287,7 +287,7 @@ def get_parser(default_config_files, git_root):
|
|||
"--map-tokens",
|
||||
type=int,
|
||||
default=None,
|
||||
help="Suggested number of tokens to use for repo map, use 0 to disable (default: 1024)",
|
||||
help="Suggested number of tokens to use for repo map, use 0 to disable",
|
||||
)
|
||||
group.add_argument(
|
||||
"--map-refresh",
|
||||
|
|
|
@ -231,10 +231,10 @@ class Coder:
|
|||
if map_tokens > 0:
|
||||
refresh = self.repo_map.refresh
|
||||
lines.append(f"Repo-map: using {map_tokens} tokens, {refresh} refresh")
|
||||
max_map_tokens = 2048
|
||||
max_map_tokens = self.main_model.get_repo_map_tokens() * 2
|
||||
if map_tokens > max_map_tokens:
|
||||
lines.append(
|
||||
f"Warning: map-tokens > {max_map_tokens} is not recommended as too much"
|
||||
f"Warning: map-tokens > {max_map_tokens} is not recommended. Too much"
|
||||
" irrelevant code can confuse LLMs."
|
||||
)
|
||||
else:
|
||||
|
|
|
@ -636,8 +636,6 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F
|
|||
|
||||
analytics.event("launched")
|
||||
|
||||
# ai
|
||||
|
||||
if args.gui and not return_coder:
|
||||
if not check_streamlit_install(io):
|
||||
analytics.event("exit", reason="Streamlit not installed")
|
||||
|
@ -850,6 +848,8 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F
|
|||
)
|
||||
args.stream = False
|
||||
|
||||
map_tokens = args.map_tokens or main_model.get_repo_map_tokens()
|
||||
|
||||
try:
|
||||
coder = Coder.create(
|
||||
main_model=main_model,
|
||||
|
@ -862,7 +862,7 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F
|
|||
auto_commits=args.auto_commits,
|
||||
dirty_commits=args.dirty_commits,
|
||||
dry_run=args.dry_run,
|
||||
map_tokens=args.map_tokens,
|
||||
map_tokens=map_tokens,
|
||||
verbose=args.verbose,
|
||||
stream=args.stream,
|
||||
use_git=args.git,
|
||||
|
|
|
@ -1177,6 +1177,15 @@ class Model(ModelSettings):
|
|||
|
||||
return res
|
||||
|
||||
def get_repo_map_tokens(self):
|
||||
map_tokens = 1024
|
||||
max_inp_tokens = self.info.get("max_input_tokens")
|
||||
if max_inp_tokens:
|
||||
map_tokens = max_inp_tokens / 8
|
||||
map_tokens = min(map_tokens, 4096)
|
||||
max_tokens = max(map_tokens, 1024)
|
||||
return map_tokens
|
||||
|
||||
|
||||
def register_models(model_settings_fnames):
|
||||
files_loaded = []
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue