fix: filter archived/dormant memories from semantic_recall() (#3) #7
@ -13,6 +13,7 @@ from typing import Any, Dict, List, Optional, Tuple
|
|||||||
from common import (
|
from common import (
|
||||||
EMBEDDING_MODEL,
|
EMBEDDING_MODEL,
|
||||||
OPENAI_MODEL_DEFAULT,
|
OPENAI_MODEL_DEFAULT,
|
||||||
|
THRESHOLD_DORMANT,
|
||||||
_cosine_similarity,
|
_cosine_similarity,
|
||||||
_load_memory_config,
|
_load_memory_config,
|
||||||
_ollama_embed,
|
_ollama_embed,
|
||||||
@ -207,10 +208,14 @@ class EmbeddingsMixin:
|
|||||||
|
|
||||||
query_dim = len(query_vec)
|
query_dim = len(query_vec)
|
||||||
|
|
||||||
# Score all memories by cosine similarity
|
# Score all memories by cosine similarity, skipping archived/dormant
|
||||||
index = self._load_index()
|
index = self._load_index()
|
||||||
|
state = self._load_state()
|
||||||
scored = []
|
scored = []
|
||||||
for mid, vec in stored.items():
|
for mid, vec in stored.items():
|
||||||
|
s = state.get("entries", {}).get(mid, {})
|
||||||
|
if s.get("decay_score", 0.5) < THRESHOLD_DORMANT:
|
||||||
|
continue
|
||||||
# Skip dimension mismatch
|
# Skip dimension mismatch
|
||||||
if len(vec) != query_dim:
|
if len(vec) != query_dim:
|
||||||
continue
|
continue
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user