mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-30 09:14:59 +00:00
refactor: Split summarize method and add model metadata handling
This commit is contained in:
parent
73bc0f6258
commit
dff544cd5d
6 changed files with 38 additions and 3 deletions
|
@ -26,6 +26,12 @@ class ChatSummary:
|
||||||
return sized
|
return sized
|
||||||
|
|
||||||
def summarize(self, messages, depth=0):
|
def summarize(self, messages, depth=0):
|
||||||
|
messages = self.summarize_real(messages)
|
||||||
|
if messages and messages[-1]["role"] != "assistant":
|
||||||
|
messages.append(dict(role="assistant", content="Ok."))
|
||||||
|
return messages
|
||||||
|
|
||||||
|
def summarize_real(self, messages, depth=0):
|
||||||
if not self.models:
|
if not self.models:
|
||||||
raise ValueError("No models available for summarization")
|
raise ValueError("No models available for summarization")
|
||||||
|
|
||||||
|
@ -88,7 +94,7 @@ class ChatSummary:
|
||||||
if summary_tokens + tail_tokens < self.max_tokens:
|
if summary_tokens + tail_tokens < self.max_tokens:
|
||||||
return result
|
return result
|
||||||
|
|
||||||
return self.summarize(result, depth + 1)
|
return self.summarize_real(result, depth + 1)
|
||||||
|
|
||||||
def summarize_all(self, messages):
|
def summarize_all(self, messages):
|
||||||
content = ""
|
content = ""
|
||||||
|
|
|
@ -625,6 +625,7 @@ MODEL_SETTINGS = [
|
||||||
ModelSettings(
|
ModelSettings(
|
||||||
"deepseek/deepseek-reasoner",
|
"deepseek/deepseek-reasoner",
|
||||||
"diff",
|
"diff",
|
||||||
|
weak_model_name="deepseek/deepseek-chat",
|
||||||
editor_model_name="deepseek/deepseek-chat",
|
editor_model_name="deepseek/deepseek-chat",
|
||||||
editor_edit_format="editor-diff",
|
editor_edit_format="editor-diff",
|
||||||
use_repo_map=True,
|
use_repo_map=True,
|
||||||
|
|
|
@ -1,2 +1,18 @@
|
||||||
{
|
{
|
||||||
|
"deepseek-reasoner": {
|
||||||
|
"max_tokens": 8192,
|
||||||
|
"max_input_tokens": 128000,
|
||||||
|
"max_output_tokens": 8192,
|
||||||
|
"input_cost_per_token": 0.00000055,
|
||||||
|
"input_cost_per_token_cache_hit": 0.00000014,
|
||||||
|
"cache_read_input_token_cost": 0.00000014,
|
||||||
|
"cache_creation_input_token_cost": 0.0,
|
||||||
|
"output_cost_per_token": 0.00000219,
|
||||||
|
"litellm_provider": "deepseek",
|
||||||
|
"mode": "chat",
|
||||||
|
//"supports_function_calling": true,
|
||||||
|
"supports_assistant_prefill": true,
|
||||||
|
//"supports_tool_choice": true,
|
||||||
|
"supports_prompt_caching": true
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import time
|
||||||
from aider.dump import dump # noqa: F401
|
from aider.dump import dump # noqa: F401
|
||||||
from aider.exceptions import LiteLLMExceptions
|
from aider.exceptions import LiteLLMExceptions
|
||||||
from aider.llm import litellm
|
from aider.llm import litellm
|
||||||
|
from aider.utils import format_messages
|
||||||
|
|
||||||
# from diskcache import Cache
|
# from diskcache import Cache
|
||||||
|
|
||||||
|
@ -30,7 +31,9 @@ def sanity_check_messages(messages):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if last_role and role == last_role:
|
if last_role and role == last_role:
|
||||||
return False
|
print(format_messages(messages))
|
||||||
|
# import sys ; sys.exit()
|
||||||
|
raise ValueError("Messages don't properly alternate user/assistant")
|
||||||
|
|
||||||
last_role = role
|
last_role = role
|
||||||
last_non_system_role = role
|
last_non_system_role = role
|
||||||
|
@ -47,6 +50,8 @@ def send_completion(
|
||||||
temperature=0,
|
temperature=0,
|
||||||
extra_params=None,
|
extra_params=None,
|
||||||
):
|
):
|
||||||
|
# sanity_check_messages(messages)
|
||||||
|
|
||||||
kwargs = dict(
|
kwargs = dict(
|
||||||
model=model_name,
|
model=model_name,
|
||||||
messages=messages,
|
messages=messages,
|
||||||
|
|
|
@ -112,7 +112,7 @@ def format_messages(messages, title=None):
|
||||||
output.append(f"{title.upper()} {'*' * 50}")
|
output.append(f"{title.upper()} {'*' * 50}")
|
||||||
|
|
||||||
for msg in messages:
|
for msg in messages:
|
||||||
output.append("")
|
output.append("-------")
|
||||||
role = msg["role"].upper()
|
role = msg["role"].upper()
|
||||||
content = msg.get("content")
|
content = msg.get("content")
|
||||||
if isinstance(content, list): # Handle list content (e.g., image messages)
|
if isinstance(content, list): # Handle list content (e.g., image messages)
|
||||||
|
|
|
@ -16,6 +16,7 @@ from types import SimpleNamespace
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
import git
|
import git
|
||||||
|
import importlib_resources
|
||||||
import lox
|
import lox
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import prompts
|
import prompts
|
||||||
|
@ -737,6 +738,10 @@ def run_test_real(
|
||||||
chat_history_file=history_fname,
|
chat_history_file=history_fname,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
resource_metadata = importlib_resources.files("aider.resources").joinpath("model-metadata.json")
|
||||||
|
model_metadata_files_loaded = models.register_litellm_models([resource_metadata])
|
||||||
|
dump(model_metadata_files_loaded)
|
||||||
|
|
||||||
# weak_model_name = model_name
|
# weak_model_name = model_name
|
||||||
weak_model_name = None
|
weak_model_name = None
|
||||||
|
|
||||||
|
@ -747,6 +752,8 @@ def run_test_real(
|
||||||
editor_edit_format=editor_edit_format,
|
editor_edit_format=editor_edit_format,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
dump(main_model.max_chat_history_tokens)
|
||||||
|
|
||||||
if num_ctx:
|
if num_ctx:
|
||||||
if not main_model.extra_params:
|
if not main_model.extra_params:
|
||||||
main_model.extra_params = {}
|
main_model.extra_params = {}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue