SKIL Documentation

Skymind Intelligence Layer

The community edition of the Skymind Intelligence Layer (SKIL) is free. It takes data science projects from prototype to production quickly and easily. SKIL bridges the gap between the Python ecosystem and the JVM with a cross-team platform for Data Scientists, Data Engineers, and DevOps/IT. It is an automation tool for machine-learning workflows that enables easy training on Spark-GPU clusters, experiment tracking, one-click deployment of trained models, model performance monitoring and more.

Get Started
Suggest Edits

/login

Get an authorization token through username and password

 
posthttp://host/login
{
  "userId": "admin",
  "password": "admin"
}
A binary file was returned

You couldn't be authenticated

{
  "token": "<authorization_token>"
}

Body Params

userId
string

Username for logging into SKIL

password
string

Password for logging into SKIL

Headers

Content-Type
string

The content type (application/json here)

accept
string

The response type (application/json here)

 
Suggest Edits

/deployments

Get a list of deployments

 
gethttp://host/deployments
// Get requests have no request bodies
A binary file was returned

You couldn't be authenticated

[  
   {  
      "id":"0",
      "name":"OurFirstDeployment",
      "deploymentSlug":"ourfirstdeployment",
      "status":"Partially Deployed",
      "body":{  
         "models":[  
            {  
               "id":"0",
               "name":"lstm_model",
               "status":"started",
               "scale":1,
               "uri":[  
                  "ourfirstdeployment/model/lstmmodel/default"
               ]
            },
            ...
         ],
         "transforms":[  

         ],
         "knn":[  

         ]
      }
   },
   ...
]

Headers

accept
string

The response type (application/json here)

 
Suggest Edits

/deployment/{id}

Get deployment by ID

 
gethttp://host/deployment/deploymentID
// Get requests have no request bodies
A binary file was returned

You couldn't be authenticated

{  
   "id":"0",
   "name":"New deployment",
   "deploymentSlug":"new-deployment",
   "status":"Not Deployed",
   "body":{  
      "models":[  

      ],
      "transforms":[  

      ],
      "knn":[  

      ]
   }
}

Path Params

deploymentID
int32
required

Deployment ID

Headers

accept
string

The response type (application/json here)

 
Suggest Edits

/deployment

Add a deployment

 
posthttp://host/deployment
{
    "name": "new deployment"
}
A binary file was returned

You couldn't be authenticated

{  
   "id":"6",
   "name":"new deployment",
   "deploymentSlug":"new-deployment",
   "status":"Not Deployed",
   "body":{  
      "models":[  

      ],
      "transforms":[  

      ],
      "knn":[  

      ]
   }
}

Body Params

name
string

Name of the deployment to be added

Headers

Content-Type
string

The content type (application/json here)

accept
string

The response type (application/json here)

Authorization
string

Authorization token. Format: (Bearer <auth_token>). See /login for more details.

 
Suggest Edits

/deployment/{deploymentID}/models

Get all deployment models

 
gethttp://host/deployment/deploymentID/models
// Get requests have no request bodies
A binary file was returned

You couldn't be authenticated

[  
   {  
      "id":0,
      "created":1511897328477,
      "updated":1512605963043,
      "modelType":"model",
      "deploymentId":0,
      "name":"lstm_model",
      "scale":1,
      "fileLocation":"file:///tmp/skilmodels/model/ourfirstdeployment_lstmmodel",
      "state":"started",
      "jvmArgs":null,
      "subType":null,
      "labelsFileLocation":null,
      "extraArgs":null,
      "launchPolicy":{  
         "@class":"io.skymind.deployment.launchpolicy.DefaultLaunchPolicy",
         "maxFailuresQty":3,
         "maxFailuresMs":300000
      },
      "modelState":"STARTED"
   },
   ...
]

Path Params

deploymentID
int32
required

Deployment ID

Headers

accept
string

The response type (application/json here)

 
Suggest Edits

/deployment/{deploymentID}/model

