from __future__ import annotations from memory.vector_store import InMemoryVectorStore class MemoryRetriever: def __init__(self, vector_store: InMemoryVectorStore) -> None: self.vector_store = vector_store def remember(self, record_id: str, text: str, metadata: dict | None = None) -> None: self.vector_store.upsert(record_id=record_id, text=text, metadata=metadata or {}) def retrieve(self, query: str, top_k: int = 3) -> list[dict]: return [ { "id": record.record_id, "text": record.text, "metadata": record.metadata, } for record in self.vector_store.search(query=query, top_k=top_k) ]