mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-25 23:05:00 +00:00
wip
This commit is contained in:
parent
f0ec6cb36a
commit
4e348102bf
2 changed files with 29 additions and 4 deletions
|
@ -4,6 +4,7 @@ import hashlib
|
|||
import json
|
||||
import os
|
||||
import sys
|
||||
import threading
|
||||
import time
|
||||
import traceback
|
||||
from json.decoder import JSONDecodeError
|
||||
|
@ -205,6 +206,8 @@ class Coder:
|
|||
self.repo.add_new_files(fname for fname in fnames if not Path(fname).is_dir())
|
||||
|
||||
self.summarizer = ChatSummary(self.main_model.name)
|
||||
self.summarizer_thread = None
|
||||
self.summarized_done_messages = None
|
||||
|
||||
# validate the functions jsonschema
|
||||
if self.functions:
|
||||
|
@ -358,11 +361,33 @@ class Coder:
|
|||
|
||||
self.last_keyboard_interrupt = now
|
||||
|
||||
def summarize_end(self):
|
||||
if self.summarizer_thread is None:
|
||||
return
|
||||
|
||||
self.summarizer_thread.join()
|
||||
self.summarizer_thread = None
|
||||
|
||||
self.done_messages = self.summarized_done_messages
|
||||
self.summarized_done_messages = None
|
||||
|
||||
def summarize_start(self):
|
||||
if not self.summarizer.too_big(self.done_messages):
|
||||
return
|
||||
|
||||
assert self.summarizer_thread is None
|
||||
assert self.summarized_done_messages is None
|
||||
self.summarizer_thread = threading.Thread(target=self.summarize_worker)
|
||||
|
||||
def summarize_worker(self):
|
||||
print("working!")
|
||||
self.summarized_done_messages = self.summarizer.summarize(self.done_messages)
|
||||
print("done!")
|
||||
|
||||
def move_back_cur_messages(self, message):
|
||||
self.summarize_end()
|
||||
self.done_messages += self.cur_messages
|
||||
if self.summarizer.too_big(self.done_messages):
|
||||
self.io.tool_output("Summarizing chat history...")
|
||||
self.done_messages = self.summarizer.summarize(self.done_messages)
|
||||
self.summarize_start()
|
||||
|
||||
if message:
|
||||
self.done_messages += [
|
||||
|
|
|
@ -9,7 +9,7 @@ from aider.sendchat import simple_send_with_retries
|
|||
|
||||
|
||||
class ChatSummary:
|
||||
def __init__(self, model=models.GPT35.name, max_tokens=1024):
|
||||
def __init__(self, model=models.GPT35.name, max_tokens=128):
|
||||
self.tokenizer = tiktoken.encoding_for_model(model)
|
||||
self.max_tokens = max_tokens
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue