Spaces:
Sleeping
Sleeping
File size: 4,840 Bytes
4454066 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 |
"""
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")
|