Dataclass

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.