From cd84cc0d3ede4960dc871a9df39022d2e2be8b09 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sun, 5 May 2024 18:58:16 -0700 Subject: [PATCH] refactored summarize_chat_history_markdown --- aider/history.py | 60 ++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/aider/history.py b/aider/history.py index f8ea7cdd4..173e042ef 100644 --- a/aider/history.py +++ b/aider/history.py @@ -1,6 +1,6 @@ import argparse -from aider import prompts +from aider import models, prompts from aider.dump import dump # noqa: F401 from aider.sendchat import simple_send_with_retries @@ -90,41 +90,47 @@ class ChatSummary: return [dict(role="user", content=summary)] + def summarize_chat_history_markdown(self, text): + messages = [] + assistant = [] + for line in text.splitlines(keepends=True): + if line.startswith("# "): + continue + if line.startswith(">"): + continue + if line.startswith("#### /"): + continue + + if line.startswith("#### "): + if assistant: + assistant = "".join(assistant) + if assistant.strip(): + messages.append(dict(role="assistant", content=assistant)) + assistant = [] + + content = line[5:] + if content.strip() and content.strip() != "": + messages.append(dict(role="user", content=line[5:])) + continue + + assistant.append(line) + + summary = self.summarize(messages[-40:]) + return summary + def main(): parser = argparse.ArgumentParser() parser.add_argument("filename", help="Markdown file to parse") args = parser.parse_args() + model = models.Model("gpt-3.5-turbo") + summarizer = ChatSummary(model) + with open(args.filename, "r") as f: text = f.read() - messages = [] - assistant = [] - for line in text.splitlines(keepends=True): - if line.startswith("# "): - continue - if line.startswith(">"): - continue - if line.startswith("#### /"): - continue - - if line.startswith("#### "): - if assistant: - assistant = "".join(assistant) - if assistant.strip(): - messages.append(dict(role="assistant", content=assistant)) - assistant = [] - - content = line[5:] - if content.strip() and content.strip() != "": - messages.append(dict(role="user", content=line[5:])) - continue - - assistant.append(line) - - summarizer = ChatSummary("gpt-3.5-turbo", weak_model=False) - summary = summarizer.summarize(messages[-40:]) + summary = summarizer.summarize_chat_history_markdown(text) dump(summary)