LoadingLoading
2020-05-22 22:16

How to chain annotation projects with webhooks on Kili

Kili Tutorial: How to chain annotation projects with webhooks on Kili In this tutorial, we will show how to use webhooks to monitor actions in Kili, such as a label creation.

How to chain annotation projects with webhooks on Kili

Kili Tutorial: How to chain annotation projects with webhooks on Kili

In this tutorial, we will show how to use webhooks to monitor actions in Kili, such as a label creation. The goal of this tutorial is to illustrate some basic components and concepts of Kili in a simple way, but also to dive into the actual process of iteratively developing real applications in Kili.

Additionally:

For an overview of Kili, visit kili-technology.com You can also check out the Kili documentation https://cloud.kili-technology.com/docs. Our goal is to export labels that can predict whether an image contains a Porsche or a Tesla.

The tutorial is divided into two parts:

  1. Why use webhooks?

  2. Using Kili's webhook in Python

1. Why use webhooks?

Webhooks allow to react to particular action in Kili's database by triggering a callback whenever an action is completed. For instance, here, every time a label is created in frontend (upper panel), the label can be logged in Python (lower right panel):

from IPython.display import Image

with open('https://raw.githubusercontent.com/kili-technology/kili-playground/e8623b9a6e1de273da6494b5cb1c89f7b8005a9a/recipes/img/websockets.gif','rb') as f:

display(Image(data=f.read(), format='png'))

png

2. Using Kili's webhook in Python

Kili Playground exposes a method label_created_or_updated that allows to listen for all actions on labels:

  • creation of a new label

  • update of an existing label

First of all, you need to authenticate:

import os


!pip install kili

from kili.authentication import KiliAuth

from kili.playground import Playground

email = os.getenv('KILI_EMAIL')

password = os.getenv('KILI_PASSWORD')

api_endpoint = 'https://cloud.kili-technology.com/api/label/graphql'

kauth = KiliAuth(email, password, api_endpoint)

playground = Playground(kauth)

Then you can define a callback that will be triggered each time a label gets created/updated:

project_id = 'CHANGE_ME_FOR_YOUR_PROJECT_ID'


def callback(id, data):

print(f'New data: {data}\n')


playground.label_created_or_updated(

project_id=project_id, callback=callback)


Summary

In this tutorial, we accomplished the following:

We introduced the concept of webhook and we used label_created_or_updated to trigger a webhook.

You can also visit the Kili website or Kili documentation for more info!


Related resources

Get started

Get Started

Ready to see how it works? Begin your AI journey with Kili at the click of button.