def METHOD_NAME(
    self,
    collection_name: str,
    persist: bool,
    chroma_server_ssl_enabled: bool,
    persist_directory: Optional[str] = None,
    embedding: Optional[Embeddings] = None,
    documents: Optional[Document] = None,
    chroma_server_cors_allow_origins: Optional[str] = None,
    chroma_server_host: Optional[str] = None,
    chroma_server_port: Optional[int] = None,
    chroma_server_grpc_port: Optional[int] = None,
) -> Union[VectorStore, BaseRetriever]:
    """
    Builds the Vector Store or BaseRetriever object.
    Args:
    - collection_name (str): The name of the collection.
    - persist_directory (Optional[str]): The directory to persist the Vector Store to.
    - chroma_server_ssl_enabled (bool): Whether to enable SSL for the Chroma server.
    - persist (bool): Whether to persist the Vector Store or not.
    - embedding (Optional[Embeddings]): The embeddings to use for the Vector Store.
    - documents (Optional[Document]): The documents to use for the Vector Store.
    - chroma_server_cors_allow_origins (Optional[str]): The CORS allow origins for the Chroma server.
    - chroma_server_host (Optional[str]): The host for the Chroma server.
    - chroma_server_port (Optional[int]): The port for the Chroma server.
    - chroma_server_grpc_port (Optional[int]): The gRPC port for the Chroma server.
    Returns:
    - Union[VectorStore, BaseRetriever]: The Vector Store or BaseRetriever object.
    """
    # Chroma settings
    chroma_settings = None
    if chroma_server_host is not None:
        chroma_settings = chromadb.config.Settings(
            chroma_server_cors_allow_origins=chroma_server_cors_allow_origins
            or None,
            chroma_server_host=chroma_server_host,
            chroma_server_port=chroma_server_port or None,
            chroma_server_grpc_port=chroma_server_grpc_port or None,
            chroma_server_ssl_enabled=chroma_server_ssl_enabled,
        )
    # If documents, then we need to create a Chroma instance using .from_documents
    if documents is not None and embedding is not None:
        return Chroma.from_documents(
            documents=documents,  # type: ignore
            persist_directory=persist_directory if persist else None,
            collection_name=collection_name,
            embedding=embedding,
            client_settings=chroma_settings,
        )
    return Chroma(
        persist_directory=persist_directory, client_settings=chroma_settings
    )