Source code for sherpa_ai.connectors.base

from abc import ABC, abstractmethod
from typing import Any, List, Optional

from langchain_core.documents import Document
from pydantic import BaseModel, ConfigDict, Field


[docs] class BaseVectorDB(ABC, BaseModel): """Abstract base class for vector database connectors with Pydantic validation. This class defines the interface that all vector database connectors must implement, providing methods for similarity search operations with automatic data validation. Attributes: db: The underlying database connection or client. Example: >>> from sherpa_ai.connectors.base import BaseVectorDB >>> from sherpa_ai.connectors.chroma_vector_store import ChromaVectorStore >>> # ChromaVectorStore implements BaseVectorDB >>> vector_db = ChromaVectorStore(db=some_db) >>> results = vector_db.similarity_search("query", number_of_results=5) """ model_config = ConfigDict(arbitrary_types_allowed=True) db: Any = Field(..., description="The underlying database connection or client")