Add a model, transform or knn in a deployment

 
posthttp://host/deployment/deploymentID/model
{
    "name": "new_model",
    "scale": 1,
    "uri": "my_deployment/model/new_model/v1",
    "modelType": "model",
    "fileLocation": "file:///var/skil/storage/models/d8...eb28.zip",
    "jvmArgs": "-Xmx1g",
}
A binary file was returned

You couldn't be authenticated

{  
   "name":"new_model",
   "modelType":"model",
   "fileLocation":"file:///var/skil/storage/models/d8...eb28.zip",
   "scale":"1",
   "uri":[  
      "ourfirstdeployment/model/new_model/default"
   ]
}

Path Params

deploymentID
int32
required

ID of the deployment

Body Params

name
string

Model's display name

scale
int32

Number of servers for serving the model

uri
string

Endpoints name list to be exposed. Format -> :deploymentSlug/:modelType/:modelNameLowerCased/v1

modelType
string

Can be "transform", "knn", "model". Here, it's "model"

fileLocation
string

Model file location in the server

jvmArgs
string

Such as -Xmx1g

subType
string

Such as CSV/IMAGE for datavec. 'Similarity function' name for KNN

labelsFileLocation
string

Path of file with label names to import

extraArgs
string

JSON string with extra parameters. Such as: '{"inverted": true}'

etlJson
string

Transform JSON

inputNames
string

Names of input placeholders for TensorFlow or ONNX models

outputNames
string

Names of output placeholders for TensorFlow or ONNX models

Headers

Content-Type
string

The content type (application/json here)

accept
string

The response type (application/json here)

Authorization
string

Authorization token. Format: (Bearer <auth_token>). See /login for more details.

 
Suggest Edits

/deployment/{deploymentID}/model/{modelID}

Reimport a model, transform or knn in a deployment

 
posthttp://host/deployment/deploymentID/model/modelID
{  
   "name":"new_model4",
   "modelType": "model",
   "fileLocation":"file:///var/skil/storage/models/d8bf...eb28.zip"
}
A binary file was returned

You couldn't be authenticated

{  
   "id":0,
   "created":1511897328477,
   "updated":1513355643929,
   "modelType":"model",
   "deploymentId":0,
   "name":"lstm_model",
   "scale":1,
   "fileLocation":"file:///tmp/skilmodels/model/ourfirstdeployment_newmodel4",
   "state":"started",
   "jvmArgs":null,
   "subType":null,
   "labelsFileLocation":null,
   "extraArgs":null,
   "launchPolicy":{  
      "@class":"io.skymind.deployment.launchpolicy.DefaultLaunchPolicy",
      "maxFailuresQty":3,
      "maxFailuresMs":300000
   },
   "modelState":"STARTED"
}

Path Params

deploymentID
int32
required

ID of the deployment

modelID
int32
required

ID of the model

Body Params

name
string

Model's display name

scale
int32

Number of servers for serving the model

uri
string

Endpoints name list to be exposed. Format -> :deploymentSlug/:modelType/:modelNameLowerCased/v1

modelType
string

Can be "transform", "knn", "model". Here, it's "model"

fileLocation
string

Model file location in the server

jvmArgs
string

Such as -Xmx1g

subType
string

Such as CSV/IMAGE for datavec. 'Similarity function' name for KNN

labelsFileLocation
string

Path of file with label names to import

extraArgs
string

JSON string with extra parameters. Such as: '{"inverted": true}'

etlJson
string

Transform JSON

inputNames
string

Names of input placeholders for TensorFlow or ONNX models

outputNames
string

Names of output placeholders for TensorFlow or ONNX models

Headers

Content-Type
string

The content type (application/json here)

accept
string

The response type (application/json here)

Authorization
string

Authorization token. Format: (Bearer <auth_token>). See /login for more details.

 
Suggest Edits

/deployment/{id}

Delete a deployment by ID

 
deletehttp://host/deployment/deploymentID
// DELETE requests have no request bodies
A binary file was returned

