import logging import os from typing import List from langchain_qdrant.qdrant import RetrievalMode from tests.integration_tests.common import qdrant_running_locally logger = logging.getLogger(__name__) def qdrant_locations(use_in_memory: bool = True) -> List[str]: locations = [] if use_in_memory: logger.info("Running Qdrant tests with in-memory mode.") locations.append(":memory:") if qdrant_running_locally(): logger.info("Running Qdrant tests with local Qdrant instance.") locations.append("http://localhost:6333") if qdrant_url := os.getenv("QDRANT_URL"): logger.info(f"Running Qdrant tests with Qdrant instance at {qdrant_url}.") locations.append(qdrant_url) return locations def retrieval_modes( *, dense: bool = True, sparse: bool = True, hybrid: bool = True ) -> List[RetrievalMode]: modes = [] if dense: modes.append(RetrievalMode.DENSE) if sparse: modes.append(RetrievalMode.SPARSE) if hybrid: modes.append(RetrievalMode.HYBRID) return modes