From c5cb4689be862e2ece0473cb82124602cefdfd97 Mon Sep 17 00:00:00 2001 From: codephreak <140855987+Professor-Codephreak@users.noreply.github.com> Date: Sat, 12 Aug 2023 19:28:32 -0700 Subject: [PATCH] Create memory.py #memory.py import os import pathlib import time import ujson # Define the constant for memory folder MEMORY_FOLDER = "./memory/" class DialogEntry: def __init__(self, instruction, response): self.instruction = instruction self.response = response def save_conversation_memory(memory): # Create the folder if it doesn't exist if not pathlib.Path(MEMORY_FOLDER).exists(): pathlib.Path(MEMORY_FOLDER).mkdir(parents=True) # Generate a unique filename based on the timestamp timestamp = str(int(time.time())) # Use the current timestamp as the filename filename = f"memory_{timestamp}.json" memory_file_path = pathlib.Path(MEMORY_FOLDER).joinpath(filename) # Format the conversation memory as a list of DialogEntry objects memory_records = [DialogEntry(dialog[0], dialog[1]) for dialog in memory] # Convert DialogEntry objects to dictionaries memory_records_dicts = [{"instruction": entry.instruction, "response": entry.response} for entry in memory_records] # Save the memory to the JSON file using ujson with open(memory_file_path, "w", encoding="utf-8") as file: ujson.dump(memory_records_dicts, file, ensure_ascii=False, indent=2) return memory_file_path def save_conversation_memory(memory): # Create the folder if it doesn't exist if not pathlib.Path(MEMORY_FOLDER).exists(): pathlib.Path(MEMORY_FOLDER).mkdir(parents=True) # Generate a unique filename based on the timestamp timestamp = str(int(time.time())) # Use the current timestamp as the filename filename = f"memory_{timestamp}.json" file_path = pathlib.Path(MEMORY_FOLDER).joinpath(filename) # Format the conversation memory as a list of dictionaries formatted_memory = [{"instruction": dialog[0], "response": dialog[1]} for dialog in memory] # Save the memory to the JSON file using ujson with open(file_path, "w", encoding="utf-8") as file: ujson.dump(formatted_memory, file, ensure_ascii=False, indent=2) return file_path --- memory.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 memory.py diff --git a/memory.py b/memory.py new file mode 100644 index 0000000..ea950f5 --- /dev/null +++ b/memory.py @@ -0,0 +1,54 @@ +#memory.py +import os +import pathlib +import time +import ujson + +# Define the constant for memory folder +MEMORY_FOLDER = "./memory/" + +class DialogEntry: + def __init__(self, instruction, response): + self.instruction = instruction + self.response = response + +def save_conversation_memory(memory): + # Create the folder if it doesn't exist + if not pathlib.Path(MEMORY_FOLDER).exists(): + pathlib.Path(MEMORY_FOLDER).mkdir(parents=True) + + # Generate a unique filename based on the timestamp + timestamp = str(int(time.time())) # Use the current timestamp as the filename + filename = f"memory_{timestamp}.json" + memory_file_path = pathlib.Path(MEMORY_FOLDER).joinpath(filename) + + # Format the conversation memory as a list of DialogEntry objects + memory_records = [DialogEntry(dialog[0], dialog[1]) for dialog in memory] + + # Convert DialogEntry objects to dictionaries + memory_records_dicts = [{"instruction": entry.instruction, "response": entry.response} for entry in memory_records] + + # Save the memory to the JSON file using ujson + with open(memory_file_path, "w", encoding="utf-8") as file: + ujson.dump(memory_records_dicts, file, ensure_ascii=False, indent=2) + + return memory_file_path + +def save_conversation_memory(memory): + # Create the folder if it doesn't exist + if not pathlib.Path(MEMORY_FOLDER).exists(): + pathlib.Path(MEMORY_FOLDER).mkdir(parents=True) + + # Generate a unique filename based on the timestamp + timestamp = str(int(time.time())) # Use the current timestamp as the filename + filename = f"memory_{timestamp}.json" + file_path = pathlib.Path(MEMORY_FOLDER).joinpath(filename) + + # Format the conversation memory as a list of dictionaries + formatted_memory = [{"instruction": dialog[0], "response": dialog[1]} for dialog in memory] + + # Save the memory to the JSON file using ujson + with open(file_path, "w", encoding="utf-8") as file: + ujson.dump(formatted_memory, file, ensure_ascii=False, indent=2) + + return file_path