30 lines
824 B
Python
30 lines
824 B
Python
import json
|
|
from pathlib import Path
|
|
|
|
|
|
class MemoryBuffer:
|
|
def __init__(self, max_len=3, path="memory.json"):
|
|
self.path = Path(path)
|
|
self.max_len = max_len
|
|
self.memory = []
|
|
self.load()
|
|
|
|
def add(self, user_input, bot_reply):
|
|
self.memory.append(f"User: {user_input}")
|
|
self.memory.append(f"Bot: {bot_reply}")
|
|
if len(self.memory) > self.max_len * 2:
|
|
self.memory = self.memory[-self.max_len * 2:]
|
|
self.save()
|
|
|
|
def get_context(self):
|
|
return self.memory.copy()
|
|
|
|
def save(self):
|
|
with open(self.path, "w", encoding="utf-8") as f:
|
|
json.dump(self.memory, f)
|
|
|
|
def load(self):
|
|
if self.path.exists():
|
|
with open(self.path, "r", encoding="utf-8") as f:
|
|
self.memory = json.load(f)
|