Spaces:
Sleeping
Sleeping
| # long_term_memory.py - Persistent Code Memory | |
| import json | |
| import hashlib | |
| from datetime import datetime | |
| class LongTermMemory: | |
| def __init__(self, file_path="code_memory.json"): | |
| self.file_path = file_path | |
| self.memory = self.load_memory() | |
| def load_memory(self): | |
| try: | |
| with open(self.file_path, 'r') as f: | |
| return json.load(f) | |
| except FileNotFoundError: | |
| return {"code_snippets": [], "patterns": []} | |
| def save_memory(self): | |
| with open(self.file_path, 'w') as f: | |
| json.dump(self.memory, f, indent=2) | |
| def add_code_snippet(self, code, description, language="python"): | |
| snippet_id = hashlib.md5(code.encode()).hexdigest()[:10] | |
| snippet = { | |
| "id": snippet_id, | |
| "code": code, | |
| "description": description, | |
| "language": language, | |
| "timestamp": datetime.now().isoformat() | |
| } | |
| self.memory["code_snippets"].append(snippet) | |
| self.save_memory() | |
| return snippet_id | |
| def find_similar_code(self, query): | |
| # Simple keyword matching (can be enhanced with embeddings) | |
| results = [] | |
| for snippet in self.memory["code_snippets"]: | |
| if query.lower() in snippet["description"].lower(): | |
| results.append(snippet) | |
| return results[:5] | |