Skip to content

Vectorstores

zenpyre.vectorstores

Contain vector stores.

zenpyre.vectorstores.resolve_vector_store

resolve_vector_store(
    vector_store: VectorStore | dict[str, Any] | BaseConfig,
) -> VectorStore

Resolve a LangChain :class:~langchain_core.vectorstores.VectorStore instance from an existing object, a configuration dictionary, or a :class:~zenpyre.utils.config.BaseConfig.

If vector_store is already a :class:~langchain_core.vectorstores.VectorStore instance it is returned as-is. If it is a :class:dict or a :class:~zenpyre.utils.config.BaseConfig, it is treated as an objectory factory configuration and instantiated via :func:objectory.factory. See :func:~zenpyre.utils.resolve.resolve_object for details.

Parameters:

Name Type Description Default
vector_store VectorStore | dict[str, Any] | BaseConfig

Either a fully configured :class:~langchain_core.vectorstores.VectorStore instance, a :class:dict containing an objectory factory specification (must include a "_target_" key pointing to the fully-qualified class name), or a :class:~zenpyre.utils.config.BaseConfig whose to_kwargs() includes a "_target_" key.

required

Returns:

Type Description
VectorStore

A configured :class:~langchain_core.vectorstores.VectorStore

VectorStore

instance.

Raises:

Type Description
TypeError

If the resolved object is not a :class:~langchain_core.vectorstores.VectorStore instance.

Example
>>> from zenpyre.vectorstores.resolve import resolve_vector_store
>>> from langchain_core.vectorstores import InMemoryVectorStore
>>> from langchain_core.embeddings.fake import FakeEmbeddings
>>> # From an existing instance:
>>> vector_store = resolve_vector_store(InMemoryVectorStore(FakeEmbeddings(size=128)))
>>> # From a configuration dictionary:
>>> vector_store = resolve_vector_store(  # doctest: +SKIP
...     {
...         "_target_": "langchain_core.vectorstores.InMemoryVectorStore",
...         "embedding": FakeEmbeddings(size=128),
...     }
... )

zenpyre.vectorstores.factory

Contain vector store factories.

zenpyre.vectorstores.factory.BaseVectorStoreFactory

Bases: ABC

Abstract base class for vector store factories.

Subclasses implement :meth:make_vector_store to instantiate and return a configured :class:~langchain_core.vectorstores.VectorStore object. This pattern decouples vector store creation from the rest of the codebase, making it easy to swap backends (e.g. in-memory, Chroma, Pinecone) without changing call sites.

Example
>>> from langchain_core.embeddings.fake import FakeEmbeddings
>>> from langchain_core.vectorstores import InMemoryVectorStore
>>> from zenpyre.vectorstores.factory import BaseVectorStoreFactory
>>> class InMemoryVectorStoreFactory(BaseVectorStoreFactory):
...     def make_vector_store(self) -> InMemoryVectorStore:
...         return InMemoryVectorStore(FakeEmbeddings(size=128))
...

zenpyre.vectorstores.factory.BaseVectorStoreFactory.make_vector_store abstractmethod

make_vector_store() -> VectorStore

Create and return a configured vector store instance.

Returns:

Name Type Description
A VectorStore

class:~langchain_core.vectorstores.VectorStore instance

VectorStore

ready for use.

zenpyre.vectorstores.factory.ConfigurableVectorStoreFactory

Bases: BaseVectorStoreFactory, MultilineDisplayMixin

A concrete vector store factory that accepts either a pre-built :class:~langchain_core.vectorstores.VectorStore instance or a configuration dictionary.

When a dict is provided it is resolved at each :meth:make_vector_store call via :func:~resolve_vector_store, which uses objectory to instantiate the configured class. When an instance is provided it is returned as-is.

Parameters:

Name Type Description Default
vector_store VectorStore | dict[str, Any]

A fully configured :class:~langchain_core.vectorstores.VectorStore instance, or a :class:dict containing an objectory factory specification (must include a "_target_" key pointing to the fully-qualified class name).

required
Example
>>> from langchain_core.embeddings.fake import FakeEmbeddings
>>> from langchain_core.vectorstores import InMemoryVectorStore
>>> from zenpyre.vectorstores.factory import ConfigurableVectorStoreFactory
>>> factory = ConfigurableVectorStoreFactory(InMemoryVectorStore(FakeEmbeddings(size=128)))
>>> vector_store = factory.make_vector_store()

zenpyre.vectorstores.factory.VectorStoreFactory

Bases: BaseVectorStoreFactory, MultilineDisplayMixin

A concrete vector store factory that wraps a pre-built :class:~langchain_core.vectorstores.VectorStore instance.

Use this when the vector store is already instantiated and you simply want to wrap it in the :class:~BaseVectorStoreFactory interface — for example, when injecting a fixed vector store into a component that expects a factory.

Parameters:

Name Type Description Default
vector_store VectorStore

A fully configured :class:~langchain_core.vectorstores.VectorStore instance to return from :meth:make_vector_store.

required
Example
>>> from langchain_core.embeddings.fake import FakeEmbeddings
>>> from langchain_core.vectorstores import InMemoryVectorStore
>>> from zenpyre.vectorstores.factory import VectorStoreFactory
>>> factory = VectorStoreFactory(InMemoryVectorStore(FakeEmbeddings(size=128)))
>>> vector_store = factory.make_vector_store()