haive.core.engine.vectorstore.discovery¶

Vector Store Provider Discovery and Management.

This module provides utilities for discovering, comparing, and configuring vector store providers within the Haive framework. It offers comprehensive information about all available vector store backends.

Examples

Basic discovery:

from haive.core.engine.vectorstore.discovery import get_vectorstore_providers

providers = get_vectorstore_providers()
print(f"Available: {list(providers.keys())}")

Get provider recommendations:

from haive.core.engine.vectorstore.discovery import recommend_vectorstore

# For development
dev_stores = recommend_vectorstore("development")
print(f"For development: {dev_stores}")

# For production
prod_stores = recommend_vectorstore("production")
print(f"For production: {prod_stores}")

Classes¶

CostTier

Cost structure for vector stores.

VectorStoreInfo

Comprehensive information about a vector store provider.

VectorStoreType

Categories of vector stores.

Functions¶

compare_vectorstores(provider_names)

Compare multiple vector store providers.

filter_vectorstores([type_filter, cost_filter, ...])

Filter vector stores by criteria.

get_setup_instructions(provider_name)

Get setup instructions for a vector store provider.

get_vectorstore_providers()

Get comprehensive information about all vector store providers.

recommend_vectorstore(use_case)

Get vector store recommendations for specific use cases.

Module Contents¶

class haive.core.engine.vectorstore.discovery.CostTier[source]¶

Bases: str, enum.Enum

Cost structure for vector stores.

Initialize self. See help(type(self)) for accurate signature.

class haive.core.engine.vectorstore.discovery.VectorStoreInfo[source]¶

Comprehensive information about a vector store provider.

class haive.core.engine.vectorstore.discovery.VectorStoreType[source]¶

Bases: str, enum.Enum

Categories of vector stores.

Initialize self. See help(type(self)) for accurate signature.

haive.core.engine.vectorstore.discovery.compare_vectorstores(provider_names)[source]¶

Compare multiple vector store providers.

Parameters:

provider_names (list[str]) – List of provider names to compare

Returns:

Comparison table as formatted string

Return type:

str

Examples

Compare popular stores:

comparison = compare_vectorstores(["Chroma", "Pinecone", "FAISS"])
print(comparison)
haive.core.engine.vectorstore.discovery.filter_vectorstores(type_filter=None, cost_filter=None, auth_required=None, supports_metadata=None, supports_hybrid=None, setup_complexity=None)[source]¶

Filter vector stores by criteria.

Parameters:
  • type_filter (VectorStoreType | None) – Filter by store type

  • cost_filter (CostTier | None) – Filter by cost tier

  • auth_required (bool | None) – Filter by auth requirement

  • supports_metadata (bool | None) – Filter by metadata support

  • supports_hybrid (bool | None) – Filter by hybrid search support

  • setup_complexity (str | None) – Filter by setup complexity

Returns:

Filtered dictionary of vector stores

Return type:

dict[str, VectorStoreInfo]

Examples

Get free, easy-setup stores:

stores = filter_vectorstores(
    cost_filter=CostTier.FREE,
    setup_complexity="easy"
)

Get hybrid search capable stores:

stores = filter_vectorstores(supports_hybrid=True)
haive.core.engine.vectorstore.discovery.get_setup_instructions(provider_name)[source]¶

Get setup instructions for a vector store provider.

Parameters:

provider_name (str) – Name of the vector store provider

Returns:

Setup instructions as formatted string

Return type:

str

Examples

Get Chroma setup:

instructions = get_setup_instructions("Chroma")
print(instructions)
haive.core.engine.vectorstore.discovery.get_vectorstore_providers()[source]¶

Get comprehensive information about all vector store providers.

Returns:

Dictionary mapping provider name to VectorStoreInfo

Return type:

dict[str, VectorStoreInfo]

Examples

Get all providers:

providers = get_vectorstore_providers()
for name, info in providers.items():
    print(f"{name}: {info.description}")
haive.core.engine.vectorstore.discovery.recommend_vectorstore(use_case)[source]¶

Get vector store recommendations for specific use cases.

Parameters:

use_case (str) – Use case (“development”, “production”, “research”, “enterprise”, “free_only”, “local_only”)

Returns:

List of recommended vector store names

Return type:

list[str]

Examples

Get development recommendations:

dev_stores = recommend_vectorstore("development")
# Returns: ["Chroma", "InMemory", "FAISS"]

Get production recommendations:

prod_stores = recommend_vectorstore("production")
# Returns: ["Pinecone", "Qdrant", "Weaviate"]