EngineConfiguration_VectorStoreService
What it is
Pydantic-based configuration models to validate and construct a VectorStoreService with a pluggable vector store adapter (qdrant, qdrant_in_memory, or custom).
Public API
-
class VectorStoreAdapterQdrantConfiguration(BaseModel)- Validates configuration for the
qdrantadapter. - Fields:
host: str = "localhost"port: int = 6333api_key: str | None = Nonehttps: bool = Falsetimeout: int = 30
extra="forbid"(unknown fields rejected).
- Validates configuration for the
-
class VectorStoreAdapterQdrantInMemoryConfiguration(BaseModel)- Validates configuration for the
qdrant_in_memoryadapter. - No fields;
extra="forbid".
- Validates configuration for the
-
class VectorStoreAdapterConfiguration(GenericLoader)- Selects an adapter and validates its
config. - Fields:
adapter: Literal["qdrant", "qdrant_in_memory", "custom"]config: dict | None = None
- Methods:
validate_adapter(self) -> VectorStoreAdapterConfiguration(Pydantic@model_validator(mode="after"))- Requires
configwhenadapter != "custom". - Validates
configagainst the adapter-specific Pydantic model viapydantic_model_validator(...).
- Requires
load(self) -> IVectorStorePort- For
qdrant: lazily imports and instantiatesQdrantAdapter(**config). - For
qdrant_in_memory: lazily imports and instantiatesQdrantInMemoryAdapter(**config). - For
custom: delegates toGenericLoader.load().
- For
- Selects an adapter and validates its
-
class VectorStoreServiceConfiguration(BaseModel)- Fields:
vector_store_adapter: VectorStoreAdapterConfiguration
- Methods:
load(self) -> VectorStoreService- Returns
VectorStoreService(adapter=self.vector_store_adapter.load()).
- Returns
- Fields:
Configuration/Dependencies
- Depends on:
pydantic(BaseModel,ConfigDict,model_validator)naas_abi_core.services.vector_store.VectorStoreServicenaas_abi_core.services.vector_store.IVectorStorePort- Adapter implementations are lazily imported:
naas_abi_core.services.vector_store.adapters.QdrantAdapter.QdrantAdapternaas_abi_core.services.vector_store.adapters.QdrantInMemoryAdapter.QdrantInMemoryAdapter
- Validation helper:
pydantic_model_validator(model_cls, data, message)is used to validate adapterconfig.
Usage
from naas_abi_core.engine.engine_configuration.EngineConfiguration_VectorStoreService import (
VectorStoreServiceConfiguration,
)
cfg = VectorStoreServiceConfiguration.model_validate(
{
"vector_store_adapter": {
"adapter": "qdrant",
"config": {
"host": "localhost",
"port": 6333,
"api_key": None,
"https": False,
"timeout": 30,
},
}
}
)
vector_store_service = cfg.load()
Caveats
configis required for all adapters exceptcustom; missingconfigtriggers anAssertionError.- For
qdrantandqdrant_in_memory, extra/unknown keys inconfigare rejected (extra="forbid"). customadapter behavior depends onGenericLoader.load()(not defined in this module).