""" بازیابی RAG: embed کوئری و جستجو در vector store """ from .config import load_rag_config, RAGConfig from .embedding import embed_single from .vector_store import QdrantVectorStore def search_with_query( query: str, sensor_uuid: str, limit: int = 5, score_threshold: float | None = None, config: RAGConfig | None = None, ) -> list[dict]: """ کوئری را embed می‌کند و در vector store جستجو می‌کند. فقط chunks مربوط به sensor_uuid یا __global__ برمی‌گردد (ایزوله‌سازی کاربر). Args: sensor_uuid: شناسه سنسور کاربر — اجباری برای امنیت Returns: لیست نتایج با id, score, text, metadata """ cfg = config or load_rag_config() query_vector = embed_single(query, config=cfg) store = QdrantVectorStore(config=cfg) return store.search( query_vector=query_vector, limit=limit, score_threshold=score_threshold, sensor_uuid=sensor_uuid, )