class RedisVLSemanticMemory(ContextProvider): def __init__( self, thread_id: str | None = None, session_tag: str | None = None, distance_threshold: float = 0.3, redis_url: str = "redis://localhost:6379", embedding_model: str = "BAAI/bge-m3", embedding_api_key: str | None = None, embedding_endpoint: str | None = None, ): self._thread_id = thread_id or "semantic_thread" self._session_tag = session_tag or f"session_{uuid4()}" self._distance_threshold = distance_threshold self._redis_url = redis_url self._embedding_model = embedding_model self._embedding_api_key = embedding_api_key or os.getenv("EMBEDDING_API_KEY") self._embedding_endpoint = embedding_endpoint or os.getenv("EMBEDDING_ENDPOINT") self._init_semantic_store()