Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 06b5a50

Browse files
committed
Create functionality to delete memory DBs
1 parent afc93fd commit 06b5a50

20 files changed

Lines changed: 51 additions & 63 deletions

agent/memory.py

Lines changed: 8 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def __init__(self, model_name="gpt-3.5-turbo", temperature=0, resume=False, retr
2828
client = chromadb.Client(settings)
2929

3030
self.embeddings = OpenAIEmbeddings()
31-
31+
self.client = client
3232
self.plansdb = client.get_or_create_collection(name="plansdb", embedding_function=self.embeddings)
3333
self.codedb = client.get_or_create_collection(name="codedb", embedding_function=self.embeddings)
3434

@@ -142,52 +142,10 @@ def _add_new_plan(self, info):
142142
)
143143
return f"Added plan for user query \"{user_query}\""
144144

145-
#OLD CODE#
146-
147-
def _generate_program_name(self, program_description, program_code):
148-
#TODO: Add example for generating descriptions
149-
description_generator = guidance('''
150-
{{#system~}}
151-
You are a helpful assistant that generates a terse program name of for a piece of Unity C# code.
152-
{{~/system}}
153-
{{#user~}}
154-
The program description is {{program_description}}
155-
The code is {{program_code}}
156-
{{~/user}}
157-
{{#assistant~}}
158-
{{gen "description" temperature=0}}
159-
{{~/assistant}}
160-
''')
161-
resp = description_generator(program_description=program_description, program_code=program_code)
162-
return resp["description"]
163-
164-
def _add_new_strategy(self):
165-
pass
166-
167-
168-
#get_code if following old vibes
169-
'''
170-
def get_code(self, task):
171-
task_embedding = OpenAIEmbeddings().embed_query(task)
172-
k = min(self.vectordb._collection.count(), self.retrieve_top_k)
173-
if k==0:
174-
return []
175-
print(f"Retrieving {k} code chunks")
176-
code_chunks = self.vectordb.query(
177-
query_embeddings=task_embedding,
178-
n_results=k,
179-
#where={"metadata_field": "is_equal_to_this"}, #TODO: Filtering by subtasks
180-
#where_document={"$contains":"search_string"}
181-
include=["metadatas"]
182-
)
183-
return code_chunks["metadatas"][0] #TODO: Not sure if this syntax is correct
184-
'''
185-
186-
#old instructions for generating prog description
187-
'''
188-
1) Do not mention the function name.
189-
2) There might be some helper functions before the main function, but you only need to describe the main function.
190-
3) Try to summarize the function in no more than 6 sentences.
191-
4) Your response should be a single line of text.
192-
5) If the content is not related to unity, return "NA"
193-
'''
145+
def _delete_plan_memory(self):
146+
self.client.delete_collection(name="plansdb")
147+
return "Deleted plan memory."
148+
149+
def _delete_code_memory(self):
150+
self.client.delete_collection(name="codedb")
151+
return "Deleted code memory."

gui/pages/2🧠 Memory.py

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import streamlit as st
2-
from dotenv import load_dotenv
3-
from time import time as now
42
import os
53
import sys
4+
import shutil
65
sys.path.append("/Users/allyne/Documents/GitHub/Unity-Agent/")
76
import agent as A
87

@@ -58,6 +57,41 @@ def get_plan(user_query):
5857
st.markdown(f"- User Query: {p['user_query']}\n\n- Plan: {p['plan']}")
5958
st.write("====================")
6059

60+
def delete_plan_memory():
61+
folders_to_clear = ["../memory/ckpt/plans"]
62+
files_to_clear = ["../init_memory/Plan.csv"]
63+
delete_files_and_folders(files_to_clear, folders_to_clear)
64+
memorymanager= A.MemoryAgent()
65+
memorymanager._delete_plan_memory()
66+
st.write("Plan memory cleared!")
67+
68+
def delete_code_memory():
69+
folders_to_clear = ["../memory/ckpt/code"]
70+
files_to_clear = ["../init_memory/Code.csv"]
71+
delete_files_and_folders(files_to_clear, folders_to_clear)
72+
memorymanager= A.MemoryAgent()
73+
memorymanager._delete_code_memory()
74+
st.write("Code memory cleared!")
75+
76+
def delete_files_and_folders(files_to_clear, folders_to_clear):
77+
for file_path in files_to_clear:
78+
try:
79+
os.remove(file_path)
80+
st.success(f"Deleted: {file_path}")
81+
except FileNotFoundError:
82+
st.warning(f"File Not Found: {file_path}")
83+
except Exception as e:
84+
st.error(f"Error: {str(e)}")
85+
86+
for folder in folders_to_clear:
87+
try:
88+
shutil.rmtree(folder)
89+
st.success(f"Deleted all files in: {folder}")
90+
except FileNotFoundError:
91+
st.warning(f"Folder Not Found: {folder}")
92+
except Exception as e:
93+
st.error(f"Error: {str(e)}")
94+
6195
st.title("Testing memory agent 🧠")
6296

6397
st.write("1. Initialize memory on planning")
@@ -98,17 +132,14 @@ def get_plan(user_query):
98132
st.write("6. Add new code to memory")
99133
st.write("Yet to implement")
100134

101-
st.write("====Old stuff====")
102-
get = st.text_area(f"Get memory here:", key="get")
103-
if st.button("Run", key="runget"):
135+
st.write("7. Delete plan memory")
136+
if st.button("Delete", key="deleteplanbutton"):
104137
with st.spinner("Processing"):
105-
get_code(get)
138+
delete_plan_memory()
106139
st.success("Process done!")
107140

108-
st.write("For this portion, please pass in a string consisting of user query, program code, category, compile, and ideal separated by ,")
109-
add = st.text_area(f"Add a task to the memory here", key="add")
110-
if st.button("Run", key="runadd"):
141+
st.write("8. Delete code memory")
142+
if st.button("Delete", key="deletecodebutton"):
111143
with st.spinner("Processing"):
112-
add_code(add)
113-
st.success("Process done!")
114-
144+
delete_code_memory()
145+
st.success("Process done!")
0 Bytes
Binary file not shown.
171 Bytes
Binary file not shown.

memory/ckpt/code/QueryCode.cs

Lines changed: 0 additions & 1 deletion
This file was deleted.
Binary file not shown.
-759 Bytes
Binary file not shown.
Binary file not shown.
Binary file not shown.
-141 KB
Binary file not shown.

0 commit comments

Comments
 (0)