Skip to main content

Python client for Kili Technology labeling tool

Project description

Kili Python SDK

Python 3.7 pre-commit Code style: black Code style: flake8 GitHub release (latest by date)


SDK Reference: https://python-sdk-docs.kili-technology.com/

Kili Documentation: https://docs.kili-technology.com/docs

App: https://cloud.kili-technology.com/label/

Website: https://kili-technology.com/


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 Python SDK?

Kili Python SDK is the Python client for the Kili platform. It allows to query and manipulate the main entities available in Kili, like projects, assets, labels, api keys... It comes with several recipes that demonstrate how to use it in the 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='<your api key value here>'

Installation

Install the Kili client with pip:

pip install kili

If you want to contribute, here are the installation steps.

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='<your api key value here>')

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_id = 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 detailed example in this recipe.

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 detailed examples in this recipe.

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 detailed example in this recipe.

More ways to export in other formats (YOLO, Pascal VOC) are described here.

More examples

You can find all several recipes in this folder. For more details, read the SDK reference or the Kili 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.

Source Distribution

kili-2.125.2.tar.gz (89.3 kB view details)

Uploaded Source

Built Distribution

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

kili-2.125.2-py3-none-any.whl (150.9 kB view details)

Uploaded Python 3

File details

Details for the file kili-2.125.2.tar.gz.

File metadata

  • Download URL: kili-2.125.2.tar.gz
  • Upload date:
  • Size: 89.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.15

File hashes

Hashes for kili-2.125.2.tar.gz
Algorithm Hash digest
SHA256 2b31be32a6f13a1000f8b0ddad63004a534ec387a66aa58cb25dc01688fddbe6
MD5 0da514a25d157b44a0328c3227d44edb
BLAKE2b-256 1978e71d00aed0446a9dc2af9f0f1e1a70f17963d7c5393a62e23ffe409d5d91

See more details on using hashes here.

File details

Details for the file kili-2.125.2-py3-none-any.whl.

File metadata

  • Download URL: kili-2.125.2-py3-none-any.whl
  • Upload date:
  • Size: 150.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.15

File hashes

Hashes for kili-2.125.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bfaf6be47d42bb1af63e49f90b018b6d2b3ba8184776861257bedb909e0d390b
MD5 9e2b2d672ac81bc384ce5e5110a26f1b
BLAKE2b-256 44b88dfae86fa99fb30a4d4914103619991396cedaf3adfe0441e3a905512585

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