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.