Dataclass¶
If using the INTERSECT-SDK Python API, you can import the dataclass objects directly; see the Client Guide for an example of how to do this.
If using the iHub interface, these schemas and their descriptions should be visible directly in the iHub interface.
Request Objects¶
- class dial_dataclass.dial_dataclass.DialInputMultipleOtherStrategy(*, workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation], points: Annotated[int, Ge(ge=0)], strategy: Literal['random', 'uncertainty', 'expected_improvement', 'upper_confidence_bound', 'upper_confidence_bound_nomad', 'polymer_acl_sampler', 'hypercube'], strategy_args: dict[str, float | int | bool] | None = None, y_is_good: bool = True, bounds: list[Annotated[list[float], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)]), FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]], seed: Annotated[int, Ge(ge=-1), Le(le=4294967295)] = -1, extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None, optimization_points: Annotated[int, Ge(ge=0)] = 1000, discrete_measurements: bool = False, discrete_measurement_grid_size: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])]] = [20, 20])¶
- bounds: list[Annotated[list[float], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)]), FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]]¶
- discrete_measurement_grid_size: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])]]¶
- discrete_measurements: bool¶
- extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None¶
These extra arguments will be MERGED with the saved extra_args, with these arguments taking place over the saved values when applicable.
- optimization_points: Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])]¶
- points: Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])]¶
- seed: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=-1, description='Specific RNG seed - use -1 to use system default', metadata=[Ge(ge=-1), Le(le=4294967295)])]¶
- strategy: Literal['random', 'uncertainty', 'expected_improvement', 'upper_confidence_bound', 'upper_confidence_bound_nomad', 'polymer_acl_sampler', 'hypercube']¶
- strategy_args: dict[str, float | int | bool] | None¶
- workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation]¶
- y_is_good: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='If true, treat higher y values as better (e.g. y represents yield or profit). If false, opposite (e.g. y represents error or waste)')]¶
- class dial_dataclass.dial_dataclass.DialInputPredictions(*, workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation], points_to_predict: list[list[float]], extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None)¶
This is the input dataclass for Dial for requesting a surrogate evaluation at a given number of points.
- extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None¶
These extra arguments will be MERGED with the saved extra_args, with these arguments taking place over the saved values when applicable.
- points_to_predict: list[list[float]]¶
- workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation]¶
- class dial_dataclass.dial_dataclass.DialInputSingleConfidenceBound(*, workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation], strategy: Literal['confidence_bound'], strategy_args: dict[str, float | int | bool] | None = None, y_is_good: bool = True, bounds: list[Annotated[list[float], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)]), FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]], extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None, optimization_points: Annotated[int, Ge(ge=0)] = 1000, confidence_bound: Annotated[float, Gt(gt=0.5), Lt(lt=1)], discrete_measurements: bool = False, discrete_measurement_grid_size: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])]] = [20, 20])¶
- bounds: list[Annotated[list[float], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)]), FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]]¶
- confidence_bound: float¶
- discrete_measurement_grid_size: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])]]¶
- discrete_measurements: bool¶
- extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None¶
These extra arguments will be MERGED with the saved extra_args, with these arguments taking place over the saved values when applicable.
- optimization_points: Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])]¶
- strategy: Literal['confidence_bound']¶
- strategy_args: dict[str, float | int | bool] | None¶
- workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation]¶
- y_is_good: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='If true, treat higher y values as better (e.g. y represents yield or profit). If false, opposite (e.g. y represents error or waste)')]¶
- class dial_dataclass.dial_dataclass.DialInputSingleOtherStrategy(*, workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation], strategy: Literal['random', 'uncertainty', 'expected_improvement', 'upper_confidence_bound', 'upper_confidence_bound_nomad', 'polymer_acl_sampler'], strategy_args: dict[str, float | int | bool] | None = None, y_is_good: bool = True, bounds: list[Annotated[list[float], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)]), FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]], seed: Annotated[int, Ge(ge=-1), Le(le=4294967295)] = -1, extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None, optimization_points: Annotated[int, Ge(ge=0)] = 1000, discrete_measurements: bool = False, discrete_measurement_grid_size: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])]] = [20, 20])¶
- bounds: list[Annotated[list[float], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)]), FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]]¶
- discrete_measurement_grid_size: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])]]¶
- discrete_measurements: bool¶
- extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None¶
These extra arguments will be MERGED with the saved extra_args, with these arguments taking place over the saved values when applicable.
- optimization_points: Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0)])]¶
- seed: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=-1, description='Specific RNG seed - use -1 to use system default', metadata=[Ge(ge=-1), Le(le=4294967295)])]¶
- strategy: Literal['random', 'uncertainty', 'expected_improvement', 'upper_confidence_bound', 'upper_confidence_bound_nomad', 'polymer_acl_sampler']¶
- strategy_args: dict[str, float | int | bool] | None¶
- workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation]¶
- y_is_good: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='If true, treat higher y values as better (e.g. y represents yield or profit). If false, opposite (e.g. y represents error or waste)')]¶
- class dial_dataclass.dial_dataclass.DialWorkflowCreationParamsClient(*, dataset_x: list[Annotated[list[float], FieldInfo(annotation=NoneType, required=True, description='Field lengths of all subarrays should be equal')]], dataset_y: list[float], y_is_good: bool = True, kernel: Literal['rbf', 'matern', 'linear'], bounds: list[Annotated[list[float], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)]), FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=2), MaxLen(max_length=2)])]], seed: Annotated[int, Ge(ge=-1), Le(le=4294967295)] = -1, dim_x: int = 1, preprocess_log: bool = False, preprocess_standardize: bool = False, kernel_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None, backend_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None, extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None, backend: Literal['sklearn', 'gpax', 'sable'])¶
Dataclass which clients can use to help verify requests to the DIAL microservice.
- backend: Literal['sklearn', 'gpax', 'sable']¶
- class dial_dataclass.dial_dataclass.DialWorkflowDatasetUpdate(*, workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation], next_x: Annotated[list[float], MinLen(min_length=1)], next_y: float, kernel_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None, backend_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None, extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None)¶
- backend_args: dict[str, float | int | bool | str | list[float] | tuple] | None¶
Additional arguments to provide alongside the backend type. These arguments will OVERRIDE prior saved arguments.
- extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None¶
Miscellaneous additional arguments. These arguments will OVERRIDE prior saved arguments.
- kernel_args: dict[str, float | int | bool | str | list[float] | tuple] | None¶
Additional arguments to provide alongside the kernel type. These arguments will OVERRIDE prior saved arguments.
- next_x: list[float]¶
the next collection of X values you want to append
- next_y: float¶
the next Y value you want to append
- workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation]¶
- class dial_dataclass.dial_dataclass.DialWorkflowDatasetUpdates(*, workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation], next_x_list: Annotated[list[list[float]], MinLen(min_length=1)], next_y_list: Annotated[list[float], MinLen(min_length=1)], kernel_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None, backend_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None, extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None = None)¶
- backend_args: dict[str, float | int | bool | str | list[float] | tuple] | None¶
- extra_args: dict[str, float | int | bool | str | list[float] | tuple] | None¶
- kernel_args: dict[str, float | int | bool | str | list[float] | tuple] | None¶
- next_x_list: list[list[float]]¶
- next_y_list: list[float]¶
- workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation]¶
Response Objects¶
- class dial_dataclass.dial_dataclass_responses.DialDataResponse1D(*, data: list[float], workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation])¶
Possible response from DIAL
- data: list[float]¶
Raw data
- workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation]¶
The same workflow ID that was used to get the data, to facilitate possible load balancing.
- class dial_dataclass.dial_dataclass_responses.DialDataResponse2D(*, data: list[list[float]], workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation])¶
Possible response from DIAL
- data: list[list[float]]¶
Raw data
- workflow_id: Annotated[ObjectId, _ObjectIdPydanticAnnotation]¶
The same workflow ID that was used to get the data, to facilitate possible load balancing.