You couldn't be authenticated

{
  "status": "Deployment removed."
}

Path Params

deploymentID
int32
required

Deployment ID

Headers

accept
string

The response type (application/json here)

 
Suggest Edits

/deployment/{deploymentID}/model/{modelID}

Delete a deployed model, transform or knn

 
deletehttp://host/deployment/deploymentID/model/modelID
// DELETE requests have no request bodies
A binary file was returned

You couldn't be authenticated

{  
   "status":"Removed Model"
}

Path Params

deploymentID
int32
required

Deployment ID

modelID
string
required

ID of the model

Headers

accept
string

The response type (application/json here)

 
Suggest Edits

/deployment/{deploymentID}/model/{modelID}/state

Reimport a model, transform or knn in a deployment

 
posthttp://host/deployment/deploymentID/model/modelID/state
{
  "state": "stop"
}
A binary file was returned

You couldn't be authenticated

{  
   "id":0,
   ...,
   "modelState":"STOPPED"
}

Path Params

deploymentID
int32
required

ID of the deployment

modelID
int32
required

ID of the model

Body Params

state
string

State of the model to be set. Values: [start, stop]

Headers

Content-Type
string

The content type (application/json here)

accept
string

The response type (application/json here)

Authorization
string

Authorization token. Format: (Bearer <auth_token>). See /login for more details.

 
Suggest Edits

/transformprocess

Retrieves the JSON string of the deployed transform process

 
gethttp://host/endpoints/deployment_name/datavec/transform_name/default/transformprocess
// Get requests have no request bodies
A binary file was returned

You couldn't be authenticated

//Transform process returned

{
  "initialSchema": {
    "columns": [
      {
        "name": "revenue",
        "columnType": "Double"
      }
    ]
  },
  "actionList": [
    {
      "transform": {
        "ConvertToStringTransform": {
          "columnName": "revenue"
        }
      }
    }
  ]
}

Path Params

deployment_name
string
required

Deployment Name

transform_name
string
required

Transform Name

 
Suggest Edits

/transformprocess

Sets the transform process with the provided JSON string

 
posthttp://host/endpoints/deployment_name/datavec/transform_name/default/transformprocess
//JSON Message body 

{
  "initialSchema": {
    "columns": [
      {
        "name": "revenue",
        "columnType": "Double"
      }
    ]
  },
  "actionList": [
    {
      "transform": {
        "ConvertToStringTransform": {
          "columnName": "revenue"
        }
      }
    }
  ]
}
A binary file was returned

You couldn't be authenticated

//The set transform process retured

{
  "initialSchema": {
    "columns": [
      {
        "name": "revenue",
        "columnType": "Double"
      }
    ]
  },
  "actionList": [
    {
      "transform": {
        "ConvertToStringTransform": {
          "columnName": "revenue"
        }
      }
    }
  ]
}

Path Params

deployment_name
string
required

Deployment Name

transform_name
string
required

Transform Name

Body Params

initialSchema
json

The transform process initial schema.

actionList
json

The transform data action list.

 
Suggest Edits

/transformincremental

Transform a single csv array record

 
posthttp://host/endpoints/deployment_name/datavec/transform_name/default/transformincremental
//JSON Message body 

{
  "values": ["1","20","100","Existing Customer - Replacement","Phone Inquiry","1"]
}
A binary file was returned

You couldn't be authenticated

//Transformed array

{
  "values": ["0.242","245","231245","0", "0", "1","0.234","1"]
}

Path Params

deployment_name
string
required

Deployment Name

transform_name
string
required

Transform Name

Body Params

values
array of strings

Array of strings - mapping to the csv record data

 
Suggest Edits

/transform

Transform a batch of csv array records

 
posthttp://host/endpoints/deployment_name/datavec/transform_name/default/transform
//JSON Message body 

