mirror of
https://github.com/Aider-AI/aider.git
synced 2025-06-01 02:05:00 +00:00
Improved summarization split logic
This commit is contained in:
parent
ea87a350c2
commit
7eab7b54b8
1 changed files with 8 additions and 4 deletions
|
@ -26,14 +26,15 @@ class ChatSummary:
|
||||||
return sized
|
return sized
|
||||||
|
|
||||||
def summarize(self, messages, depth=0):
|
def summarize(self, messages, depth=0):
|
||||||
if len(messages) <= 4 or depth > 5:
|
|
||||||
return self.summarize_all(messages)
|
|
||||||
|
|
||||||
sized = self.tokenize(messages)
|
sized = self.tokenize(messages)
|
||||||
total = sum(tokens for tokens, _msg in sized)
|
total = sum(tokens for tokens, _msg in sized)
|
||||||
if total <= self.max_tokens:
|
if total <= self.max_tokens and depth == 0:
|
||||||
return messages
|
return messages
|
||||||
|
|
||||||
|
min_split = 4
|
||||||
|
if len(messages) <= min_split or depth > 3:
|
||||||
|
return self.summarize_all(messages)
|
||||||
|
|
||||||
tail_tokens = 0
|
tail_tokens = 0
|
||||||
split_index = len(messages)
|
split_index = len(messages)
|
||||||
half_max_tokens = self.max_tokens // 2
|
half_max_tokens = self.max_tokens // 2
|
||||||
|
@ -51,6 +52,9 @@ class ChatSummary:
|
||||||
while messages[split_index - 1]["role"] != "assistant" and split_index > 1:
|
while messages[split_index - 1]["role"] != "assistant" and split_index > 1:
|
||||||
split_index -= 1
|
split_index -= 1
|
||||||
|
|
||||||
|
if split_index <= min_split:
|
||||||
|
return self.summarize_all(messages)
|
||||||
|
|
||||||
head = messages[:split_index]
|
head = messages[:split_index]
|
||||||
tail = messages[split_index:]
|
tail = messages[split_index:]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue