Skip to main content

The Python SDK for interacting with NannyML Cloud

Project description

💡 What is NannyML Cloud SDK?

NannyML Cloud is a web application that allows you to estimate post-deployment model performance (without access to targets), detect data drift, and intelligently link data drift alerts back to changes in model performance. Built for data scientists, NannyML Cloud has an easy-to-use interface, interactive visualizations, is completely model-agnostic and currently supports all tabular use cases, classification and regression.

NannyML Cloud SDK is a python package that enables programatic interaction with NannyML Cloud. It allows you to automate all aspects of NannyML Cloud, including:

  • Creating a model for monitoring
  • Logging inferences for analysis
  • Triggering model analysis

🚀 Getting started

Install NannyML Cloud SDK

Currently the package is private, which means you cannot install it via the regular python channels. Instead, you'll have to install directly from the github repository.

pip install git+https://github.com/NannyML/nannyml-cloud-sdk.git

Authentication

To use the NannyML Cloud SDK you need to provide the URL of your NannyML Cloud instance and an API token to authenticate. You can obtain an API token on the settings page of your NannyML Cloud instance.

In code:

import nannyml_cloud_sdk as nml_sdk

nml_sdk.url = "https://beta.app.nannyml.com"
nml_sdk.api_token = r"api token goes here"

Using environment variables:

import nannyml_cloud_sdk as nml_sdk
import os

nml_sdk.url = os.environ['NML_SDK_URL']
nml_sdk.api_token = os.environ['NML_SDK_API_TOKEN']

[!NOTE] We recommend using an environment variable for the API token. This prevents accidentally leaking any token associated with your personal account when sharing code.

Quick start

This snippet provides an example of how you can create a model in NannyML Cloud to start monitoring it.

import nannyml_cloud_sdk as nml_sdk
import os
import pandas as pd

nml_sdk.url = os.environ['NML_SDK_URL']
nml_sdk.api_token = os.environ['NML_SDK_API_TOKEN']

# Load a NannyML binary classification dataset to use as example
reference_data = pd.read_csv('https://github.com/NannyML/nannyml/raw/main/nannyml/datasets/data/synthetic_sample_reference.csv')
analysis_data = pd.read_csv('https://github.com/NannyML/nannyml/raw/main/nannyml/datasets/data/synthetic_sample_analysis.csv')
target_data = pd.read_csv('https://github.com/NannyML/nannyml/raw/main/nannyml/datasets/data/synthetic_sample_analysis_gt.csv')
print(reference_data.head())

# Inspect schema from dataset and apply overrides
schema = nml_sdk.monitoring.Schema.from_df(
    'BINARY_CLASSIFICATION',
    reference_data,
    target_column_name='work_home_actual',
    ignore_column_names=('period'),
)

# Create model
model = nml_sdk.monitoring.Model.create(
    name='Example model',
    schema=schema,
    chunk_period='MONTHLY',
    reference_data=reference_data,
    analysis_data=analysis_data,
    target_data=target_data,
    key_performance_metric='F1',
)
print("Model", model['id'], "created at", model['createdAt'])

[!NOTE] The reference dataset is inspected to determine the model schema. NannyML Cloud uses heuristics to automatically identify most columns, but some columns may not be automatically identified. In this case the target column is not identified, so we manually define work_home_actual as the target column.

Once a model has been set up in NannyML Cloud, you could use the snippet below to add more data and ensure continuous monitoring of your model.

import nannyml_cloud_sdk as nml_sdk
import os
import pandas as pd

nml_sdk.url = os.environ['NML_SDK_URL']
nml_sdk.api_token = os.environ['NML_SDK_API_TOKEN']

# Find model in NannyML Cloud by name
model, = nml_sdk.monitoring.Model.list(name='Example model')

# Add new inferences to NannyML Cloud
new_inferences = pd.DataFrame()
nml_sdk.monitoring.Model.add_analysis_data(model['id'], new_inferences)

# If you have delayed access to ground truth, you can add them to NannyML Cloud
# later. This will match analysis & target datasets using an identifier column.
delayed_ground_truth = pd.DataFrame()
nml_sdk.monitoring.Model.add_analysis_target_data(model['id'], delayed_ground_truth)

# Trigger analysis of the new data
nml_sdk.monitoring.Run.trigger(model['id'])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nannyml_cloud_sdk-0.1.6.tar.gz (26.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nannyml_cloud_sdk-0.1.6-py3-none-any.whl (2.8 kB view details)

Uploaded Python 3

File details

Details for the file nannyml_cloud_sdk-0.1.6.tar.gz.

File metadata

  • Download URL: nannyml_cloud_sdk-0.1.6.tar.gz
  • Upload date:
  • Size: 26.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.5.7

File hashes

Hashes for nannyml_cloud_sdk-0.1.6.tar.gz
Algorithm Hash digest
SHA256 5a9c6a596de34e7c74b7f76b79598925d17dc2a1bb3dada00af6dbdfe57baa55
MD5 d5aa376b316d1e568ba0dccb21e75c44
BLAKE2b-256 54f651afdf388767ea0928ec28c89412c229e9375b6d0dbd65fa22f63e116018

See more details on using hashes here.

File details

Details for the file nannyml_cloud_sdk-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for nannyml_cloud_sdk-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e525795802aa085ef25790b276371e84b02224e53f4c51270e04a54f2545e99e
MD5 28407e1e7630d01d0f81b5d2340a31ff
BLAKE2b-256 5ff673e1c3c1c9cb0ecfe9c8cb4928bc8b4eb8c8b3688096d71df03c2b780be1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page