haive.core.engine.vectorstore.VectorStoreProvider¶

class haive.core.engine.vectorstore.VectorStoreProvider(*values)[source]¶

Enumeration of supported vector store providers.

This enum defines the built-in vector store providers supported by the Haive framework. Each provider corresponds to a specific vector database implementation with its own features, capabilities, and requirements.

The enum can be dynamically extended at runtime using the extend() method or through the VectorStoreProviderRegistry, allowing for custom providers without modifying the core code.

CHROMA¶

Chroma vector database

Type:

str

FAISS¶

Facebook AI Similarity Search

Type:

str

PINECONE¶

Pinecone managed vector database

Type:

str

WEAVIATE¶

Weaviate vector database

Type:

str

ZILLIZ¶

Zilliz cloud vector database

Type:

str

MILVUS¶

Milvus vector database

Type:

str

QDRANT¶

Qdrant vector database

Type:

str

IN_MEMORY¶

In-memory vector store (for testing/development)

Type:

str

PGVECTOR¶

PostgreSQL with pgvector extension

Type:

str

ELASTICSEARCH¶

Elasticsearch vector search

Type:

str

REDIS¶

Redis vector database

Type:

str

SUPABASE¶

Supabase vector store

Type:

str

MONGODB_ATLAS¶

MongoDB Atlas vector search

Type:

str

Azure Cognitive Search

Type:

str

OPENSEARCH¶

OpenSearch vector search

Type:

str

CASSANDRA¶

Apache Cassandra vector store

Type:

str

CLICKHOUSE¶

ClickHouse vector database

Type:

str

TYPESENSE¶

Typesense vector search

Type:

str

LANCEDB¶

LanceDB vector database

Type:

str

NEO4J¶

Neo4j vector search

Type:

str

Examples

>>> from haive.core.engine.vectorstore import VectorStoreProvider
>>> # Using an enum value
>>> provider = VectorStoreProvider.FAISS
>>> str(provider)
'FAISS'
>>> # Checking if a value is in the enum
>>> "Chroma" in [p.value for p in VectorStoreProvider]
True
classmethod extend(name, value)[source]¶

Extend the enum with a new provider value.

Parameters:
  • name (str) – The enum member name (e.g., ‘MY_PROVIDER’)

  • value (str) – The string value (e.g., ‘MyProvider’)

Return type:

None

Note

This is a workaround to extend an Enum at runtime. For proper type hinting, use the VectorStoreProviderRegistry instead.

AZURE_SEARCH = 'AzureSearch'¶
CASSANDRA = 'Cassandra'¶
CHROMA = 'Chroma'¶
CLICKHOUSE = 'ClickHouse'¶
ELASTICSEARCH = 'Elasticsearch'¶
FAISS = 'FAISS'¶
IN_MEMORY = 'InMemory'¶
LANCEDB = 'LanceDB'¶
MILVUS = 'Milvus'¶
MONGODB_ATLAS = 'MongoDBAtlas'¶
NEO4J = 'Neo4j'¶
OPENSEARCH = 'OpenSearch'¶
PGVECTOR = 'PGVector'¶
PINECONE = 'Pinecone'¶
QDRANT = 'Qdrant'¶
REDIS = 'Redis'¶
SUPABASE = 'Supabase'¶
TYPESENSE = 'Typesense'¶
WEAVIATE = 'Weaviate'¶
ZILLIZ = 'Zilliz'¶