From a8c08b4ebdc9abb0bc1071beecd16881b317b55f Mon Sep 17 00:00:00 2001 From: johnpccd Date: Sat, 24 May 2025 18:40:36 +0200 Subject: [PATCH] cp --- src/config/config.py | 6 ++++++ src/services/vector_db.py | 34 +++++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/config/config.py b/src/config/config.py index bb5f1f3..efecccc 100644 --- a/src/config/config.py +++ b/src/config/config.py @@ -47,6 +47,12 @@ class Settings(BaseSettings): # Rate limiting RATE_LIMIT_PER_MINUTE: int = int(os.getenv("RATE_LIMIT_PER_MINUTE", "100")) + + # Qdrant settings + QDRANT_HOST: str = os.getenv("QDRANT_HOST", "localhost") + QDRANT_PORT: int = int(os.getenv("QDRANT_PORT", "6333")) + QDRANT_API_KEY: str = os.getenv("QDRANT_API_KEY", "") + QDRANT_COLLECTION: str = os.getenv("QDRANT_COLLECTION", "image_vectors") # Logging LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO") diff --git a/src/services/vector_db.py b/src/services/vector_db.py index 0a401e9..f26b750 100644 --- a/src/services/vector_db.py +++ b/src/services/vector_db.py @@ -266,17 +266,37 @@ class VectorDatabaseService: """ try: collection_info = self.client.get_collection(self.collection_name) - return { - "name": collection_info.config.params.vectors.size, - "vectors_count": collection_info.points_count, - "vector_size": collection_info.config.params.vectors.size, - "distance": collection_info.config.params.vectors.distance, - "status": collection_info.status + + # Handle different response formats safely + result = { + "name": self.collection_name, + "points_count": getattr(collection_info, 'points_count', 0), + "status": getattr(collection_info, 'status', 'unknown') } + # Safely access vector configuration + if hasattr(collection_info, 'config') and collection_info.config: + config = collection_info.config + if hasattr(config, 'params') and config.params: + params = config.params + if hasattr(params, 'vectors') and params.vectors: + vectors_config = params.vectors + if hasattr(vectors_config, 'size'): + result["vector_size"] = vectors_config.size + if hasattr(vectors_config, 'distance'): + result["distance"] = str(vectors_config.distance) + + return result + except Exception as e: logger.error(f"Error getting collection info: {e}") - raise + # Return basic info if detailed info fails + return { + "name": self.collection_name, + "points_count": 0, + "status": "error", + "error": str(e) + } def health_check(self) -> bool: """