Python SDK
In this document are exposed all classes implemented inside the Python SDK.
Clientβ
To interact with the Radicalbit AI platform via the SDK, the first thing that must be done is to create the client.
The only required parameter is the base_url
, which is the URL of the running platform.
from radicalbit_platform_sdk.client import Client
base_url = "http://localhost:9000/"
client = Client(base_url)
Once you have a client instance, you can interact with models inside the platform. Γ The available methods of a client instance are:
-
create_model(model: CreateModel)
: it is used to create a brand new model inside the platform.It requires a CreateModel instance and returns the created Model.
from radicalbit_platform_sdk.models import (
CreateModel,
DataType,
FieldType,
ModelType,
ColumnDefinition,
OutputType,
Granularity,
SupportedTypes,
)
model_definition = CreateModel(
name="My model",
modelType=ModelType.BINARY,
dataType=DataType.TABULAR,
granularity=Granularity.HOUR,
features=[
ColumnDefinition(
name="first_name",
type=SupportedTypes.string,
field_type=FieldType.categorical
),
ColumnDefinition(
name="last_name",
type=SupportedTypes.string,
field_type=FieldType.categorical
),
ColumnDefinition(
name="age",
type=SupportedTypes.int,
field_type=FieldType.numerical
),
],
outputs=OutputType(
prediction=ColumnDefinition(
name="prediction",
type=SupportedTypes.float,
field_type=FieldType.numerical
),
output=[
ColumnDefinition(
name="adult",
type=SupportedTypes.string,
field_type=FieldType.categorical
)
],
),
target=ColumnDefinition(
name="prediction",
type=SupportedTypes.float,
field_type=FieldType.numerical
),
timestamp=ColumnDefinition(
name="prediction_timestamp",
type=SupportedTypes.datetime,
field_type=FieldType.datetime
),
)
model = client.create_model(model_definition) -
get_model()
: It gets a specific and existing model by its identifier. It requires the id of an existing model and returns the Model instance.model = client.get_model(model_uuid)
-
search_models()
: It gets a list of models. It returns a list of Model.models = client.search_models()
Modelβ
It represents an instance of a monitored model.
The available methods of a model instance are:
-
uuid()
: It returns the UUID identifier of the model -
name()
: It returns the name of the model -
description()
: It returns the modelβs description, if provided -
model_type()
: It returns the ModelType -
data_type()
: It returns the DataType -
granularity()
: It returns the Granularity used by metrics aggregation -
features()
: It returns a list of ColumnDefinition representing all the feature definitions -
target()
: It returns a ColumnDefinition representing the ground truth -
timestamp()
: It returns a ColumnDefinition representing the prediction timestamp. This field is used as reconciliation between reference and current datasets -
outputs()
: It returns an OutputType representing the model outputs, including prediction and possibly prediction probability fields -
frameworks()
: It returns the used frameworks, if defined -
algorithm()
: It returns the used algorithm, if defined -
delete()
: It deletes the actual model from the platform -
update_features(features: List[ColumnDefinition])
: Update the model features definition if reference dataset is not provided. -
load_reference_dataset(file_name: str, bucket: str, object_name: Optional[str] = None, aws_credentials: Optional[AwsCredentials] = None, separator: str = β,β)
: It uploads a reference dataset file to an S3 bucket and then binds it to the model. It returns a ModelReferenceDataset.Method properties are:
file_name
: The name of the reference filebucket
: The name of the S3 bucket.object_name
: The optional name of the object uploaded to S3. Default value is None.aws_credentials
: AwsCredentials used to connect to S3 bucket. Default value is None.separator
: Optional value to define separator used inside CSV file. Default value is ","
reference_dataset = model.load_reference_dataset(
file_name="reference.csv", bucket="my-bucket"
) -
bind_reference_dataset(dataset_url: str, aws_credentials: Optional[AwsCredentials] = None, separator: str = β,β)
: It binds an existing reference dataset file already uploded to S3 to the model. It returns a ModelReferenceDataset.Method properties are:
dataset_url
: The url of the file already uploaded inside S3aws_credentials
: AwsCredentials used to connect to S3 bucket. Default value is None.separator
: Optional value to define separator used inside CSV file. Default value is ","
reference_dataset = model.bind_reference_dataset(
dataset_url="s3://my-bucket/reference.csv"
) -
load_current_dataset(file_name: str, bucket: str, correlation_id_column: Optional[str] = None, object_name: Optional[str] = None, aws_credentials: Optional[AwsCredentials] = None, separator: str = β,β)
: It uploads a current dataset file to an S3 bucket and then bind it to the model. It returns a ModelCurrentDataset.Method properties are:
file_name
: The name of the reference filebucket
: The name of the S3 bucket.correlation_id_column
: The name of the column used for correlation idobject_name
: The optional name of the object uploaded to S3. Default value is None.aws_credentials
: AwsCredentials used to connect to S3 bucket. Default value is None.separator
: Optional value to define separator used inside CSV file. Default value is ","
current_dataset = model.load_current_dataset(
file_name="reference.csv",
bucket="my-bucket",
correlation_id_column="prediction_identifier"
) -
bind_current_dataset(dataset_url: str, correlation_id_column: str, aws_credentials: Optional[AwsCredentials] = None, separator: str = β,β)
: It binds an existing current dataset file already uploded to S3 to the model. It returns a ModelCurrentDataset.Method properties are:
dataset_url
: The url of the file already uploaded inside S3correlation_id_column
: The name of the column used for correlation idaws_credentials
: AwsCredentials used to connect to S3 bucket. Default value is None.separator
: Optional value to define separator used inside CSV file. Default value is ","
current_dataset = model.bind_current_dataset(
dataset_url="s3://my-bucket/reference.csv",
correlation_id_column="prediction_identifier"
) -
get_reference_datasets()
: It returns a list of ModelReferenceDataset representing all the current datasets and related metrics -
get_current_datasets()
: It returns a list of ModelCurrentDataset representing all the current datasets and related metrics
ModelReferenceDatasetβ
- It represent an instance of uploaded reference dataset.The available methods are:
uuid()
: the UUID identifier of the uploaded datasetpath()
: The URL of the dataset in the object storagedate()
: When dataset was uploadedstatus()
: The status job of the while it is calculating metricsstatistics()
: If job status isSUCCEEDED
then returns the dataset statisticsdata_quality()
: If job status isSUCCEEDED
then returns the data quality metrics of the current datasetmodel_quality()
: If job status isSUCCEEDED
then returns the model quality metrics of the current dataset
ModelCurrentDatasetβ
It represents an instance of uploaded current dataset.
The available methods are:
uuid()
: The UUID identifier of the uploaded datasetpath()
: The URL of the dataset in the object storagedate()
: When dataset was uploadedstatus()
: The status job while it is calculating metricsstatistics()
: If job status isSUCCEEDED
then returns the dataset statisticsdata_quality()
: If job status isSUCCEEDED
then returns the data quality metrics of the current datasetmodel_quality()
: If job status isSUCCEEDED
then returns the model quality metrics of the current datasetdrift()
: If job status isSUCCEEDED
then returns the drift metrics of the current dataset
CreateModelβ
It contains the definition of a model to be created.
Its properties are:
name
: The name of the model.description
: An optional description to explain something about the model.model_type
: The ModelType of the modeldata_type
: It explains the DataType used by the modelgranularity
: The Granularity of window used to calculate aggregated metricsfeatures
: A list of ColumnDefinition representing the features setoutputs
: An OutputType definition to explain the output of the modeltarget
: The ColumnDefinition used to represent modelβs targettimestamp
: The ColumnDefinition used to store when prediction was doneframeworks
: An optional field to describe the frameworks used by the modelalgorithm
: An optional field to explain the algorithm used by the model
ModelTypeβ
Enumeration used to define the type of the model and to calculate the right metrics.
Available values are: REGRESSION
, BINARY
and MULTI_CLASS
.
DataTypeβ
Enumeration used to define the type of data managed by the model.
Available values are: TABULAR
, TEXT
and IMAGE
Granularityβ
Enumeration used to define the granularity used by aggregations inside metrics calculation.
Available values are: HOUR
, DAY
, WEEK
and MONTH
.
ColumnDefinitionβ
It contains the definition of a single column inside a dataset.
Its properties are:
name
: The name of the columntype
: The SupportedTypes of the data represented inside this columnfield_type
: The FieldType of the field
SupportedTypesβ
Enumeration used to define the available types that a column definition could have.
Available values are: int
, float
, str
, bool
and datetime
FieldTypeβ
Enumeration used to define the categorical type of the field.
Available values are: categorical
, numerical
and datetime
.
OutputTypeβ
It defines the output of the model.
Its properties are:
output
: A list of ColumnDefinition representing the outputs setprediction
: The ColumnDefinition used to represent the predictionprediction_proba
: An optional ColumnDefinition used to represent the prediction probability
AwsCredentialsβ
It defines credentials needed to authenticate to an S3 compatible API service.
Its properties are:
access_key_id
: Access key ID needed to authenticate to APIssecret_access_key
: Secret access key needed to authenticate to APIsdefault_region
: Region to be usedendpoint_url
: Optional value to define an S3 compatible API endpoint, if different than AWS. By default isNone