Sibyl RestAPI Documentation (1.0.0)

Download OpenAPI specification:Download

“DAI-Lab” An open source project from Data to AI Lab at MIT.

What is Sibyl?

Sibyl is a highly configurable API for supporting the full human-ML decision making workflow.

entity

Entities being analyzed

Modify an Entity by ID

path Parameters
eid
required
string

ID of the entity to modify/create

Request Body schema: application/json
row_ids
Array of strings

Row IDs

features
object

Feature values

labels
object

Ground-truth labels. Only included if available

object

Additional properties

Responses

Request samples

Content type
application/json
{
  • "row_ids": [
    ],
  • "features": { },
  • "labels": { },
  • "property": {
    }
}

Response samples

Content type
application/json
{
  • "eid": "string",
  • "row_ids": [
    ],
  • "features": { },
  • "labels": { },
  • "property": {
    }
}

Get an Entity by ID

path Parameters
eid
required
string

ID of the entity to get

query Parameters
row_id
string

ID of the row to get for the entity

Responses

Response samples

Content type
application/json
{
  • "eid": "123",
  • "features": {
    },
  • "row_ids": [
    ],
  • "labels": {
    },
  • "property": {
    }
}

Insert or modify multiple entities

Request Body schema: application/json
Array of objects (Entity)

Responses

Request samples

Content type
application/json
{
  • "entities": [
    ]
}

Response samples

Content type
application/json
{
  • "entities": [
    ]
}

Get all Entities

If group ID is specified, return entities of that group.

query Parameters
group_id
string

ID of the group to filter entities

Responses

Response samples

Content type
application/json
{
  • "entities": [
    ]
}

feature

ML model input features

Update or create a feature by name

path Parameters
feature_name
required
string

Name of the feature to update

Request Body schema: application/json
description
string
negated_description
string
category
string
type
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "negated_description": "string",
  • "category": "string",
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "negated_description": "string",
  • "category": "string",
  • "type": "string"
}

Get a feature by name

path Parameters
feature_name
required
string

Name of the feature to get info for

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "negated_description": "string",
  • "category": "string",
  • "type": "string"
}

Update or create multiple features

Request Body schema: application/json
Array of objects (Feature)

Responses

Request samples

Content type
application/json
{
  • "features": [
    ]
}

Response samples

Content type
application/json
{
  • "features": [
    ]
}

Get all features

Responses

Response samples

Content type
application/json
{
  • "features": [
    ]
}

Add or modify categories

Request Body schema: application/json
Array of objects (Category)

Responses

Request samples

Content type
application/json
{
  • "categories": [
    ]
}

Response samples

Content type
application/json
{
  • "entities": [
    ]
}

Get all feature categories

Responses

Response samples

Content type
application/json
{
  • "categories": [
    ]
}

model

The full ML model pipeline

Update or create a model by id.

Note: Does not currently support updating realapp.

path Parameters
model_id
required
string

Name of the model to update/create

Request Body schema: application/json
description
string
performance
string
importances
object
training_set_id
string

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "performance": "string",
  • "importances": { },
  • "training_set_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "description": "string",
  • "performance": "string"
}

Get a Model by ID

path Parameters
model_id
required
string

ID of the model to get information about

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "description": "string",
  • "performance": "string"
}

Get all Models

Responses

Response samples

Content type
application/json
{
  • "models": [
    ]
}

Get Model feature importances

path Parameters
model_id
required
string

ID of the model to get importances for

Responses

Response samples

Content type
application/json
{
  • "importances": [
    ]
}

Get a model prediction

query Parameters
model_id
required
string

ID of the model to use to predict

eid
required
string

ID of the entity to predict on

row_id
string

ID of row to predict on (defaults to first row)

Responses

Response samples

Content type
application/json
{
  • "output": 0
}

Get multiple model predictions.

If given multiple eids, return one prediction per eid (first row). If given one eid, return one prediction per row_id. Only one of eids and row_ids can contain more than one element.

Request Body schema: application/json
required
eids
required
Array of strings
model_id
required
string
row_ids
Array of strings

row_ids to select from the given eid

return_proba
boolean

Responses

Request samples

Content type
application/json
{
  • "eids": [
    ],
  • "model_id": "string",
  • "row_ids": [
    ],
  • "return_proba": true
}

Response samples

Content type
application/json
{
  • "predictions": [
    ]
}

context

Application-specific configurations

Update or create a context

path Parameters
context_id
required
string

ID of the context to update/create

Request Body schema: application/json
config
object

Responses

Request samples

Content type
application/json
{
  • "config": { }
}

Response samples

Content type
application/json
{
  • "config": { }
}

Get a Context by ID

path Parameters
context_id
required
string

ID of the context to get

Responses

Response samples

Content type
application/json
{
  • "config": { }
}

Get all Context ids

Responses

Response samples

Content type
application/json
{
  • "contexts": [
    ]
}

group

Entity groups

Get all EntityGroups

Responses

Response samples

Content type
application/json
{
  • "groups": [
    ]
}

Get an EntityGroup by ID

path Parameters
group_id
required
string

ID of the group to get

Responses

Response samples

Content type
application/json
{
  • "group_id": "string",
  • "property": { }
}

computing

Computed explanations and other ML augmenting information

Get feature contributions

Request Body schema: application/json
required
eid
required
string
row_id
string
model_id
required
string

Responses

Request samples

Content type
application/json
{
  • "eid": "string",
  • "row_id": "string",
  • "model_id": "string"
}

Response samples

Content type
application/json
{
  • "contributions": {
    }
}

Get feature contributions for multiple eids, or for multiple row_ids in a single entity

Request Body schema: application/json
required
eids
required
Array of strings
model_id
required
string
row_ids
Array of strings

Responses

Request samples

Content type
application/json
{
  • "eids": [
    ],
  • "model_id": "string",
  • "row_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "contributions": {
    }
}

Change one feature value at a time and get the resulting model predictions.

Request Body schema: application/json
required
eid
required
string
row_id
string
model_id
required
string
required
object (Changes)
return_proba
boolean

Responses

Request samples

Content type
application/json
{
  • "eid": "string",
  • "row_id": "string",
  • "model_id": "string",
  • "changes": {
    },
  • "return_proba": true
}

Response samples

Content type
application/json
{
  • "predictions": [
    ]
}

Get the resulting model prediction after making all changes

Request Body schema: application/json
required
eid
required
string
row_id
string
model_id
required
string
required
object (Changes)
return_proba
boolean

Responses

Request samples

Content type
application/json
{
  • "eid": "string",
  • "row_id": "string",
  • "model_id": "string",
  • "changes": {
    },
  • "return_proba": true
}

Response samples

Content type
application/json
{
  • "prediction": 0
}

Get the feature contribution of an entity modified by changes

Request Body schema: application/json
required
eid
required
string
row_id
string
model_id
required
string
required
object (Changes)

Responses

Request samples

Content type
application/json
{
  • "eid": "string",
  • "row_id": "string",
  • "model_id": "string",
  • "changes": {
    }
}

Response samples

Content type
application/json
{
  • "contribution": {
    }
}

Get nearest neighbors for list of eids, or for all rows in a single eid

Request Body schema: application/json
required
eids
required
Array of strings
model_id
required
string

Responses

Request samples

Content type
application/json
{
  • "eids": [
    ],
  • "model_id": "string"
}

Response samples

Content type
application/json
{
  • "contributions": [
    ]
}