Spaces:
Sleeping
Sleeping
| """ | |
| Verify that memory implementation is correct without running tests. | |
| Checks imports, class structure, and method signatures. | |
| """ | |
| import sys | |
| import os | |
| import importlib.util | |
| import inspect | |
| print("=" * 60) | |
| print("FAISS Memory System Implementation Verification") | |
| print("=" * 60) | |
| # Add core to path | |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'core')) | |
| print("\n1. Testing imports...") | |
| try: | |
| from memory import AgentMemory | |
| print(" β AgentMemory imported successfully") | |
| except Exception as e: | |
| print(f" β Failed to import AgentMemory: {e}") | |
| sys.exit(1) | |
| print("\n2. Checking class structure...") | |
| required_methods = [ | |
| '__init__', | |
| 'add', | |
| 'search', | |
| 'is_duplicate', | |
| 'clear', | |
| 'save', | |
| 'load', | |
| 'get_stats', | |
| 'get_all_tasks', | |
| '__len__', | |
| '__repr__' | |
| ] | |
| for method in required_methods: | |
| if hasattr(AgentMemory, method): | |
| print(f" β {method} method exists") | |
| else: | |
| print(f" β {method} method missing") | |
| print("\n3. Checking __init__ signature...") | |
| sig = inspect.signature(AgentMemory.__init__) | |
| params = list(sig.parameters.keys()) | |
| print(f" Parameters: {params}") | |
| expected_params = ['self', 'dimension', 'k', 'similarity_threshold', 'dedup_threshold', 'embedder'] | |
| for param in expected_params: | |
| if param in params: | |
| print(f" β {param} parameter exists") | |
| else: | |
| print(f" β {param} parameter missing") | |
| print("\n4. Checking add() method signature...") | |
| sig = inspect.signature(AgentMemory.add) | |
| params = list(sig.parameters.keys()) | |
| print(f" Parameters: {params}") | |
| expected_params = ['self', 'task', 'result', 'metadata', 'skip_dedup'] | |
| for param in expected_params: | |
| if param in params: | |
| print(f" β {param} parameter exists") | |
| else: | |
| print(f" β {param} parameter missing") | |
| print("\n5. Checking search() method signature...") | |
| sig = inspect.signature(AgentMemory.search) | |
| params = list(sig.parameters.keys()) | |
| print(f" Parameters: {params}") | |
| expected_params = ['self', 'query', 'k', 'threshold'] | |
| for param in expected_params: | |
| if param in params: | |
| print(f" β {param} parameter exists") | |
| else: | |
| print(f" β {param} parameter missing") | |
| print("\n6. Checking dependencies...") | |
| try: | |
| import faiss | |
| print(f" β faiss imported (version: {faiss.__version__ if hasattr(faiss, '__version__') else 'unknown'})") | |
| except ImportError: | |
| print(" β faiss not installed") | |
| try: | |
| import numpy as np | |
| print(f" β numpy imported (version: {np.__version__})") | |
| except ImportError: | |
| print(" β numpy not installed") | |
| print("\n7. Checking core/agent.py integration...") | |
| try: | |
| # Read agent.py to check for memory integration | |
| agent_path = os.path.join(os.path.dirname(__file__), 'core', 'agent.py') | |
| with open(agent_path, 'r') as f: | |
| agent_code = f.read() | |
| checks = [ | |
| ('from .memory import AgentMemory', 'AgentMemory import'), | |
| ('from .embeddings import EmbeddingModel', 'EmbeddingModel import'), | |
| ('self.memory = AgentMemory(', 'AgentMemory instantiation'), | |
| ('memory.search(', 'Memory search usage'), | |
| ('memory.add(', 'Memory add usage'), | |
| ] | |
| for pattern, desc in checks: | |
| if pattern in agent_code: | |
| print(f" β {desc} found") | |
| else: | |
| print(f" β {desc} not found") | |
| except Exception as e: | |
| print(f" β Failed to check agent.py: {e}") | |
| print("\n8. Checking core/__init__.py exports...") | |
| try: | |
| init_path = os.path.join(os.path.dirname(__file__), 'core', '__init__.py') | |
| with open(init_path, 'r') as f: | |
| init_code = f.read() | |
| if 'from .memory import AgentMemory' in init_code: | |
| print(" β AgentMemory imported in __init__.py") | |
| else: | |
| print(" β AgentMemory not imported in __init__.py") | |
| if '"AgentMemory"' in init_code or "'AgentMemory'" in init_code: | |
| print(" β AgentMemory in __all__") | |
| else: | |
| print(" β AgentMemory not in __all__") | |
| except Exception as e: | |
| print(f" β Failed to check __init__.py: {e}") | |
| print("\n9. Checking docstrings...") | |
| if AgentMemory.__doc__: | |
| print(f" β Class has docstring ({len(AgentMemory.__doc__)} chars)") | |
| else: | |
| print(" β Class missing docstring") | |
| for method in ['add', 'search', 'save', 'load']: | |
| method_obj = getattr(AgentMemory, method) | |
| if method_obj.__doc__: | |
| print(f" β {method}() has docstring") | |
| else: | |
| print(f" β {method}() missing docstring") | |
| print("\n" + "=" * 60) | |
| print("Implementation Verification Complete") | |
| print("=" * 60) | |
| print("\nNote: Full functional testing requires running test_memory_direct.py") | |
| print("The paging file error is a Windows memory limit issue, not a code bug.") | |
| print("\nTo run on a machine with more memory:") | |
| print(" python test_memory_direct.py") | |