mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-28 16:25:00 +00:00
refactor: Move ChatChunks class to its own file
This commit is contained in:
parent
07a939e0da
commit
9928d5269b
1 changed files with 53 additions and 0 deletions
|
@ -0,0 +1,53 @@
|
|||
from dataclasses import dataclass, field
|
||||
from typing import List
|
||||
|
||||
|
||||
@dataclass
|
||||
class ChatChunks:
|
||||
system: List = field(default_factory=list)
|
||||
examples: List = field(default_factory=list)
|
||||
done: List = field(default_factory=list)
|
||||
repo: List = field(default_factory=list)
|
||||
readonly_files: List = field(default_factory=list)
|
||||
chat_files: List = field(default_factory=list)
|
||||
cur: List = field(default_factory=list)
|
||||
reminder: List = field(default_factory=list)
|
||||
|
||||
def all_messages(self):
|
||||
return (
|
||||
self.system
|
||||
+ self.examples
|
||||
+ self.readonly_files
|
||||
+ self.repo
|
||||
+ self.done
|
||||
+ self.chat_files
|
||||
+ self.cur
|
||||
+ self.reminder
|
||||
)
|
||||
|
||||
def add_cache_control_headers(self):
|
||||
if self.examples:
|
||||
self.add_cache_control(self.examples)
|
||||
else:
|
||||
self.add_cache_control(self.system)
|
||||
|
||||
if self.readonly_files:
|
||||
self.add_cache_control(self.readonly_files)
|
||||
else:
|
||||
self.add_cache_control(self.repo)
|
||||
|
||||
self.add_cache_control(self.chat_files)
|
||||
|
||||
def add_cache_control(self, messages):
|
||||
if not messages:
|
||||
return
|
||||
|
||||
content = messages[-1]["content"]
|
||||
if type(content) is str:
|
||||
content = dict(
|
||||
type="text",
|
||||
text=content,
|
||||
)
|
||||
content["cache_control"] = {"type": "ephemeral"}
|
||||
|
||||
messages[-1]["content"] = [content]
|
Loading…
Add table
Add a link
Reference in a new issue