{
  "records": [
    {
      "values": ["1","20","100","Existing Customer - Replacement","Phone Inquiry","1"]
    },
    {
      "values": ["2","40","200","Existing Customer - Replacement","Phone Inquiry","1"]
    }
  ]
}
A binary file was returned

You couldn't be authenticated

//Transformed batch of array

{
  "records": [
    {
      "values": ["0.242","245","231245","0","0","1","0.234","1"]
    },
    {
      "values": ["0.42","235","1234","0", "0","1","0.234","1"]
    }
  ]
}

Path Params

deployment_name
string
required

Deployment Name

transform_name
string
required

Transform Name

Body Params

records
array

Batch of array of strings - mapping to the csv records data

 
Suggest Edits

/transformincrementalarray

Transform a single csv array record and returns the transform array as Base64 encoded NDArray body

 
posthttp://host/endpoints/deployment_name/datavec/transform_name/default/transformincrementalarray
//JSON Message body 

{
  "values": ["1","20","100","Existing Customer - Replacement","Phone Inquiry","1"]
}
A binary file was returned

You couldn't be authenticated

//Transformed array

{
  "ndarray": "<base64_encoded_ndarray_string>"
}

Path Params

deployment_name
string
required

Deployment Name

transform_name
string
required

Transform Name

Body Params

values
array of strings

Array of strings - mapping to the csv record data

 
Suggest Edits

/transformarray

Transform a batch of csv array records and returns the transform array as Base64 encoded NDArray body

 
posthttp://host/endpoints/deployment_name/datavec/transform_name/default/transformarray
//JSON Message body 

{
  "records": [
    {
      "values": ["1","20","100","Existing Customer - Replacement","Phone Inquiry","1"]
    },
    {
      "values": ["2","40","200","Existing Customer - Replacement","Phone Inquiry","1"]
    }
  ]
}
A binary file was returned

You couldn't be authenticated

//Transformed batch of array

//Transformed array

{
  "ndarray": "<base64_encoded_ndarray_string>"
}

Path Params

deployment_name
string
required

Deployment Name

transform_name
string
required

Transform Name

Body Params

records
array

Batch of array of strings - mapping to the csv records data

 
Suggest Edits

/transformprocess

Retrieves the image transform process with the provided JSON string

 
gethttp://host/endpoints/deployment_name/datavec/image_transform_name/default/transformprocess
Get requests have no request bodies
A binary file was returned

You couldn't be authenticated

// Image transform process

{
  "seed": 12345,
  "transformList": [
    {
      "ScaleImageTransform": {
        "dx": 10,
        "dy": 10,
        "srch": 0,
        "h": 0,
        "srcw": 0,
        "w": 0
      }
    }
  ]
}

Path Params

deployment_name
string
required

Name of the deployment

image_transform_name
string
required

Name of the deployed image transform

 
Suggest Edits

/transformprocess

Sets the JSON string of the deployed image transform process

 
posthttp://host/endpoints/deployment_name/datavec/image_transform_name/default/transformprocess
// Image transform process 

{
  "seed": 12345,
  "transformList": [
    {
      "ScaleImageTransform": {
        "dx": 10,
        "dy": 10,
        "srch": 0,
        "h": 0,
        "srcw": 0,
        "w": 0
      }
    }
  ]
}
A binary file was returned

You couldn't be authenticated

// Image transform process 

{
  "seed": 12345,
  "transformList": [
    {
      "ScaleImageTransform": {
        "dx": 10,
        "dy": 10,
        "srch": 0,
        "h": 0,
        "srcw": 0,
        "w": 0
      }
    }
  ]
}

Path Params

deployment_name
string
required

Name of the deployment

image_transform_name
string
required

Name of the deployed image transform

Body Params

seed
int32

The random seed for reproducible results

transformList
json

The list of image transforms and it's metadata

 
Suggest Edits

/transformincrementalarray

Retrieves the uri of the image file and returns the transformed images as base64 encoded NDArray body

 
posthttp://host/endpoints/deployment_name/datavec/image_transform_name/default/transformincrementalarray
{
  "uri": "file:/E:/Image/image.jpg"
}
A binary file was returned

