Retrieve Suggested Config from User Input Via REST API
In some cases, users might wish to get a suggested configuration based on their data without actually exporting their data to Mona. This can now be easily achieved with Mona's /suggest_new_config REST API endpoint.
To access Mona's API, first, an accessToken must be generated and added to the request.
Once users have their accessToken they can add it to their authorization and send a POST request in the following format:
curl --location --request POST 'https://api{YOUR-USER-ID}.monalabs.io/suggest_new_config' \
--header 'Authorization: Bearer YOUR-ACCESS-TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"events": {
"messages": [
{
"arcClass": "{YOUR_CONTEXT_CLASS}",
"contextId": "{contextId}",
"exportTimestamp": {TIMESTAMP},
"message": {
"occupation": "manufacturing",
"city": "Fort Smith",
"state": "Arkansas",
"purpose": "Credit score improvement",
"credit_score": 0.3926368592424558,
"loan_taken": true,
"return_until": 1619948737000,
"offered_amount": 2015,
"approved_amount": 2015,
"stage": "inference",
"model_version": "v1"
}
},
{
"arcClass": "{YOUR_CONTEXT_CLASS}",
"contextId": "{contextId}",
"exportTimestamp": {TIMESTAMP},
"message": {
"feature_0": 2858561.5949184396,
"feature_1": 5.777438394215511,
"feature_2": 762,
"feature_3": 8102,
"feature_4": 0,
"feature_5": 0.9689581447209208,
"feature_6": 27,
"feature_7": 0,
"feature_8": 1384.99655593255,
"feature_9": 18.11042489302702
}
}
]
}
}'
import requests
url = "https://api{YOUR-USER-ID}.monalabs.io/suggest_new_config"
payload={
"events": {
"messages": [
{
"arcClass": "{YOUR_CONTEXT_CLASS}",
"contextId": "{contextId}",
"exportTimestamp": {TIMESTAMP},
"message": {
"occupation": "manufacturing",
"city": "Fort Smith",
"state": "Arkansas",
"purpose": "Credit score improvement",
"credit_score": 0.3926368592424558,
"loan_taken": true,
"return_until": 1619948737000,
"offered_amount": 2015,
"approved_amount": 2015,
"stage": "inference",
"model_version": "v1"
}
},
{
"arcClass": "{YOUR_CONTEXT_CLASS}",
"contextId": "{contextId}",
"exportTimestamp": {TIMESTAMP},
"message": {
"feature_0": 2858561.5949184396,
"feature_1": 5.777438394215511,
"feature_2": 762,
"feature_3": 8102,
"feature_4": 0,
"feature_5": 0.9689581447209208,
"feature_6": 27,
"feature_7": 0,
"feature_8": 1384.99655593255,
"feature_9": 18.11042489302702
}
}
]
}
}
headers = {
'Authorization': 'Bearer YOUR-ACCESS-TOKEN',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)
from mona_sdk.client import Client
api_key = <YOUR-API-KEY>
secret = <YOUR-SECRET>
my_mona_client = Client(api_key, secret)
my_mona_client.get_suggested_config_from_user_input(
events={
"messages": [
{
"arcClass": "YOUR_CONTEXT_CLASS",
"contextId": "someContextId",
"exportTimestamp": 1644466612,
"message": {
"occupation": "manufacturing",
"city": "Fort Smith",
"state": "Arkansas",
"purpose": "Credit score improvement",
"credit_score": 0.3926368592424558,
"loan_taken": True,
"return_until": 1619948737000,
"offered_amount": 2015,
"approved_amount": 2015,
"stage": "inference",
"model_version": "v1"
}
},
{
"arcClass": "YOUR_CONTEXT_CLASS",
"contextId": "someContextId",
"exportTimestamp": 1644488612,
"message": {
"feature_0": 2858561.5949184396,
"feature_1": 5.777438394215511,
"feature_2": 762,
"feature_3": 8102,
"feature_4": 0,
"feature_5": 0.9689581447209208,
"feature_6": 27,
"feature_7": 0,
"feature_8": 1384.99655593255,
"feature_9": 18.11042489302702
}
}
]
}
)
The response for this call will be a list of all new sources still unused by Mona and a suggested configuration that includes existing fields in this class and the new fields exported now.
{
"unused_sources": {
"YOUR_CONTEXT_CLASS": [
{
"field_name": "approved_amount",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "city",
"field_possible_types": [
"string"
]
},
{
"field_name": "credit_score",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "feature_0",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "feature_1",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "feature_2",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "feature_3",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "feature_4",
"field_possible_types": [
"boolean",
"numeric",
"string"
]
},
{
"field_name": "feature_5",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "feature_6",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "feature_7",
"field_possible_types": [
"boolean",
"numeric",
"string"
]
},
{
"field_name": "feature_8",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "feature_9",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "loan_taken",
"field_possible_types": [
"boolean",
"numeric",
"string"
]
},
{
"field_name": "model_version",
"field_possible_types": [
"string"
]
},
{
"field_name": "occupation",
"field_possible_types": [
"string"
]
},
{
"field_name": "offered_amount",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "purpose",
"field_possible_types": [
"string"
]
},
{
"field_name": "return_until",
"field_possible_types": [
"numeric",
"string"
]
},
{
"field_name": "stage",
"field_possible_types": [
"string"
]
},
{
"field_name": "state",
"field_possible_types": [
"string"
]
}
]
},
"suggested_config": {
"YOUR_USER_ID": {
"YOUR_CONTEXT_CLASS": {
"fields": {
"approved_amount": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"city": {
"type": "string"
},
"credit_score": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"feature_0": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"feature_1": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"feature_2": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"feature_3": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"feature_4": {
"type": "boolean"
},
"feature_5": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"feature_6": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"feature_7": {
"type": "boolean"
},
"feature_8": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"feature_9": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"loan_taken": {
"type": "boolean"
},
"model_version": {
"type": "string"
},
"occupation": {
"type": "string"
},
"offered_amount": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"purpose": {
"type": "string"
},
"return_until": {
"type": "numeric",
"segmentations": {
"original": {
"default": true,
"bucket_size": 1
}
}
},
"stage": {
"type": "string"
},
"state": {
"type": "string"
}
}
}
}
}
}
Updated almost 3 years ago