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: |
required |
Returns:
| Type | Description |
|---|---|
VectorStore
|
A configured :class: |
VectorStore
|
instance. |
Raises:
| Type | Description |
|---|---|
TypeError
|
If the resolved object is not a
:class: |
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: |
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: |
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: |
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()