The SubmitX Collaboration Platform exposes Application Programming Interface (API) which conforms to Representational State Transfer (ReST) architecture style. These APIs can be accessed by a software program or through the CURL command by providing a valid access token. The manageable resource at the server side is the machine learning model (referred to as “Model” henceforth) which is persisted as a brain file.

Whenever an API is invoked, an on-demand “SubmitX Brain” instance is loaded into the memory which in turn loads the resource (the model on which the operation is invoked) from the database. This instance stays alive till the request is processed and does not rely on the user session.This statelessness of the platform allows the load-balancer to distribute the incoming requests to any worker node and thus makes it highly scalable.

As a starting point the API provides a discovery interface to the user to fetch the models owned by the user, allows the user to read a representational state of the model (in JSON format) and perform various operations on the model like editing the model, data preparation, feature importance calculation, algorithm selection, hyperparameter tuning, learn, deploy, share, save, predict and forecast.

The APIs can be broadly categorized into

  1. User Management and Access Control
    1. Register a new user
    2. Fetch User Profile along with the following information
      • user category
      • subscription status
      • available algorithms
      • list of hyperparameters per algorithm
      • available feature engineering nodes
      • list of permissions
    3. Fetch the access rights / model shared with other user.
    4. Modify the access rights of the model towards a particular user.
    5. Share a model with another registered user
    6. Assign / Revoke the model access rights to / from another user

  1. Functional
    1. List the models that the user has access to.
    2. View a learnt model and it’s properties like model owner, training algorithm, model diagnostics etc.
    3. Create a model from raw data
    1. Prepare a model
    2. Prepare + Feature Importance
    3. Prepare + Learn a model
    4. Prepare + Learn + Deploy a model
    5. Save a model
    6. Predict the output

  1. Operational.
    1. Check whether the service is running
    2. Fetch the state of a running task
    3. Fetch task history
    4. Clear task history
    5. Upload a raw file in the Sandbox
    6. Download prepared data
    7. Download a log file from Sandbox
    8. Clean all log files in Sandbox
    9. Fetch all file names from Sandbox along with file details.

Few samples are shown below

Health Check

Parameters: None

Check whether the server is alive and processing requests

celeriacmldevops3.ap-south-1.elasticbeanstalk.com/knowledge-hotline/knowledge/hello

List

Parameters:

KeyValue
accessToken<accessToken> received during registration

List the models that you have access to.

celeriacmldevops3.ap-south-1.elasticbeanstalk.com/knowledge-hotline/knowledge/discover