Aigenthix's picture
Upload 2585 files
711f785 verified
Raw
History Blame Contribute Delete
1.14 kB
"""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