| """Abstract base class for vector database providers""" |
|
|
| from abc import ABC, abstractmethod |
| from typing import List, Dict, Any, Optional |
|
|
|
|
| class VectorDBProvider(ABC): |
| """Abstract base class for vector database implementations""" |
|
|
| @abstractmethod |
| def initialize(self, config: Dict[str, Any]) -> None: |
| """Initialize database connection""" |
| pass |
|
|
| @abstractmethod |
| def add_vectors( |
| self, |
| vectors: List[List[float]], |
| ids: List[str], |
| metadata: List[Dict[str, Any]], |
| ) -> bool: |
| """Add vectors to database""" |
| pass |
|
|
| @abstractmethod |
| def search( |
| self, |
| query_vector: List[float], |
| top_k: int = 5, |
| ) -> List[Dict[str, Any]]: |
| """Search for similar vectors""" |
| pass |
|
|
| @abstractmethod |
| def delete(self, doc_id: str) -> bool: |
| """Delete document from database""" |
| pass |
|
|
| @abstractmethod |
| def health_check(self) -> bool: |
| """Check database connection health""" |
| pass |
|
|
| @abstractmethod |
| def get_stats(self) -> Dict[str, Any]: |
| """Get database statistics""" |
| pass |
|
|