Add system reminder to messages if available

This commit is contained in:
Your Name 2024-07-28 18:51:27 -03:00 committed by Your Name (aider)
parent 4d4bfba965
commit 3d603f3579
3 changed files with 20 additions and 13 deletions

View file

@ -123,8 +123,7 @@ class Coder:
kwargs = use_kwargs kwargs = use_kwargs
for coder_class in coders.__all__: for coder in coders.__all__:
coder = getattr(coders, coder_class)
if hasattr(coder, 'edit_format') and coder.edit_format == edit_format: if hasattr(coder, 'edit_format') and coder.edit_format == edit_format:
res = coder(main_model, io, **kwargs) res = coder(main_model, io, **kwargs)
res.original_kwargs = dict(kwargs) res.original_kwargs = dict(kwargs)
@ -779,7 +778,9 @@ class Coder:
dict(role="assistant", content="Ok."), dict(role="assistant", content="Ok."),
] ]
main_sys += "\n" + self.fmt_system_prompt(self.gpt_prompts.system_reminder) if self.gpt_prompts.system_reminder:
main_sys += "\n" + self.fmt_system_prompt(self.gpt_prompts.system_reminder)
messages = [ messages = [
dict(role="system", content=main_sys), dict(role="system", content=main_sys),
] ]
@ -789,9 +790,13 @@ class Coder:
messages += self.done_messages messages += self.done_messages
messages += self.get_files_messages() messages += self.get_files_messages()
reminder_message = [
dict(role="system", content=self.fmt_system_prompt(self.gpt_prompts.system_reminder)), if self.gpt_prompts.system_reminder:
] reminder_message = [
dict(role="system", content=self.fmt_system_prompt(self.gpt_prompts.system_reminder)),
]
else:
reminder_message = []
# TODO review impact of token count on image messages # TODO review impact of token count on image messages
messages_tokens = self.main_model.token_count(messages) messages_tokens = self.main_model.token_count(messages)
@ -810,7 +815,7 @@ class Coder:
max_input_tokens = self.main_model.info.get("max_input_tokens") max_input_tokens = self.main_model.info.get("max_input_tokens")
# Add the reminder prompt if we still have room to include it. # Add the reminder prompt if we still have room to include it.
if max_input_tokens is None or total_tokens < max_input_tokens: if max_input_tokens is None or total_tokens < max_input_tokens and self.gpt_prompts.system_reminder:
if self.main_model.reminder_as_sys_msg: if self.main_model.reminder_as_sys_msg:
messages += reminder_message messages += reminder_message
elif final["role"] == "user": elif final["role"] == "user":
@ -1520,3 +1525,9 @@ class Coder:
# files changed, move cur messages back behind the files messages # files changed, move cur messages back behind the files messages
# self.move_back_cur_messages(self.gpt_prompts.files_content_local_edits) # self.move_back_cur_messages(self.gpt_prompts.files_content_local_edits)
return True return True
def get_edits(self, mode="update"):
return []
def apply_edits(self, edits):
return

View file

@ -1,4 +1,6 @@
class CoderPrompts: class CoderPrompts:
system_reminder = ""
files_content_gpt_edits = "I committed the changes with git hash {hash} & commit msg: {message}" files_content_gpt_edits = "I committed the changes with git hash {hash} & commit msg: {message}"
files_content_gpt_edits_no_repo = "I updated the files." files_content_gpt_edits_no_repo = "I updated the files."

View file

@ -10,9 +10,3 @@ from .chat_prompts import ChatPrompts
class ChatCoder(Coder): class ChatCoder(Coder):
edit_format = "chat" edit_format = "chat"
gpt_prompts = ChatPrompts() gpt_prompts = ChatPrompts()
def get_edits(self, mode="update"):
return
def apply_edits(self, edits):
return