from qdrant_client.models import Distance, Filter, models async def search_memories( search_vector: list[float], user_id: int, topk_neighbors=5 ): # Filter by user_id must_conditions: list[models.Condition] = [ models.FieldCondition( key="user_id", match=models.MatchValue(value=user_id) ) ] outs = await client.query_points( collection_name=COLLECTION_NAME, query=search_vector, with_payload=True, query_filter=Filter(must=must_conditions), score_threshold=0.1, limit=topk_neighbors ) return [ convert_retrieved_records(point) for point in outs.points if point is not None ]