You couldn't be authenticated

//Transformed array

{
  "ndarray": "<base64_encoded_ndarray_string>"
}

Path Params

deployment_name
string
required

Name of the deployment

image_transform_name
string
required

Name of the deployed image transform

Body Params

uri
string

Uri of the image file

 
Suggest Edits

/transformarray

Retrieves the uri of the image file and returns the transformed images as base64 encoded NDArray body

 
posthttp://host/endpoints/deployment_name/datavec/image_transform_name/default/transformarray
{
  "records": [
    {
      "uri": "file:/E:/Image/image1.jpg"
    },
    {
      "uri": "file:/E:/Image/image2.jpg"
    }
  ]
}
A binary file was returned

You couldn't be authenticated

//Transformed array

{
  "ndarray": "<base64_encoded_ndarray_string>"
}

Path Params

deployment_name
string
required

Name of the deployment

image_transform_name
string
required

Name of the deployed image transform

Body Params

records
array

Batch of image URIs

 
Suggest Edits

/predict

Run inference on the input array

 
posthttp://host/endpoints/deployment_name/model/model_name/default/predict
{
  "id": "string",
  "needsPreProcessing": false,
  "prediction": {
    "array": "<base64_encoded_ndarray>",
  }
}
A binary file was returned

You couldn't be authenticated

{
  "id": "string",
  "needsPreProcessing": false,
  "prediction": {
    "array": "<base64_encoded_ndarray>",
  }
}

Path Params

deployment_name
string
required

Name of the deployment

model_name
string
required

Name of the deployed model

Body Params

id
string

UUID for the array

needsPreProcessing
boolean

Preprocess the input array with the associated ETL if true

prediction
object

INDArray as input

 
Suggest Edits

/classify

Use the deployed model to classify the input

 
posthttp://host/endpoints/deployment_name/model/model_name/default/classify
{
  "id": "string",
  "needsPreProcessing": false,
  "prediction": {
    "array": "<base64_encoded_ndarray>",
  }
}
A binary file was returned

You couldn't be authenticated

{
  "results": [
    0	// The classified class index 
  ],
  "probabilities": [
    0.452	// The probability of the classified class index
  ],
  "minibatchId": "string"
}

Path Params

deployment_name
string
required

Name of the deployment

model_name
string
required

Name of the deployed model

Body Params

id
string

UUID for the array

needsPreProcessing
boolean

Preprocess the input array with the associated ETL if true

prediction
object

INDArray as input

 
Suggest Edits

/classifyarray

Same as /classify but returns the output as Base64 encoded NDArray Body

 
posthttp://host/endpoints/deployment_name/model/model_name/default/classifyarray
{
  "id": "string",
  "needsPreProcessing": false,
  "prediction": {
    "array": "<base64_encoded_ndarray>",
  }
}
A binary file was returned

You couldn't be authenticated

{
  "ndarray": "<base64_encoded_ndarray_string>"
}

Path Params

deployment_name
string
required

Name of the deployment

model_name
string
required

Name of the deployed model

Body Params

id
string

UUID for the array

needsPreProcessing
boolean

Preprocess the input array with the associated ETL if true

prediction
object

INDArray as input

 
Suggest Edits

/multiclassify

Represents all of the labels for a given classification

 
posthttp://host/endpoints/deployment_name/model/model_name/default/multiclassify
{
  "id": "string",
  "needsPreProcessing": false,
  "prediction": {
    "array": "<base64_encoded_ndarray>",
  }
}
A binary file was returned

You couldn't be authenticated

{
  "rankedOutcomes": [
    [
      "string"
    ]
  ],
  "maxOutcomes": [
    "string"
  ],
  "probabilities": [
    [
      0.4
    ]
  ]
}

Path Params

deployment_name
string
required

Name of the deployment

model_name
string
required

Name of the deployed model

Body Params

id
string

