diff --git a/src/evidently/suite/base_suite.py b/src/evidently/suite/base_suite.py index 3022c3cdac..2e109afeaf 100644 --- a/src/evidently/suite/base_suite.py +++ b/src/evidently/suite/base_suite.py @@ -500,6 +500,7 @@ def __iter__(self) -> Iterator[Tuple[str, str, DatasetID]]: class SnapshotLinks(BaseModel): datasets: DatasetInputOutputLinks = DatasetInputOutputLinks() computation_config_id: Optional[ComputationConfigID] = None + task_id: Optional[str] = None class Snapshot(BaseModel): diff --git a/src/evidently/ui/config.py b/src/evidently/ui/config.py index 52bdc36adb..53a35f00a0 100644 --- a/src/evidently/ui/config.py +++ b/src/evidently/ui/config.py @@ -117,8 +117,13 @@ def load_config(config_type: Type[TConfig], box: dict) -> TConfig: continue if section in ("renamed_vars", "dict_itemiterator"): continue - if section in config_type.__fields__: - component = parse_obj_as(config_type.__fields__[section].type_, component_dict) + if section == "additional_components": + for subsection, compoennt_subdict in component_dict.items(): + component = parse_obj_as(SECTION_COMPONENT_TYPE_MAPPING.get(subsection, Component), compoennt_subdict) + components[subsection] = component + elif section in config_type.__fields__: + type_ = config_type.__fields__[section].type_ + component = parse_obj_as(type_, component_dict) named_components[section] = component elif section in SECTION_COMPONENT_TYPE_MAPPING: component = parse_obj_as(SECTION_COMPONENT_TYPE_MAPPING[section], component_dict)