Python client for Kili Technology labeling tool
Project description
Kili Playground: Kili's Python SDK
What is Kili?
Kili is a platform that empowers a data-centric approach to Machine Learning through quality training data creation. It provides collaborative data annotation tools and APIs that enable quick iterations between reliable dataset building and model training. More info here.
Annotation tools examples
Named Entities Extraction and Relation | PDF classification and bounding-box | Object detection (bounding-box) |
---|---|---|
and many more.
What is Kili Playground?
Kili Playground is the home of the Kili Python SDK. It comes with several recipes that demonstrate its most frequent use cases.
Requirements
- Python >= 3.7
- Create and copy a Kili API key
- Add the
KILI_API_KEY
variable in your bash environment (or in the settings of your favorite IDE) by pasting the API key value you copied above:
export KILI_API_KEY='<you api key value here>'
Installation
Install the Kili client with pip:
pip install kili
Usage
Instantiate the Kili client:
from kili.client import Kili
kili = Kili()
# You can now use the Kili client!
Note that you can also pass the API key as an argument of the Kili
initialization:
kili = Kili(api_key='MY API KEY')
Here is a sample of the operations you can do with the Kili client:
Creating an annotation project
json_interface = {
"jobs": {
"CLASSIFICATION_JOB": {
"mlTask": "CLASSIFICATION",
"content": {
"categories": {
"RED": {"name": "Red"},
"BLACK": {"name": "Black"},
"WHITE": {"name": "White"},
"GREY": {"name": "Grey"}},
"input": "radio"
},
"instruction": "Color"
}
}
}
project = kili.create_project(
title="Color classification",
description="Project ",
input_type="IMAGE",
json_interface=json_interface
)["id"]
Importing data to annotate
assets = [
{
"externalId": "example 1",
"content": "https://images.caradisiac.com/logos/3/8/6/7/253867/S0-tesla-enregistre-d-importantes-pertes-au-premier-trimestre-175948.jpg",
},
{
"externalId": "example 2",
"content": "https://img.sportauto.fr/news/2018/11/28/1533574/1920%7C1280%7Cc096243e5460db3e5e70c773.jpg",
},
{
"externalId": "example 3",
"content": "./recipes/img/man_on_a_bike.jpeg",
},
]
external_id_array = [a.get("externalId") for a in assets]
content_array = [a.get("content") for a in assets]
kili.append_many_to_dataset(
project_id=project_id,
content_array=content_array,
external_id_array=external_id_array,
)
See the detailled example in this notebook.
Importing predictions
prediction_examples = [
{
"external_id": "example 1",
"json_response": {
"CLASSIFICATION_JOB": {
"categories": [{"name": "GREY", "confidence": 46}]
}
},
{
"external_id": "example 2",
"json_response": {
"CLASSIFICATION_JOB": {
"categories": [{"name": "WHITE", "confidence": 89}]
}
},
}
]
kili.create_predictions(
project_id=project_id,
external_id_array=[p["external_id"] for p in prediction_examples],
model_name_array=["My SOTA model"] * len(prediction_examples),
json_response_array=[p["json_response"] for p in prediction_examples])
See detailled examples in this notebook.
Exporting labels
assets = kili.assets(project_id=project_id)
with open("labels.json", "w") as label_file:
for asset in assets:
for label in asset.labels:
label_file.write(label.json_response(format='simple'))
See a detailled example in this notebook.
Kili AutoML
With the Kili AutoML toolbox, you can also:
- train models directly from a Kili dataset.
- load the predictions back into the Kili platform to visualize them and use them as pre-annotations.
See Kili AutoML (work in progress).
More examples
You can find all several recipes in this folder. Among them:
- How to import assets (run it here)
- How to export labels (run it here)
- How to import predictions (run it here)
- How to query data through the API (run it here)
- How to use AutoML for faster labeling with Kili (run it here)
For more details, read the technical documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.