too much
This commit is contained in:
@@ -88,6 +88,26 @@ class MemoryStream:
|
||||
)
|
||||
self.memories.append(reflection)
|
||||
|
||||
async def get_related_memories_for_scoring(self, memory_text: str, exclude_self=None, k=5) -> List:
|
||||
"""Get memories related to the one being scored"""
|
||||
# Get embedding for the memory being scored
|
||||
memory_embedding = await self.llm.get_embedding(memory_text)
|
||||
|
||||
# Calculate similarity to other memories
|
||||
similarities = []
|
||||
for mem in self.memories:
|
||||
if mem == exclude_self:
|
||||
continue
|
||||
|
||||
if mem.embedding:
|
||||
from sklearn.metrics.pairwise import cosine_similarity
|
||||
similarity = cosine_similarity([memory_embedding], [mem.embedding])[0][0]
|
||||
similarities.append((similarity, mem))
|
||||
|
||||
# Return top K most similar memories
|
||||
similarities.sort(reverse=True, key=lambda x: x[0])
|
||||
return [mem for _, mem in similarities[:k]]
|
||||
|
||||
async def retrieve_related_memories(self, query: str, k: int = 10) -> List[Memory]:
|
||||
"""Retrieve relevant memories using recency, importance, relevance"""
|
||||
if not self.memories:
|
||||
|
||||
Reference in New Issue
Block a user