embedding_function: Embeddings,
        ndims: int = ADA_TOKEN_COUNT,
        table_name: str = _LANGCHAIN_DEFAULT_TABLE_NAME,
        pre_delete_table: bool = False,
        logger: Optional[logging.Logger] = None,
    ) -> None:
        self.connection_string = connection_string
        self.ndims = ndims
        self.table_name = table_name
        self.embedding_function = embedding_function
        self.pre_delete_table = pre_delete_table
        self.logger = logger or logging.getLogger(__name__)
        self.__post_init__()
    def __post_init__(
        self,
    ) -> None:
        """
        Initialize the store.
        """
        self.storage = HologresWrapper(
            self.connection_string, self.ndims, self.table_name
        )
        self.create_vector_extension()
        self.create_table()
    @property
    def embeddings(self) -> Embeddings:
        return self.embedding_function
[docs]    def create_vector_extension(self) -> None:
        try:
            self.storage.create_vector_extension()
        except Exception as e:
            self.logger.exception(e)
            raise e
[docs]    def create_table(self) -> None:
        self.storage.create_table(self.pre_delete_table)
    @classmethod
    def __from(
        cls,
        texts: List[str],
        embeddings: List[List[float]],
        embedding_function: Embeddings,
        metadatas: Optional[List[dict]] = None,
        ids: Optional[List[str]] = None,
        ndims: int = ADA_TOKEN_COUNT,
        table_name: str = _LANGCHAIN_DEFAULT_TABLE_NAME,
        pre_delete_table: bool = False,
        **kwargs: Any,
    ) -> Hologres:
        if ids is None: