1313from autointent .custom_types import ListOfGenericLabels , NodeType
1414from autointent .metrics import PREDICTION_METRICS_MULTILABEL
1515from autointent .nodes import InferenceNode , NodeOptimizer
16+ from autointent .nodes .schemes import OptimizationConfig
1617from autointent .utils import load_default_search_space , load_search_space
1718
1819from ._schemas import InferencePipelineOutput , InferencePipelineUtteranceOutput
@@ -72,10 +73,12 @@ def from_search_space(cls, search_space: list[dict[str, Any]] | Path | str, seed
7273 Create pipeline optimizer from dictionary search space.
7374
7475 :param search_space: Dictionary config
76+ :param seed: random seed
7577 """
7678 if isinstance (search_space , Path | str ):
7779 search_space = load_search_space (search_space )
78- nodes = [NodeOptimizer (** node ) for node in search_space ]
80+ validated_search_space = OptimizationConfig (search_space ).model_dump () # type: ignore[arg-type]
81+ nodes = [NodeOptimizer (** node ) for node in validated_search_space ]
7982 return cls (nodes = nodes , seed = seed )
8083
8184 @classmethod
@@ -84,6 +87,9 @@ def default_optimizer(cls, multilabel: bool, seed: int = 42) -> "Pipeline":
8487 Create pipeline optimizer with default search space for given classification task.
8588
8689 :param multilabel: Whether the task multi-label, or single-label.
90+ :param seed: random seed
91+
92+ :return: Pipeline
8793 """
8894 return cls .from_search_space (search_space = load_default_search_space (multilabel ), seed = seed )
8995
0 commit comments