Skip to main content

Overview

Weaviate is an open-source vector database with a GraphQL API. It supports embedded, local, and cloud deployments with schema-based collections and module configurations. Provider Class: WeaviateProvider
Config Class: WeaviateConfig

Dependencies

pip install "upsonic[rag]"

Examples

from upsonic import Agent, Task, KnowledgeBase
from upsonic.embeddings.openai_provider import OpenAIEmbeddingProvider
from upsonic.vectordb import WeaviateProvider, WeaviateConfig, ConnectionConfig, Mode, HNSWIndexConfig

# Setup embedding provider
embedding = OpenAIEmbeddingProvider(api_key="your-api-key")

# Embedded mode
config = WeaviateConfig(
    collection_name="my_collection",
    vector_size=1536,
    connection=ConnectionConfig(mode=Mode.EMBEDDED, db_path="./weaviate_db"),
    index=HNSWIndexConfig(m=16, ef_construction=200)
)
vectordb = WeaviateProvider(config)

# Create knowledge base
kb = KnowledgeBase(
    sources="document.pdf",
    embedding_provider=embedding,
    vectordb=vectordb
)

# Use with Agent
agent = Agent("openai/gpt-4o")
task = Task(
    description="Query the documents",
    context=[kb]
)
result = agent.do(task)

Parameters

ParameterTypeDescriptionDefaultSource
collection_namestrName of the collection"default_collection"Base
vector_sizeintDimension of vectorsRequiredBase
distance_metricDistanceMetricSimilarity metric (COSINE, EUCLIDEAN, DOT_PRODUCT)COSINEBase
recreate_if_existsboolRecreate collection if it existsFalseBase
default_top_kintDefault number of results10Base
default_similarity_thresholdOptional[float]Minimum similarity scoreNoneBase
connectionConnectionConfigConnection configurationRequiredSpecific
indexUnion[HNSWIndexConfig, FlatIndexConfig]Index type configurationHNSWIndexConfig()Specific
descriptionOptional[str]Collection descriptionNoneSpecific
namespaceOptional[str]Tenant name for multi-tenancyNoneSpecific
multi_tenancy_enabledboolEnable multi-tenancyFalseSpecific
propertiesOptional[List[Dict[str, Any]]]Schema propertiesNoneSpecific
referencesOptional[List[Dict[str, Any]]]Cross-references to other collectionsNoneSpecific
inverted_index_configOptional[Dict[str, Any]]Inverted index configurationNoneSpecific
replication_configOptional[Dict[str, Any]]Replication configurationNoneSpecific
sharding_configOptional[Dict[str, Any]]Sharding configurationNoneSpecific
generative_configOptional[Dict[str, Any]]Generative AI module configurationNoneSpecific
reranker_configOptional[Dict[str, Any]]Reranker module configurationNoneSpecific
api_keysOptional[Dict[str, str]]API keys for AI modulesNoneSpecific