Skip to content

Commit 77cc7da

Browse files
committed
Refactor vector storage function and enhance logging in VectorStore
This commit refines the `store_vector` function within the VectorStore class by improving its structure and adding detailed docstrings for better clarity. It also enhances logging for vector storage operations, providing more informative debug messages for different tiers (STM, IM, LTM). Additionally, the logging utility is updated to allow for customizable log directory paths, ensuring more flexible logging configurations.
1 parent 1b6073d commit 77cc7da

2 files changed

Lines changed: 50 additions & 13 deletions

File tree

memory/embeddings/vector_store.py

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -556,26 +556,58 @@ def store_memory_vectors(
556556
embeddings = memory_entry.get("embeddings", {})
557557
metadata = memory_entry.get("metadata", {})
558558

559-
def store_vector(index, memory_id: str, vector: List[float], metadata: Dict[str, Any], tier: str) -> bool:
559+
def store_vector(
560+
index,
561+
memory_id: str,
562+
vector: List[float],
563+
metadata: Dict[str, Any],
564+
tier: str,
565+
) -> bool:
566+
"""
567+
Store a vector in the appropriate index.
568+
569+
Args:
570+
index: Vector index to store in
571+
memory_id: Unique identifier for the memory
572+
vector: Vector to store
573+
metadata: Metadata to store
574+
tier: Tier to store the vector in ("stm", "im", or "ltm")
575+
576+
Returns:
577+
True if storage was successful
578+
"""
560579
try:
561580
logger.debug(f"Storing {tier.upper()} vector for memory {memory_id}")
562581
return index.add(memory_id, vector, metadata)
563582
except Exception as e:
564-
logger.error(f"Failed to store {tier.upper()} vector for memory {memory_id}: {e}")
583+
logger.error(
584+
f"Failed to store {tier.upper()} vector for memory {memory_id}: {e}"
585+
)
565586
return False
566587

567588
success = True
568589

569590
# Store in appropriate index based on tier
570591
if tier == "stm":
571-
success = store_vector(self.stm_index, memory_id, embeddings["full_vector"], metadata, "stm")
592+
success = store_vector(
593+
self.stm_index, memory_id, embeddings["full_vector"], metadata, "stm"
594+
)
572595
elif tier == "im":
573596
#! TODO: Use compressed vector
574-
success = store_vector(self.im_index, memory_id, embeddings["full_vector"], metadata, "im")
575-
logger.debug(f"Result of storing IM vector: {success}")
597+
logger.debug(
598+
f"@@@@@@@@@@@@@@@@@@@@@@@@@ Storing IM vector for memory {memory_id}"
599+
)
600+
success = store_vector(
601+
self.im_index, memory_id, embeddings["full_vector"], metadata, "im"
602+
)
603+
logger.debug(
604+
f"@@@@@@@@@@@@@@@@@@@@@@@@@ Result of storing IM vector: {success}"
605+
)
576606
elif tier == "ltm":
577607
#! TODO: Use abstract vector
578-
success = store_vector(self.ltm_index, memory_id, embeddings["full_vector"], metadata, "ltm")
608+
success = store_vector(
609+
self.ltm_index, memory_id, embeddings["full_vector"], metadata, "ltm"
610+
)
579611

580612
return success
581613

memory/utils/logging.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@
88
print(f"Current working directory: {os.getcwd()}")
99
print(f"Logs directory: {LOGS_DIR}")
1010

11+
# Configure logging
12+
logger = logging.getLogger()
1113

12-
def setup_logging(demo_name: str) -> logging.Logger:
14+
15+
def setup_logging(demo_name: str, log_dir: str = LOGS_DIR) -> logging.Logger:
1316
"""Set up logging to both console and file.
1417
1518
Args:
@@ -20,11 +23,11 @@ def setup_logging(demo_name: str) -> logging.Logger:
2023
"""
2124
try:
2225
# Create logs directory if it doesn't exist
23-
os.makedirs(LOGS_DIR, exist_ok=True)
24-
print(f"Created logs directory at: {LOGS_DIR}")
26+
os.makedirs(log_dir, exist_ok=True)
27+
print(f"Created logs directory at: {log_dir}")
2528

2629
# Use a fixed log filename based on demo name (without timestamp)
27-
log_file = os.path.join(LOGS_DIR, f"{demo_name}.log")
30+
log_file = os.path.join(log_dir, f"{demo_name}.log")
2831
print(f"Log file will be created at: {log_file}")
2932

3033
# Clear the existing log file if it exists
@@ -33,8 +36,7 @@ def setup_logging(demo_name: str) -> logging.Logger:
3336
pass
3437
print(f"Initialized log file: {log_file}")
3538

36-
# Configure logging
37-
logger = logging.getLogger()
39+
3840
logger.setLevel(logging.DEBUG)
3941

4042
# Clear existing handlers if any
@@ -80,4 +82,7 @@ def filter(self, record):
8082
print(f"Error setting up logging: {e}")
8183
# Fallback to basic console logging
8284
logging.basicConfig(level=logging.INFO)
83-
return logging.getLogger()
85+
return logging.getLogger()
86+
87+
88+

0 commit comments

Comments
 (0)