UUID for the array

needsPreProcessing
boolean

Preprocess the input array with the associated ETL if true

prediction
object

INDArray as input

 
Suggest Edits

/modelset

Set the model to be served

 
posthttp://host/endpoints/deployment_name/model/model_name/default/modelset
No code samples available
A binary file was returned

You couldn't be authenticated

{
  "status": 100
}

// 100 - Model set successfully 
// 200 - Model Updated Successfully 
// 201 - Model Update Failed

Path Params

deployment_name
string
required

Name of the deployment

model_name
string
required

Name of the deployed model

Body Params

file
file

Multi-part HTTP upload

 
Suggest Edits

/modelupdate

Update the model to be served

 
posthttp://host/endpoints/deployment_name/model/model_name/default/modelupdate
No code samples available
A binary file was returned

You couldn't be authenticated

{
  "status": 100
}

// 100 - Model set successfully 
// 200 - Model Updated Successfully 
// 201 - Model Update Failed

Path Params

deployment_name
string
required

Name of the deployment

model_name
string
required

Name of the deployed model

Body Params

file
file

Multi-part HTTP upload

 
Suggest Edits

/jsonarray

Run inference on the input and returns it as json response

 
posthttp://host/endpoints/deployment_name/model/model_name/default/jsonarray
{
  "id": "string",
  "needsPreProcessing": false,
  "prediction": {
    "array": "<base64_encoded_ndarray>"
  }
}
A binary file was returned

You couldn't be authenticated

{
  "array": {
    "array": "<base64_encoded_ndarray>"
  }
}

Path Params

deployment_name
string
required

Name of the deployment

model_name
string
required

Name of the deployed model

Body Params

id
string

UUID for the array

needsPreProcessing
boolean

Preprocess the input array with the associated ETL if true

prediction
object

INDArray as input

 
Suggest Edits

/predictwithpreprocess

Preprocesses the input and run inference on it

 
posthttp://host/endpoints/deployment_name/model/model_name/default/predictwithpreprocess
[
  "string"
]
A binary file was returned

You couldn't be authenticated

{
  "id": "string",
  "needsPreProcessing": false,
  "prediction": {
    "array": "<base64_encoded_ndarray>",
  }
}

Path Params

deployment_name
string
required

Name of the deployment

model_name
string
required

Name of the deployed model

 
Suggest Edits

/predictwithpreprocessjson

Preprocesses the input and run inference on it and returns it as json

 
posthttp://host/endpoints/deployment_name/model/model_name/default/predictwithpreprocessjson
[
  "string"
]
A binary file was returned

You couldn't be authenticated

{
  "array": {
    "array": "<base64_encoded_ndarray>"
  }
}

Path Params

deployment_name
string
required

Name of the deployment

model_name
string
required

Name of the deployed model

 
Suggest Edits

/knn

Runs knn on the given index with the given k (note that this is for data already within the existing dataset not new data)

 
posthttp://host/endpoints/deployment_name/knn/knn_name/default/knn
{
  "k": 2,
  "inputIndex": 3
}
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "index": 0,
      "distance": 1,
      "label": "string"
    }
  ]
}

Path Params

deployment_name
string
required

Name of the deployment

knn_name
string
required

Name of the deployed KNN

Body Params

k
int32

the number of results

inputIndex
int32

the index of the EXISTING ndarray to run a search on

 
Suggest Edits

/knnnew

Run a k nearest neighbors search on a NEW data point

 
posthttp://host/endpoints/deployment_name/knn/knn_name/default/knnnew
{
  "ndarray": "string",
  "k": 2,
  "forceFillK": false
}
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "index": 0,
      "distance": 1,
      "label": "string"
    }
  ]
}

Path Params

deployment_name
string
required

Name of the deployment

knn_name
string
required

Name of the deployed KNN

Body Params

ndarray
string

base64 encoded array to run the search on. Note that this must be a row vector

k
int32

the number of results to retrieve

forceFillK
boolean