From 8c392771cd19125125662f858d50dbca5d77206a Mon Sep 17 00:00:00 2001 From: Stepan Nosov Date: Wed, 30 Jun 2021 12:22:38 +0300 Subject: [PATCH 01/16] fix image collection example ![review](https://codereview.in.yandex-team.ru/badges/review-complete-green.svg) [![losev](https://codereview.in.yandex-team.ru/badges/losev-...-yellow.svg)](https://staff.yandex-team.ru/losev) [![tulinev](https://codereview.in.yandex-team.ru/badges/tulinev-ok-green.svg)](https://staff.yandex-team.ru/tulinev) ref:e11f001ab9df32b1f9336923e509627707c7b13a --- .../image_collection/image_collection.ipynb} | 319 +++++++++++------- .../img/performer_interface.png | Bin 0 -> 183171 bytes examples/README.md | 10 +- .../img/performer_interface.png | Bin 95846 -> 0 bytes 4 files changed, 195 insertions(+), 134 deletions(-) rename examples/{image_gathering/image_gathering.ipynb => 1.computer_vision/image_collection/image_collection.ipynb} (77%) create mode 100644 examples/1.computer_vision/image_collection/img/performer_interface.png delete mode 100644 examples/image_gathering/img/performer_interface.png diff --git a/examples/image_gathering/image_gathering.ipynb b/examples/1.computer_vision/image_collection/image_collection.ipynb similarity index 77% rename from examples/image_gathering/image_gathering.ipynb rename to examples/1.computer_vision/image_collection/image_collection.ipynb index 8e9f33f9..8eb612e3 100644 --- a/examples/image_gathering/image_gathering.ipynb +++ b/examples/1.computer_vision/image_collection/image_collection.ipynb @@ -1,6 +1,8 @@ { "cells": [ { + "cell_type": "markdown", + "metadata": {}, "source": [ "# How to collect images for a dataset\n", "\n", @@ -9,34 +11,44 @@ "Performers will be asked to take a photo of their pet and specify the type of animal.\n", "\n", "The real project like that should be subdivided into subprojects of validation and markup to make sure each photo is correct and contains the object it says it does. This example is simplified and doesn't contain subdivision." - ], + ] + }, + { "cell_type": "markdown", - "metadata": {} + "metadata": {}, + "source": [ + "Prepare the environment and import everything you'll need." + ] }, { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ - "# Prepare the environment and import everything you'll need\n", - "!pip install toloka-kit==0.1.5\n", + "!pip install toloka-kit==0.1.7\n", "\n", "import datetime\n", + "import logging\n", + "import sys\n", "import time\n", "\n", "import toloka.client as toloka\n", - "import toloka.client.project.template_builder as tb" - ], - "cell_type": "code", - "metadata": {}, - "execution_count": null, - "outputs": [] + "import toloka.client.project.template_builder as tb\n", + "\n", + "logging.basicConfig(\n", + " format='[%(levelname)s] %(name)s: %(message)s',\n", + " level=logging.INFO,\n", + " stream=sys.stdout,\n", + ")" + ] }, { - "source": [ - "Click [here](https://github.com/Toloka/toloka-kit/blob/main/README.md) to learn about Toloka and how to get an OAuth token.\n", - "\n", - "[Image segmentation example](https://github.com/Toloka/toloka-kit/blob/main/examples/image_segmentation/image_segmentation.ipynb)." - ], "cell_type": "markdown", - "metadata": {} + "metadata": {}, + "source": [ + "Сreate toloka-client instance. All api calls will go through it. More about OAuth token in our [Learn the basics example](https://github.com/Toloka/toloka-kit/tree/main/examples/0.getting_started/0.learn_the_basics) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Toloka/toloka-kit/blob/main/examples/0.getting_started/0.learn_the_basics/learn_the_basics.ipynb)" + ] }, { "cell_type": "code", @@ -44,30 +56,24 @@ "metadata": {}, "outputs": [], "source": [ - "# Сreate a toloka-client instance\n", - "# All API calls will go through it\n", - "try:\n", - " token = input(\"Enter your token:\")\n", - " toloka_client = toloka.TolokaClient(token, 'PRODUCTION') # Or switch to 'SANDBOX'\n", - " # Lines below check the availability of money in your account and that the OAuth token is correct\n", - " requester = toloka_client.get_requester()\n", - " print('It\\'s enough money on your account - ', requester.balance > 3.0)\n", - "except:\n", - " print('You probably entered an invalid token. Please, run this cell again.')" + "toloka_client = toloka.TolokaClient(input(\"Enter your token:\"), 'PRODUCTION') # Or switch to 'SANDBOX'\n", + "print(toloka_client.get_requester())" ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "---\n", "---\n", "## Starting a project\n", "\n", "Note: Go to the next section to get results for the **already launched project**." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "### Create a new project\n", "\n", @@ -76,12 +82,8 @@ "The task interface should:\n", "- Contain the description of the task.\n", "- Permit uploading images.\n", - "- Allow to select the type of object depicted in the image.\n", - "\n", - "Structure of output data:" - ], - "cell_type": "markdown", - "metadata": {} + "- Allow to select the type of object depicted in the image." + ] }, { "cell_type": "code", @@ -89,20 +91,21 @@ "metadata": {}, "outputs": [], "source": [ - "output_specification = {\n", - " 'image': toloka.project.field_spec.FileSpec(),\n", - " 'label': toloka.project.field_spec.StringSpec(allowed_values=['cat', 'dog', 'none'])\n", - "}" + "new_project = toloka.project.Project(\n", + " assignments_issuing_type=toloka.project.Project.AssignmentsIssuingType.AUTOMATED,\n", + " public_name='Take a photo of your pet',\n", + " public_description='If you have a cat or a dog, take a picture of it. If you don\\'t have any such animals, take a random photo.',\n", + ")" ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "Configure the task interface.\n", "\n", "Click [here](https://yandex.com/support/toloka-tb/index.html) to learn more about Template Builder, an environment for task interface configuration." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { "cell_type": "code", @@ -113,18 +116,18 @@ "# Radio buttons to choose the label type\n", "radio_group_field = tb.fields.RadioGroupFieldV1(\n", " data=tb.data.OutputData(path='label'),\n", - " label='What\\'s in your photograph?',\n", + " label='What is in your photograph?',\n", " validation=tb.conditions.RequiredConditionV1(),\n", " options=[\n", " tb.fields.GroupFieldOption(label='Cat', value='cat'),\n", " tb.fields.GroupFieldOption(label='Dog', value='dog'),\n", - " tb.fields.GroupFieldOption(label='Neither a cat nor a dog', value='none'),\n", + " tb.fields.GroupFieldOption(label='Not a cat nor a dog', value='none'),\n", " ]\n", ")\n", "\n", "# Buttons for loading an image or taking a photo\n", "image_loader = tb.fields.MediaFileFieldV1(\n", - " label='Upload a photo of your cat or your dog. Read the instructions carefully.',\n", + " label='Upload a photo of your cat or dog. Read the instructions carefully.',\n", " data=tb.data.OutputData(path='image'),\n", " validation=tb.conditions.RequiredConditionV1(),\n", " accept=tb.fields.MediaFileFieldV1.Accept(photo=True, gallery=True),\n", @@ -149,42 +152,80 @@ " 'showFullscreen': True,\n", " 'showInstructions': True,\n", " },\n", - ")\n", - "\n", - "public_instruction = \"\"\"Take a picture of your pet if it is a cat or a dog and select the appropriate label type.

\n", - "If you don't have a cat or a dog, take a photo of anything and select a \"Not a cat nor a dog\" label. There should be exactly one animal in the photo, clearly visible, not cropped. The animal can be photographed from any side and in any position. You can take a picture of a pet in your arms.

\n", - "It should be clearly visible what animal is depicted (e.g. do not photograph your pet's back in the dark).\n", - "\"\"\"\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Set data specification. And set task interface to project." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "input_specification = {'label': toloka.project.field_spec.StringSpec(required=False, hidden=True)}\n", + "output_specification = {\n", + " 'image': toloka.project.field_spec.FileSpec(),\n", + " 'label': toloka.project.field_spec.StringSpec(allowed_values=['cat', 'dog', 'none'])\n", + "}\n", "\n", - "# Create a project\n", - "new_project = toloka.project.Project(\n", - " assignments_issuing_type=toloka.project.Project.AssignmentsIssuingType.AUTOMATED,\n", - " public_name='Take a photo of your pet',\n", - " public_description='If you have a cat or a dog, take a picture of it. If you don\\'t have any such animals, take a random photo.',\n", - " public_instructions=public_instruction,\n", - " # Set up the task interface and output parameters\n", - " task_spec=toloka.project.task_spec.TaskSpec(\n", - " input_spec={'label': toloka.project.field_spec.StringSpec(required=False, hidden=True)},\n", + "new_project.task_spec = toloka.project.task_spec.TaskSpec(\n", + " input_spec=input_specification,\n", " output_spec=output_specification,\n", " view_spec=project_interface,\n", - " ),\n", - ")\n", - "\n", - "# An API request to create a new project\n", - "new_project = toloka_client.create_project(new_project)\n", - "print(f'Created project with id {new_project.id}')\n", - "print(f'To view the project, go to https://toloka.yandex.com/requester/project/{new_project.id}')\n", - "# print(f'To view this pool, go to https://sandbox.toloka.yandex.com/requester/project/{new_project.id}/pool/{new_pool.id}') # Print a sandbox version link" + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write short and simple instructions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "new_project.public_instructions = \"\"\"Take a picture of your pet if it is a cat or a dog and select the appropriate label type.

\n", + "If you don't have a cat or a dog, take a photo of anything and select a \"Not a cat nor a dog\" label. There should be exactly one animal in the photo, clearly visible, not cropped. The animal can be photographed from any side and in any position. You can take a picture of a pet in your arms.

\n", + "It should be clearly visible what animal is depicted (e.g. do not photograph your pet's back in the dark).\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a project via API request." ] }, { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ - "### Create a pool" - ], + "new_project = toloka_client.create_project(new_project)" + ] + }, + { "cell_type": "markdown", - "metadata": {} + "metadata": {}, + "source": [ + "### Pool creation" + ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "Create a task pool and set its quality control rules.\n", "\n", @@ -192,9 +233,7 @@ "\n", "1. A performer gets the skill after sending a response.\n", "2. The performers with the skill are not allowed to perform the task." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { "cell_type": "code", @@ -217,6 +256,8 @@ ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "Access to tasks is granted for:\n", "\n", @@ -227,9 +268,7 @@ "2. English-speaking performers.\n", "\n", " _Why: The task instruction is written in English._" - ], - "cell_type": "markdown", - "metadata": {} + ] }, { "cell_type": "code", @@ -252,8 +291,22 @@ " (toloka.filter.Skill(pet_skill.id) == None) &\n", " (toloka.filter.ClientType == toloka.filter.ClientType.ClientType.TOLOKA_APP)\n", " ),\n", - ")\n", - "\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Set up the Submitted responses quality control rule. When a persons submit 1 or more tasks, they are assigned the skill created above." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ "# Automatically updating skills\n", "new_pool.quality_control.add_action(\n", " collector=toloka.collectors.AnswerCount(),\n", @@ -261,15 +314,28 @@ " conditions=[toloka.conditions.AssignmentsAcceptedCount > 0],\n", " # It doesn't add to the skill, it sets the new skill to 1\n", " action=toloka.actions.SetSkill(skill_id=pet_skill.id, skill_value=1),\n", - ")\n", - "\n", - "new_pool = toloka_client.create_pool(new_pool)\n", - "print(f'Created pool with id {new_pool.id}')\n", - "print(f'To view the pool, go to https://toloka.yandex.com/requester/project/{new_project.id}/pool/{new_pool.id}')\n", - "# print(f'To view this pool, go to https://sandbox.toloka.yandex.com/requester/project/{new_project.id}/pool/{new_pool.id}') # Print a sandbox version link" + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a pool." ] }, { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "new_pool = toloka_client.create_pool(new_pool)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, "source": [ "Open the project for preview.\n", "\n", @@ -286,19 +352,17 @@ "\n", "\n", "Note: In preview mode you won't be able to upload an image and look at the result. This restriction is related to the preview features and doesn't affect performers." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "### Add a task and run the project\n", "Add one task.\n", "\n", "Adjust the amount of images you want to get by changing the overlap." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { "cell_type": "code", @@ -306,7 +370,7 @@ "metadata": {}, "outputs": [], "source": [ - "image_count = 10 # How many images you will receive.\n", + "image_count = 5 # How many images you will receive.\n", "new_tasks_suite = toloka.task_suite.TaskSuite(\n", " pool_id=new_pool.id,\n", " tasks=[toloka.task.Task(input_values={'label': 'Cats vs Dogs'})],\n", @@ -315,9 +379,6 @@ "\n", "# Add task suites to the pool\n", "toloka_client.create_task_suite(new_tasks_suite)\n", - "print(f'Created pool with id {new_pool.id}')\n", - "print(f'To view this pool, go to https://toloka.yandex.com/requester/project/{new_project.id}/pool/{new_pool.id}')\n", - "# print(f'To view this pool, go to https://sandbox.toloka.yandex.com/requester/project/{new_project.id}/pool/{new_pool.id}') # Print a sandbox version link\n", "\n", "# Open the pool\n", "new_pool = toloka_client.open_pool(new_pool.id)\n", @@ -325,15 +386,17 @@ ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "## Getting responses\n", "\n", "Wait for performers to complete the tasks, then download the results." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "### If your work with the notepad was interrupted\n", "\n", @@ -343,9 +406,7 @@ "2. Run all the code cells.\n", "\n", "If you are executing the notepad right now, **skip the next cell**." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { "cell_type": "code", @@ -357,15 +418,19 @@ ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "### Wait for the responses\n", "\n", "Wait for all the tasks in the pool to be completed." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "def wait_pool_for_close(pool_id, minutes_to_wait=1):\n", " sleep_time = 60 * minutes_to_wait\n", @@ -383,20 +448,16 @@ " print('Pool was closed.')\n", "\n", "wait_pool_for_close(pool_id)" - ], - "cell_type": "code", - "metadata": {}, - "execution_count": null, - "outputs": [] + ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ - "Download the results. \n", + "Download the results.\n", "\n", "Note: You should download files' ids, not the files themselves. The files will only be needed right before reviewing." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { "cell_type": "code", @@ -415,35 +476,35 @@ ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "---\n", "---\n", "## Showing results\n", "\n", "Configure data display." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "!pip install ipyplot\n", "from PIL import Image, ImageDraw\n", "import ipyplot\n", "\n", "results_iter = iter(results_list)" - ], - "cell_type": "code", - "metadata": {}, - "execution_count": null, - "outputs": [] + ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "Run the cell below multiple times to see different responses." - ], - "cell_type": "markdown", - "metadata": {} + ] }, { "cell_type": "code", @@ -467,6 +528,8 @@ ] }, { + "cell_type": "markdown", + "metadata": {}, "source": [ "## Summary\n", "\n", @@ -475,9 +538,7 @@ "In real projects you should configure:\n", "- Non-automatic acceptance to have the time to review the images.\n", "- Linked project for validation and object's type markup." - ], - "cell_type": "markdown", - "metadata": {} + ] } ], "metadata": { @@ -496,9 +557,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.0" + "version": "3.9.1" } }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/examples/1.computer_vision/image_collection/img/performer_interface.png b/examples/1.computer_vision/image_collection/img/performer_interface.png new file mode 100644 index 0000000000000000000000000000000000000000..1d3a507fbd02d9dfd478b4595d3bef1e3309da3b GIT binary patch literal 183171 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%0Dg%|?rk_udUmWrQ)~s?n54hFd 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
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Toloka/toloka-kit/blob/main/examples/0.getting_started/0.learn_the_basics/learn_the_basics.ipynb) | The very first example explains the basics of working with Toloka and toloka-kit. Everything is explained by the example of the project on the classification of cats and dogs. |```Getting Started```, ```Classification```| | [Image segmentation/detection](https://github.com/Toloka/toloka-kit/tree/main/examples/image_segmentation)

[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Toloka/toloka-kit/blob/main/examples/image_segmentation/image_segmentation.ipynb) | Example of solving the classic problem of annotating images for training segmentation algorithms. In real-world tasks, annotation is usually done with a polygon. We chose to use a rectangular outline to simplify the task so that we can reduce costs and speed things up. |```CV```, ```Segmentation```, ```Detection```, ```Bounding boxes```, ```Street```, ```Traffic sign```, ```Verification Project```| | [Questing answering on SQuAD](https://github.com/Toloka/toloka-kit/tree/main/examples/SQUAD2.0)

[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Toloka/toloka-kit/blob/main/examples/SQUAD2.0/SQUAD2.0_processing.ipynb) | Solving the problem of question answering on SQUAD2.0 dataset. Collects and validates answers for questions by human performers. One of the most popular tasks in natural language processing. | ```NLP```, ```Questing Answering```, ```Texts```, ```Benchmark```, ```Verification Project```| -| [Image gathering](https://github.com/Toloka/toloka-kit/tree/main/examples/image_gathering)

[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Toloka/toloka-kit/blob/main/examples/image_gathering/image_gathering.ipynb) | The goal for this project is to collect a dataset of dogs' and cats' images. Performers will be asked to take a photo of their pet and specify its species. |```CV```, ```Classification```, ```Collecting```, ```Dataset```| +| [Image collection](https://github.com/Toloka/toloka-kit/tree/main/examples/1.computer_vision/image_collection)

[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Toloka/toloka-kit/blob/main/examples/1.computer_vision/image_collection/image_collection.ipynb) | The goal for this project is to collect a dataset of dogs' and cats' images. Performers will be asked to take a photo of their pet and specify its species. |```CV```, ```Classification```, ```Collecting```, ```Dataset```| | [Simplest Spatial Crowdsourcing](https://github.com/Toloka/toloka-kit/tree/main/examples/2.spatial_crowdsourcing/0.simplest_example)

[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Toloka/toloka-kit/blob/main/examples/2.spatial_crowdsourcing/0.simplest_example/spatial_crowdsourcing.ipynb) | In this example, we will collect pictures of the Moscow metro entrances. This example also can be reused for production tasks such as monitoring the state of objects, checking the presence of an organization or other physical object. |```Spatial Crowdsourcing```, ```Outdoor monitoring```, ```Collecting```| | [ASR/TTS based on Wikipedia articles](https://github.com/noath/asr-datasets-pipeline)

[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/noath/asr-datasets-pipeline/blob/main/ASR_pipeline.ipynb) | This example contains full speech data collecting pipeline from extracting raw texts to labeling and validating speech records. | ```ASR```, ```TTS```, ```Texts```, ```Verification project```, ```Audio samples collection```| | Blood cells classification | Available soon | ```CV```, ```Classification```, ```Medicine```, ```Benchmark```| diff --git a/examples/image_gathering/img/performer_interface.png b/examples/image_gathering/img/performer_interface.png deleted file mode 100644 index bf0504b1a01f93401eb7dbad22eca87d597c8c09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95846 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 S6N+ecy?lU<&3nqY3>@Y}7ag?LF# zd3zb(7@LX3Nde@~0FYFjl+&EXGF^sEnbLtnb+*XzofV$Y^uxD@yr2i%&by-Kew{@c z+~KCTSGw~~Ez$5yqC^W*G8I}Xjb*!ftQ*8FORv{Ifdw@x47V~DEd;??K2?I;(ft}l z@BSyz8Vq5=1dYPxQt{1jd}$J#Bq$EXpxi;ki>-N!COVqTG`uB4QYjWBY0-4@C& z2$2pbC$e#+r)#}!g`*U0Y|aU5(omrv(DimTHV!!-hm#C*2e#AJjR2NsOaroPVt0uJ zo&V(+ul>}uT>Z|<^<kb z2?$Pr&Sc^BA2MMKsv)(GBVEeXA^0_YD@#h!smFD?tJ@nffaRM8(_^`y_>|*}*vSuD z)`ND{^CY2gFbJ3w^b|>Kfttd4mrCJKN@H5h`8~tr1%p}R~E+6)vHZA+dE6Q2U_5kDn84y1K zJWI$q-T)ct;K74PYW2t8^*-081Mp5Oz)0?2ECdIgn-9^ z&7Rn$d9k68M$DZzPfcCDch8=y;f?4ZgBe@YzIQUT0yhI+PD8l#`SUf#j5&pE9z?My zRvFMXPpKK&48OA;fq(L@{9Cvu!iMu`qD3z>(>y40VRsc2juNS0m4vp2Ph3sSoZllG zpQ8pKcJcm(h8Ra@StRztQf$|*H+)wYm(!tZ57s}GX+LL7Fz~^=!|rq$Fo6fAfd+k; zUV`_d)!XhF=HQx_?F|fmJKykO3OQyo?d)F=zhIeA^Ld^aD9^MI5mtp|KDZkafLpWP zX462ml*Z_)3)G3cx89#y2upLyZxt3&T)SrK?`Erfqpd7s-Sa?A&ol)|q9ZS&5OE{f zJn_-5QhE;=`?dRI$G1J#^ZZX+)YA>Z9aoyydzj=j@H+ZEc(fU;LB

0w>g|5u@4C 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 From 78e55b11ed25066ac5d04f5913aac370acd9aef1 Mon Sep 17 00:00:00 2001 From: Evgeny Tulin Date: Thu, 1 Jul 2021 15:29:04 +0300 Subject: [PATCH 02/16] retry quotas ref:741c3611c3d6f651e3952ff2fe563377e65c2598 --- CHANGELOG.md | 3 ++ src/client/__init__.py | 15 +++++- src/client/__init__.pyi | 8 +++- src/client/primitives/retry.py | 83 +++++++++++++++++++++++++++++++++ src/client/primitives/retry.pyi | 33 +++++++++++++ tests/test_retries.py | 2 +- 6 files changed, 140 insertions(+), 4 deletions(-) create mode 100644 src/client/primitives/retry.py create mode 100644 src/client/primitives/retry.pyi diff --git a/CHANGELOG.md b/CHANGELOG.md index fce9d8da..533347d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +* Retry Toloka quotas. Minute quotas are retried by default. And you can turn on the retrying of hourly and daily quotas. + + 0.1.8 ------------------- * Added `get_aggregated_solutions` method diff --git a/src/client/__init__.py b/src/client/__init__.py index 3eb41614..728895e1 100644 --- a/src/client/__init__.py +++ b/src/client/__init__.py @@ -55,6 +55,7 @@ ) from .operation_log import OperationLogItem from .pool import Pool, PoolPatchRequest +from .primitives.retry import TolokaRetry from .project import Project from .training import Training from .requester import Requester @@ -96,6 +97,12 @@ class TolokaClient: * Set the timeout value to None if you're willing to wait forever. url: If you want to set a specific URL for some reason, for example, for testing. You can only set one parameter, "url" or "environment", not both. + retry_quotas: List of quotas that must be retried. By default retries only minutes quotas. None or empty list for not retrying quotas. + You must set this parameter to None, then you specify the 'retries' parameter as Retry instance. + You can specify quotas: + * MIN - Retry minutes quotas. + * HOUR - Retry hourly quotas. This is means that the program just sleeps for an hour! Be careful. + * DAY - Retry daily quotas. We strongly not recommended retrying these quotas. Example: How to create TolokaClient and make you first request to Toloka. @@ -118,7 +125,8 @@ def __init__( environment: Union[Environment, str, None] = None, retries: Union[int, Retry] = 3, timeout: Union[float, Tuple[float, float]] = 10.0, - url: Optional[str] = None + url: Optional[str] = None, + retry_quotas: Union[List[str], str, None] = TolokaRetry.Unit.MIN ): if url is None and environment is None: raise ValueError('You must pass at least one parameter: url or environment.') @@ -130,10 +138,13 @@ def __init__( if not isinstance(environment, TolokaClient.Environment): environment = TolokaClient.Environment[environment.upper()] self.url = environment.value + if isinstance(retries, Retry) and retry_quotas is not None: + raise ValueError('You must set retry_quotas parameter to None when you specify retries parameters not as int.') self.token = token status_list = [status_code for status_code in requests.status_codes._codes if status_code > 405] if not isinstance(retries, Retry): - retries = Retry( + retries = TolokaRetry( + retry_quotas=retry_quotas, total=retries, status_forcelist=status_list, method_whitelist=['HEAD', 'GET', 'PUT', 'DELETE', 'OPTIONS', 'TRACE', 'POST', 'PATCH'], diff --git a/src/client/__init__.pyi b/src/client/__init__.pyi index 42c242d9..a63aaecb 100644 --- a/src/client/__init__.pyi +++ b/src/client/__init__.pyi @@ -167,6 +167,12 @@ class TolokaClient: * Set the timeout value to None if you're willing to wait forever. url: If you want to set a specific URL for some reason, for example, for testing. You can only set one parameter, "url" or "environment", not both. + retry_quotas: List of quotas that must be retried. By default retries only minutes quotas. + You must set this parameter to None, then you specify the 'retries' parameter as Retry instance. + You can specify quotas: + * MIN - Retry minutes quotas. + * HOUR - Retry hourly quotas. This is means that the program just sleeps for an hour! Be careful. + * DAY - Retry daily quotas. We strongly not recommended retrying these quotas. Example: How to create TolokaClient and make you first request to Toloka. @@ -185,7 +191,7 @@ class TolokaClient: SANDBOX = 'https://sandbox.toloka.yandex.com' PRODUCTION = 'https://toloka.yandex.com' - def __init__(self, token: str, environment: Union[Environment, str, None] = None, retries: Union[int, Retry] = 3, timeout: Union[float, Tuple[float, float]] = ..., url: Optional[str] = None): ... + def __init__(self, token: str, environment: Union[Environment, str, None] = None, retries: Union[int, Retry] = 3, timeout: Union[float, Tuple[float, float]] = ..., url: Optional[str] = None, retry_quotas: Union[List[str], str, None] = ...): ... def accept_assignment(self, assignment_id: str, public_comment: str) -> Assignment: """Marks one assignment as accepted diff --git a/src/client/primitives/retry.py b/src/client/primitives/retry.py new file mode 100644 index 00000000..bbdef74c --- /dev/null +++ b/src/client/primitives/retry.py @@ -0,0 +1,83 @@ +__all__ = [ + 'TolokaRetry', +] + +import json +import logging +from typing import Optional, List, Union +from urllib3.response import HTTPResponse # type: ignore +from urllib3.util.retry import Retry # type: ignore + + +logger = logging.getLogger(__name__) + + +class TolokaRetry(Retry): + """Retry toloka quotas. By default only minutes quotas. + + Args: + retry_quotas (Union[List[str], str, None]): List of quotas that will be retried. + None or empty list for not retrying quotas. + You can specify quotas: + * MIN - Retry minutes quotas. + * HOUR - Retry hourly quotas. This is means that the program just sleeps for an hour! Be careful. + * DAY - Retry daily quotas. We strongly not recommended retrying these quotas. + """ + class Unit: + MIN = 'MIN' + HOUR = 'HOUR' + DAY = 'DAY' + + seconds_to_wait = { + Unit.MIN: 60, + Unit.HOUR: 60*60, + Unit.DAY: 60*60*24, + } + + _retry_quotas: Union[List[str], str, None] = None + + def __init__(self, *args, retry_quotas: Union[List[str], str, None] = Unit.MIN, **kwargs): + if isinstance(retry_quotas, str): + self._retry_quotas = [retry_quotas] + else: + self._retry_quotas = retry_quotas + + self._last_response = kwargs.pop('last_response', None) + super(TolokaRetry, self).__init__(*args, **kwargs) + + def new(self, **kwargs): + kwargs['last_response'] = self._last_response + return super(TolokaRetry, self).new(retry_quotas=self._retry_quotas, **kwargs) + + def get_retry_after(self, response: "HTTPResponse") -> Optional[float]: + seconds = super(TolokaRetry, self).get_retry_after(response) + if seconds is not None: + return seconds + + if response.status != 429 or self._retry_quotas is None or self._last_response is None: + return None + payload = self._last_response.get('payload', None) + if payload is None or 'interval' not in payload: + return None + + interval = payload['interval'] + if interval not in self._retry_quotas: + return None + + if interval == TolokaRetry.Unit.HOUR: + logger.warning('The limit on hourly quotas worked. The program "falls asleep" for an hour.') + if interval == TolokaRetry.Unit.DAY: + logger.warning('The daily quota limit worked. The program "falls asleep" for the day.') + return TolokaRetry.seconds_to_wait.get(interval, None) + + def increment(self, *args, **kwargs) -> "Retry": + self._last_response = None + response = kwargs.get('response', None) + try: + if response is not None: + data = response.data + if data: + self._last_response = json.loads(response.data.decode("utf-8")) + except json.JSONDecodeError: + pass + return super(TolokaRetry, self).increment(*args, **kwargs) diff --git a/src/client/primitives/retry.pyi b/src/client/primitives/retry.pyi new file mode 100644 index 00000000..5315db91 --- /dev/null +++ b/src/client/primitives/retry.pyi @@ -0,0 +1,33 @@ +from typing import ( + List, + Optional, + Union +) +from urllib3.util.retry import Retry # type: ignore +from urllib3.response import HTTPResponse # type: ignore + + +class TolokaRetry(Retry): + """Retry toloka quotas. By default only minutes quotas. + + Args: + retry_quotas (Union[List[str], str, None]): List of quotas that will be retried. + None or empty list for not retrying quotas. + You can specify quotas: + * MIN - Retry minutes quotas. + * HOUR - Retry hourly quotas. This is means that the program just sleeps for an hour! Be careful. + * DAY - Retry daily quotas. We strongly not recommended retrying these quotas. + """ + + class Unit: + ... + + def __init__(self, *args, retry_quotas: Union[List[str], str, None] = 'MIN', **kwargs): ... + + def get_retry_after(self, response: HTTPResponse) -> Optional[float]: ... + + def increment(self, *args, **kwargs) -> 'Retry': ... + + def new(self, **kwargs): ... + + _retry_quotas: Union[List[str], str, None] diff --git a/tests/test_retries.py b/tests/test_retries.py index 4367d3ef..7ac6a5a6 100644 --- a/tests/test_retries.py +++ b/tests/test_retries.py @@ -32,7 +32,7 @@ def test_retries_from_int(): def test_retries_from_class(): with mock.patch('urllib3.connection.HTTPSConnection.request') as request_mock: request_mock.side_effect = urllib_request_mock - toloka_client = TolokaClient('fake-token', 'SANDBOX', Retry(connect=2)) + toloka_client = TolokaClient('fake-token', 'SANDBOX', Retry(connect=2), retry_quotas=None) with pytest.raises(requests.exceptions.ConnectionError): toloka_client.get_requester() assert request_mock.call_count == 3 From 18a6e271e39a566ca7cdee62f94985c712bb03e9 Mon Sep 17 00:00:00 2001 From: Evgeny Tulin Date: Thu, 1 Jul 2021 15:29:09 +0300 Subject: [PATCH 03/16] side-by-side comparision example ![review](https://codereview.in.yandex-team.ru/badges/review-complete-green.svg) [![vlad--mois](https://codereview.in.yandex-team.ru/badges/vlad--mois-ok-green.svg)](https://staff.yandex-team.ru/vlad-mois) ref:2f88948b2d97bf417accf95c56c0c141d6c7dcee --- .../img/performer_interface.png | Bin 0 -> 51950 bytes .../img/possible_results.png | Bin 0 -> 38844 bytes .../side_by_side_comparison.ipynb | 597 ++++++++++++++++++ 3 files changed, 597 insertions(+) create mode 100644 examples/1.computer_vision/side_by_side_comparison/img/performer_interface.png create mode 100644 examples/1.computer_vision/side_by_side_comparison/img/possible_results.png create mode 100644 examples/1.computer_vision/side_by_side_comparison/side_by_side_comparison.ipynb diff --git a/examples/1.computer_vision/side_by_side_comparison/img/performer_interface.png b/examples/1.computer_vision/side_by_side_comparison/img/performer_interface.png new file mode 100644 index 0000000000000000000000000000000000000000..addfc496e249b502867dfafdbc200e2e77aac051 GIT binary patch literal 51950 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 literal 0 HcmV?d00001 diff --git a/examples/1.computer_vision/side_by_side_comparison/img/possible_results.png b/examples/1.computer_vision/side_by_side_comparison/img/possible_results.png new file mode 100644 index 0000000000000000000000000000000000000000..7ac84721fe68c0c5ef2efde8d7b769a9669d8cd6 GIT binary patch literal 38844 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�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 R1^fg~T0%j*LiE$O{{_K-2WkKS literal 0 HcmV?d00001 diff --git a/examples/1.computer_vision/side_by_side_comparison/side_by_side_comparison.ipynb b/examples/1.computer_vision/side_by_side_comparison/side_by_side_comparison.ipynb new file mode 100644 index 00000000..a8625eb5 --- /dev/null +++ b/examples/1.computer_vision/side_by_side_comparison/side_by_side_comparison.ipynb @@ -0,0 +1,597 @@ +{ + "cells": [ + { + "source": [ + "# Side-by-side image comparison\n", + "We have a set of icons.\n", + "We need to find out which icon people prefer and determine the top icon out of the set.\n", + "We ask performers to look at the icons and choose the one they prefer and then we aggregate these results to obtain the top icon.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "Prepare environment and import all we'll need." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "!pip install toloka-kit==0.1.8\n", + "!pip install crowd-kit==0.0.4\n", + "!pip install pandas\n", + "!pip install ipyplot\n", + "\n", + "import datetime\n", + "import itertools\n", + "import sys\n", + "import time\n", + "import logging\n", + "\n", + "import ipyplot\n", + "import pandas\n", + "\n", + "import toloka.client as toloka\n", + "import toloka.client.project.template_builder as tb\n", + "from crowdkit.aggregation import NoisyBradleyTerry \n", + "\n", + "logging.basicConfig(\n", + " format='[%(levelname)s] %(name)s: %(message)s',\n", + " level=logging.INFO,\n", + " stream=sys.stdout,\n", + ")" + ], + "cell_type": "code", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "source": [ + "Сreate toloka-client instance. All api calls will go through it. More about OAuth token in our [Learn the basics example](https://github.com/Toloka/toloka-kit/tree/main/examples/0.getting_started/0.learn_the_basics) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Toloka/toloka-kit/blob/main/examples/0.getting_started/0.learn_the_basics/learn_the_basics.ipynb)" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "toloka_client = toloka.TolokaClient(input(\"Enter your token:\"), 'PRODUCTION') # Or switch to 'SANDBOX'\n", + "print(toloka_client.get_requester())" + ] + }, + { + "source": [ + "## Create a project" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "project = toloka.Project(\n", + " assignments_issuing_type='AUTOMATED',\n", + " public_name='Which icon do you like more?',\n", + " public_description='Look at the icons and decide which one you like more.',\n", + ")" + ] + }, + { + "source": [ + "Create task interface" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "main_interface = tb.SideBySideLayoutV1(\n", + " items=[\n", + " tb.ImageViewV1(url=tb.InputData(path='image_left'), full_height=True),\n", + " tb.ImageViewV1(url=tb.InputData(path='image_right'), full_height=True),\n", + " ],\n", + " controls=tb.ButtonRadioGroupFieldV1(\n", + " data=tb.OutputData(path='result'),\n", + " label='Which icon do you like more?',\n", + " options=[\n", + " tb.GroupFieldOption(label='Left', value='LEFT'),\n", + " tb.GroupFieldOption(label='Right', value='RIGHT'),\n", + " tb.GroupFieldOption(label='Loading error', value='ERROR'),\n", + " ]\n", + " )\n", + ")\n", + "\n", + "hot_keys_plugin = tb.HotkeysPluginV1(\n", + " key_0=tb.SetActionV1(data=tb.OutputData(path='result'), payload='ERROR'),\n", + " key_1=tb.SetActionV1(data=tb.OutputData(path='result'), payload='LEFT'),\n", + " key_2=tb.SetActionV1(data=tb.OutputData(path='result'), payload='RIGHT'),\n", + ")\n", + "\n", + "project_interface = toloka.project.view_spec.TemplateBuilderViewSpec(\n", + " config=tb.TemplateBuilder(\n", + " view=main_interface,\n", + " plugins=[hot_keys_plugin],\n", + " )\n", + ")" + ] + }, + { + "source": [ + "Set data specification. And set task interface to project." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "input_specification = {\n", + " 'image_left': toloka.project.field_spec.UrlSpec(),\n", + " 'image_right': toloka.project.field_spec.UrlSpec(),\n", + "}\n", + "output_specification = {'result': toloka.project.field_spec.StringSpec()}\n", + "\n", + "project.task_spec = toloka.project.task_spec.TaskSpec(\n", + " input_spec=input_specification,\n", + " output_spec=output_specification,\n", + " view_spec=project_interface,\n", + ")" + ] + }, + { + "source": [ + "Write short and simple \tinstructions." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "project.public_instructions = \"\"\"

Look at the icons and decide which one you like more.

\n", + "

Select \"Left\" if you like the icon on the left more.

\n", + "

Select \"Right\" if you like the icon on the right more.

\n", + "

Select \"Loadinf error\" if the picture failed to load.

\"\"\"" + ] + }, + { + "source": [ + "Create a project." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "project = toloka_client.create_project(project)" + ] + }, + { + "source": [ + "The performer will see the interface like this:\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " \"Photo\n", + "
\n", + " Figure 1. How performer will see your task\n", + "
" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## Create a pool\n", + "Specify the [pool parameters.](https://yandex.com/support/toloka-requester/concepts/pool_poolparams.html)" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pool = toloka.Pool(\n", + " project_id=project.id,\n", + " # Give the pool any convenient name. You are the only one who will see it.\n", + " private_name='Which icon do you like more',\n", + " may_contain_adult_content=False,\n", + " # Set the price per task page.\n", + " reward_per_assignment=0.01,\n", + " will_expire=datetime.datetime.utcnow() + datetime.timedelta(days=365),\n", + " # Time given to complete a task suite\n", + " assignment_max_duration_seconds=600,\n", + ")" + ] + }, + { + "source": [ + "Select English-speaking performers" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pool.filter = toloka.filter.Languages.in_('EN')" + ] + }, + { + "source": [ + "Set up [Quality control](https://yandex.com/support/toloka-requester/concepts/control.html). Set up the Submitted responses quality control rule. Restrict the number of responses per user to one. This way you will only get one answer from each user and thus ensure a variety of opinions." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pool.quality_control.add_action(\n", + " collector=toloka.collectors.AnswerCount(),\n", + " conditions=[toloka.conditions.AssignmentsAcceptedCount == 1],\n", + " action=toloka.actions.RestrictionV2(\n", + " scope=toloka.user_restriction.UserRestriction.PROJECT,\n", + " duration=3,\n", + " duration_unit='DAYS',\n", + " private_comment='No need more answers from this performer',\n", + " )\n", + ")" + ] + }, + { + "source": [ + "Overlap. This is the number of users who will complete the same task. Since you are interested in a variety of opinions, select a big overlap for each task. For example, 10." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pool.defaults = toloka.Pool.Defaults(default_overlap_for_new_task_suites=10)" + ] + }, + { + "source": [ + "Specify\tthe number of tasks per page. 1 task per page. A performer will only see one pair of images on a page." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pool.set_mixer_config(\n", + " real_tasks_count=1,\n", + " golden_tasks_count=0,\n", + " training_tasks_count=0\n", + ")" + ] + }, + { + "source": [ + "Create pool" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pool = toloka_client.create_pool(pool)" + ] + }, + { + "source": [ + "## Preparing and uploading tasks\n", + "\n", + "This example uses a small data set with images.\n", + "\n", + "The dataset used is collected by Toloka team and distributed under a Creative Commons Attribution 4.0 International license\n", + "[![License: CC BY 4.0](https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/)." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "!curl https://tlk.s3.yandex.net/dataset/toloka_logos/toloka_logos.tsv --output dataset.tsv\n", + "dataset = pandas.read_csv('dataset.tsv', sep='\\t')\n", + "with pandas.option_context(\"max_colwidth\", 80):\n", + " print(dataset)" + ], + "cell_type": "code", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "source": [ + "Our project is a pairwise comparison of two images. But our dataset contains just a flat list. Let's create a dataset that contains all possible pairs for comparison." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dataset = pandas.DataFrame(itertools.combinations(dataset['url'], 2), columns=['image_left', 'image_right'])\n", + "with pandas.option_context(\"max_colwidth\", 70):\n", + " display(dataset)" + ] + }, + { + "source": [ + "Create pool tasks" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tasks = [\n", + " toloka.Task(\n", + " pool_id=pool.id,\n", + " input_values={\n", + " 'image_left': row['image_left'],\n", + " 'image_right': row['image_right'],\n", + " }\n", + " )\n", + " for i, row in dataset.iterrows()\n", + "]" + ] + }, + { + "source": [ + "Upload tasks" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "created_tasks = toloka_client.create_tasks(tasks, allow_defaults=True)\n", + "print(len(created_tasks.items))" + ] + }, + { + "source": [ + "Start the pool.\n", + "\n", + "**Important.** Remember that real Toloka performers will complete the tasks.\n", + "Double check that everything is correct\n", + "with your project configuration before you start the pool" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pool = toloka_client.open_pool(pool.id)\n", + "print(pool.status)" + ] + }, + { + "source": [ + "## Receiving responses" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "Wait until the pool is completed." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "pool_id = pool.id\n", + "\n", + "def wait_pool_for_close(pool_id, minutes_to_wait=1):\n", + " sleep_time = 60 * minutes_to_wait\n", + " pool = toloka_client.get_pool(pool_id)\n", + " while not pool.is_closed():\n", + " op = toloka_client.get_analytics([toloka.analytics_request.CompletionPercentagePoolAnalytics(subject_id=pool.id)])\n", + " op = toloka_client.wait_operation(op)\n", + " percentage = op.details['value'][0]['result']['value']\n", + " print(\n", + " f' {datetime.datetime.now().strftime(\"%H:%M:%S\")}\\t'\n", + " f'Pool {pool.id} - {percentage}%'\n", + " )\n", + " time.sleep(sleep_time)\n", + " pool = toloka_client.get_pool(pool.id)\n", + " print('Pool was closed.')\n", + "\n", + "wait_pool_for_close(pool_id)" + ], + "cell_type": "code", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "source": [ + "Get responses\n", + "\n", + "When all the tasks are completed, look at the responses from performers." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "answers = []\n", + "\n", + "for assignment in toloka_client.get_assignments(pool_id=pool_id, status='ACCEPTED'):\n", + " for task, solution in zip(assignment.tasks, assignment.solutions):\n", + " answers.append(\n", + " [\n", + " task.input_values['image_left'],\n", + " task.input_values['image_right'],\n", + " solution.output_values['result'],\n", + " assignment.user_id\n", + " ]\n", + " )\n", + "\n", + "print(f'answers count: {len(answers)}')" + ] + }, + { + "source": [ + "Ranking after a pairwise comparison is quite a difficult task. We will use the Bradley-Terry algorithm, which is already implemented in the Crowd-Kit and allows you to get the result in a few lines of code.\n", + "\n", + "> David R. Hunter. 2004.\n", + "> MM algorithms for generalized Bradley-Terry models\n", + "> Ann. Statist., Vol. 32, 1 (2004): 384–406.\n", + "> \n", + "> \n", + "> Bradley, R. A. and Terry, M. E. 1952.\n", + "> Rank analysis of incomplete block designs. I. The method of paired comparisons.\n", + "> Biometrika, Vol. 39 (1952): 324–345." + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Prepare dataframe\n", + "answers_df = pandas.DataFrame(answers, columns=['left', 'right', 'label', 'performer'])\n", + "\n", + "answers_df = answers_df[(answers_df.label == 'LEFT') | (answers_df.label == 'RIGHT')]\n", + "answers_df['label'] = answers_df.apply(lambda row: row[row['label'].lower()], axis=1)\n", + "\n", + "# Run aggregation\n", + "result = NoisyBradleyTerry().fit_predict(answers_df).sort_values(ascending=False) \n", + "print(result)" + ] + }, + { + "source": [ + "Let's look at the ranking results" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "images = result.index.values\n", + "labels = result.values\n", + "ipyplot.plot_images(\n", + " images=images,\n", + " labels=labels,\n", + " max_images=6,\n", + " img_width=200,\n", + ")" + ] + }, + { + "source": [ + "**You** can see the ranked images. Some possible results are shown in figure 2 below.\n", + "\n", + "\n", + " \n", + " \n", + "
\n", + " \"Possible\n", + "
\n", + " Figure 2. Possible results.\n", + "
" + ], + "cell_type": "markdown", + "metadata": {} + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file From 33e8c45f5612d6beeb050441d2bfbe77d642bf34 Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Thu, 1 Jul 2021 18:28:24 +0300 Subject: [PATCH 04/16] extended __all__ with nested module names ref:ab94f4c620c16dbe5bedf384e6b0061acb3c736f --- src/client/__init__.py | 58 +++++++++++- src/client/__init__.pyi | 49 ++++++++++ src/client/pool/__init__.py | 8 ++ src/client/pool/__init__.pyi | 12 +++ src/client/project/__init__.py | 10 +++ src/client/project/__init__.pyi | 26 ++++++ .../project/template_builder/__init__.py | 20 +++++ .../project/template_builder/__init__.pyi | 89 +++++++++++++++++++ 8 files changed, 269 insertions(+), 3 deletions(-) diff --git a/src/client/__init__.py b/src/client/__init__.py index 728895e1..9202cb3d 100644 --- a/src/client/__init__.py +++ b/src/client/__init__.py @@ -1,4 +1,35 @@ __all__ = [ + 'actions', + 'aggregation', + 'analytics_request', + 'assignment', + 'attachment', + 'batch_create_results', + 'clone_results', + 'collectors', + 'conditions', + 'error_codes', + 'exceptions', + 'filter', + 'message_thread', + 'operation_log', + 'operations', + 'owner', + 'quality_control', + 'requester', + 'search_requests', + 'search_results', + 'skill', + 'solution', + 'task', + 'task_distribution_function', + 'task_suite', + 'training', + 'user_bonus', + 'user_restriction', + 'user_skill', + 'webhook_subscription', + 'TolokaClient', 'Assignment', 'Attachment', @@ -32,16 +63,37 @@ from typing import BinaryIO, Generator, List, Optional, Tuple, Union from urllib3.util.retry import Retry -from . import actions # noqa: F401 +from . import actions from . import aggregation +from . import analytics_request +from . import assignment +from . import attachment from . import batch_create_results -from . import collectors # noqa: F401 -from . import conditions # noqa: F401 +from . import clone_results +from . import collectors +from . import conditions +from . import error_codes +from . import exceptions +from . import filter +from . import message_thread +from . import operation_log from . import operations +from . import owner +from . import quality_control +from . import requester from . import search_requests from . import search_results +from . import skill +from . import solution from . import task +from . import task_distribution_function from . import task_suite +from . import training +from . import user_bonus +from . import user_restriction +from . import user_skill +from . import webhook_subscription + from .__version__ import __version__ from ._converter import structure, unstructure from .aggregation import AggregatedSolution diff --git a/src/client/__init__.pyi b/src/client/__init__.pyi index a63aaecb..aa70bcbb 100644 --- a/src/client/__init__.pyi +++ b/src/client/__init__.pyi @@ -1,3 +1,52 @@ +__all__ = [ + 'actions', + 'aggregation', + 'analytics_request', + 'assignment', + 'attachment', + 'batch_create_results', + 'clone_results', + 'collectors', + 'conditions', + 'error_codes', + 'exceptions', + 'filter', + 'message_thread', + 'operation_log', + 'operations', + 'owner', + 'quality_control', + 'requester', + 'search_requests', + 'search_results', + 'skill', + 'solution', + 'task', + 'task_distribution_function', + 'task_suite', + 'training', + 'user_bonus', + 'user_restriction', + 'user_skill', + 'webhook_subscription', + + 'TolokaClient', + 'Assignment', + 'Attachment', + 'Folder', + 'MessageThread', + 'MessageThreadReply', + 'MessageThreadFolders', + 'MessageThreadCompose', + 'Skill', + 'TaskSuite', + 'Task', + 'Training', + 'UserBonus', + 'Pool', + 'Project', +] + from datetime import ( datetime, timedelta diff --git a/src/client/pool/__init__.py b/src/client/pool/__init__.py index ad880176..86f5867a 100644 --- a/src/client/pool/__init__.py +++ b/src/client/pool/__init__.py @@ -1,4 +1,8 @@ __all__ = [ + 'dynamic_overlap_config', + 'dynamic_pricing_config', + 'mixer_config', + 'Pool', 'PoolPatchRequest', 'DynamicOverlapConfig', @@ -11,6 +15,10 @@ import attr +from . import dynamic_overlap_config +from . import dynamic_pricing_config +from . import mixer_config + from .dynamic_overlap_config import DynamicOverlapConfig from .dynamic_pricing_config import DynamicPricingConfig from .mixer_config import MixerConfig diff --git a/src/client/pool/__init__.pyi b/src/client/pool/__init__.pyi index 2d8bcdb7..5ac5b833 100644 --- a/src/client/pool/__init__.pyi +++ b/src/client/pool/__init__.pyi @@ -1,3 +1,15 @@ +__all__ = [ + 'dynamic_overlap_config', + 'dynamic_pricing_config', + 'mixer_config', + + 'Pool', + 'PoolPatchRequest', + 'DynamicOverlapConfig', + 'DynamicPricingConfig', + 'MixerConfig', +] + from datetime import datetime from enum import Enum from toloka.client.filter import FilterCondition diff --git a/src/client/project/__init__.py b/src/client/project/__init__.py index 879f7e5e..6569c243 100644 --- a/src/client/project/__init__.py +++ b/src/client/project/__init__.py @@ -1,4 +1,9 @@ __all__ = [ + 'field_spec', + 'task_spec', + 'template_builder', + 'view_spec', + 'Project', 'ClassicViewSpec', 'TemplateBuilderViewSpec', @@ -22,6 +27,11 @@ import datetime from enum import Enum, unique +from . import field_spec +from . import task_spec +from . import template_builder +from . import view_spec + from ..primitives.base import BaseTolokaObject from ..project.field_spec import ( BooleanSpec, diff --git a/src/client/project/__init__.pyi b/src/client/project/__init__.pyi index e2210f24..2d40fa81 100644 --- a/src/client/project/__init__.pyi +++ b/src/client/project/__init__.pyi @@ -1,3 +1,29 @@ +__all__ = [ + 'field_spec', + 'task_spec', + 'template_builder', + 'view_spec', + + 'Project', + 'ClassicViewSpec', + 'TemplateBuilderViewSpec', + 'BooleanSpec', + 'StringSpec', + 'IntegerSpec', + 'FloatSpec', + 'UrlSpec', + 'FileSpec', + 'CoordinatesSpec', + 'JsonSpec', + 'ArrayBooleanSpec', + 'ArrayStringSpec', + 'ArrayIntegerSpec', + 'ArrayFloatSpec', + 'ArrayUrlSpec', + 'ArrayFileSpec', + 'ArrayCoordinatesSpec', +] + from datetime import datetime from enum import Enum from toloka.client.primitives.base import BaseTolokaObject diff --git a/src/client/project/template_builder/__init__.py b/src/client/project/template_builder/__init__.py index d932c82c..d55d9f7f 100644 --- a/src/client/project/template_builder/__init__.py +++ b/src/client/project/template_builder/__init__.py @@ -1,4 +1,14 @@ __all__ = [ + + 'actions', + 'conditions', + 'data', + 'fields', + 'helpers', + 'layouts', + 'plugins', + 'view', + 'TemplateBuilder', 'get_input_and_output', 'BulkActionV1', @@ -76,8 +86,18 @@ 'TextViewV1', 'VideoViewV1', ] + from typing import Dict, List, Any, Union, Tuple +from . import actions +from . import conditions +from . import data +from . import fields +from . import helpers +from . import layouts +from . import plugins +from . import view + from .actions import ( BulkActionV1, NotifyActionV1, diff --git a/src/client/project/template_builder/__init__.pyi b/src/client/project/template_builder/__init__.pyi index 53364980..5af714fc 100644 --- a/src/client/project/template_builder/__init__.pyi +++ b/src/client/project/template_builder/__init__.pyi @@ -1,3 +1,92 @@ +__all__ = [ + + 'actions', + 'conditions', + 'data', + 'fields', + 'helpers', + 'layouts', + 'plugins', + 'view', + + 'TemplateBuilder', + 'get_input_and_output', + 'BulkActionV1', + 'NotifyActionV1', + 'OpenCloseActionV1', + 'OpenLinkActionV1', + 'PlayPauseActionV1', + 'RotateActionV1', + 'SetActionV1', + 'ToggleActionV1', + 'AllConditionV1', + 'AnyConditionV1', + 'EmptyConditionV1', + 'EqualsConditionV1', + 'LinkOpenedConditionV1', + 'NotConditionV1', + 'PlayedConditionV1', + 'PlayedFullyConditionV1', + 'RequiredConditionV1', + 'SchemaConditionV1', + 'SubArrayConditionV1', + 'InputData', + 'InternalData', + 'LocalData', + 'OutputData', + 'RelativeData', + 'ButtonRadioFieldV1', + 'GroupFieldOption', + 'ButtonRadioGroupFieldV1', + 'CheckboxFieldV1', + 'CheckboxGroupFieldV1', + 'DateFieldV1', + 'EmailFieldV1', + 'FileFieldV1', + 'ImageAnnotationFieldV1', + 'ListFieldV1', + 'MediaFileFieldV1', + 'NumberFieldV1', + 'PhoneNumberFieldV1', + 'RadioGroupFieldV1', + 'SelectFieldV1', + 'TextFieldV1', + 'TextareaFieldV1', + 'ConcatArraysHelperV1', + 'Entries2ObjectHelperV1', + 'IfHelperV1', + 'JoinHelperV1', + 'Object2EntriesHelperV1', + 'ReplaceHelperV1', + 'SearchQueryHelperV1', + 'SwitchHelperV1', + 'TextTransformHelperV1', + 'TransformHelperV1', + 'YandexDiskProxyHelperV1', + 'BarsLayoutV1', + 'ColumnsLayoutV1', + 'SideBySideLayoutV1', + 'SidebarLayoutV1', + 'HotkeysPluginV1', + 'TriggerPluginV1', + 'TolokaPluginV1', + 'ActionButtonViewV1', + 'AlertViewV1', + 'AudioViewV1', + 'CollapseViewV1', + 'DeviceFrameViewV1', + 'DividerViewV1', + 'GroupViewV1', + 'IframeViewV1', + 'ImageViewV1', + 'LabeledListViewV1', + 'LinkViewV1', + 'ListViewV1', + 'MarkdownViewV1', + 'TextViewV1', + 'VideoViewV1', +] + from toloka.client.primitives.base import BaseTolokaObject from toloka.client.project.field_spec import FieldSpec from toloka.client.project.template_builder.actions import ( From 76447566d11dc6a2f2977e0d7e1a2252a1c98512 Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Thu, 1 Jul 2021 21:35:30 +0300 Subject: [PATCH 05/16] Add base import to template_builder ref:e5efe2f3dd79453e4c5fe757ed80ae1844846fb8 --- src/client/project/template_builder/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/client/project/template_builder/__init__.py b/src/client/project/template_builder/__init__.py index d55d9f7f..b94bc0d8 100644 --- a/src/client/project/template_builder/__init__.py +++ b/src/client/project/template_builder/__init__.py @@ -1,6 +1,7 @@ __all__ = [ 'actions', + 'base', 'conditions', 'data', 'fields', @@ -90,6 +91,7 @@ from typing import Dict, List, Any, Union, Tuple from . import actions +from . import base from . import conditions from . import data from . import fields From 5e4eb74f117dc8c6210a5f2d1d23d8a3939eded2 Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Thu, 1 Jul 2021 21:35:36 +0300 Subject: [PATCH 06/16] Added default defaults in Pool ref:893189b255d962d6abcb29cc38db48494f0d8052 --- src/client/pool/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/pool/__init__.py b/src/client/pool/__init__.py index 86f5867a..70293ce0 100644 --- a/src/client/pool/__init__.py +++ b/src/client/pool/__init__.py @@ -195,7 +195,7 @@ class Type(Enum): may_contain_adult_content: bool reward_per_assignment: float assignment_max_duration_seconds: int - defaults: Defaults + defaults: Defaults = attr.attrib(factory=lambda: Pool.Defaults(default_overlap_for_new_task_suites=1)) will_expire: datetime.datetime From 9ca75e1db720f6116f0c032efb09e84993775cdf Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Thu, 1 Jul 2021 22:34:39 +0300 Subject: [PATCH 07/16] Add default arguments for mixer_config ![review](https://codereview.in.yandex-team.ru/badges/review-in_progress-yellow.svg) [![vlad--mois](https://codereview.in.yandex-team.ru/badges/vlad--mois-...-yellow.svg)](https://staff.yandex-team.ru/vlad-mois) ref:960d05b94285c5a43203efacd9eb968fe745040f --- src/client/__init__.py | 2 +- src/client/pool/__init__.py | 2 +- src/client/pool/__init__.pyi | 4 ++-- src/client/pool/mixer_config.py | 9 +++++---- src/client/pool/mixer_config.pyi | 6 +++--- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/client/__init__.py b/src/client/__init__.py index 9202cb3d..8d2b610b 100644 --- a/src/client/__init__.py +++ b/src/client/__init__.py @@ -923,7 +923,7 @@ def reset_quality_control(quality_control, old_to_new_train_ids): # create trainings new_trainings = [] old_to_new_train_ids = {} - for training in self.get_trainings(project_id=project_id): + for training in self.get_trainings(project_id=project_id): # noqa old_id = training.id training.project_id = new_project.id new_training = self.create_training(training) diff --git a/src/client/pool/__init__.py b/src/client/pool/__init__.py index 70293ce0..978575b7 100644 --- a/src/client/pool/__init__.py +++ b/src/client/pool/__init__.py @@ -107,7 +107,7 @@ class Pool(BaseTolokaObject): >>> defaults=toloka.pool.Pool.Defaults(default_overlap_for_new_task_suites=3), >>> filter=toloka.filter.Languages.in_('EN'), >>> ) - >>> new_pool.set_mixer_config(real_tasks_count=10, golden_tasks_count=0, training_tasks_count=0) + >>> new_pool.set_mixer_config(real_tasks_count=10) >>> new_pool.quality_control.add_action(...) >>> new_pool = toloka_client.create_pool(new_pool) >>> print(new_pool.id) diff --git a/src/client/pool/__init__.pyi b/src/client/pool/__init__.pyi index 5ac5b833..4d72d05e 100644 --- a/src/client/pool/__init__.pyi +++ b/src/client/pool/__init__.pyi @@ -104,7 +104,7 @@ class Pool(BaseTolokaObject): >>> defaults=toloka.pool.Pool.Defaults(default_overlap_for_new_task_suites=3), >>> filter=toloka.filter.Languages.in_('EN'), >>> ) - >>> new_pool.set_mixer_config(real_tasks_count=10, golden_tasks_count=0, training_tasks_count=0) + >>> new_pool.set_mixer_config(real_tasks_count=10) >>> new_pool.quality_control.add_action(...) >>> new_pool = toloka_client.create_pool(new_pool) >>> print(new_pool.id) @@ -291,7 +291,7 @@ class Pool(BaseTolokaObject): ... @overload - def set_mixer_config(self, *, real_tasks_count: Optional[int] = None, golden_tasks_count: Optional[int] = None, training_tasks_count: Optional[int] = None, min_real_tasks_count: Optional[int] = None, min_golden_tasks_count: Optional[int] = None, min_training_tasks_count: Optional[int] = None, force_last_assignment: Optional[bool] = None, force_last_assignment_delay_seconds: Optional[int] = None, mix_tasks_in_creation_order: Optional[bool] = None, shuffle_tasks_in_task_suite: Optional[bool] = None, golden_task_distribution_function: Optional[TaskDistributionFunction] = None, training_task_distribution_function: Optional[TaskDistributionFunction] = None): + def set_mixer_config(self, *, real_tasks_count: int = 0, golden_tasks_count: int = 0, training_tasks_count: int = 0, min_real_tasks_count: Optional[int] = None, min_golden_tasks_count: Optional[int] = None, min_training_tasks_count: Optional[int] = None, force_last_assignment: Optional[bool] = None, force_last_assignment_delay_seconds: Optional[int] = None, mix_tasks_in_creation_order: Optional[bool] = None, shuffle_tasks_in_task_suite: Optional[bool] = None, golden_task_distribution_function: Optional[TaskDistributionFunction] = None, training_task_distribution_function: Optional[TaskDistributionFunction] = None): """A shortcut setter for mixer_config """ ... diff --git a/src/client/pool/mixer_config.py b/src/client/pool/mixer_config.py index 9a6e076a..c4aa0c46 100644 --- a/src/client/pool/mixer_config.py +++ b/src/client/pool/mixer_config.py @@ -1,5 +1,6 @@ __all__ = ['MixerConfig'] -from ..primitives.base import BaseTolokaObject + +from ..primitives.base import attribute, BaseTolokaObject from ..task_distribution_function import TaskDistributionFunction @@ -47,9 +48,9 @@ class MixerConfig(BaseTolokaObject): change the frequency of training tasks as the user completes more tasks. """ - real_tasks_count: int - golden_tasks_count: int - training_tasks_count: int + real_tasks_count: int = attribute(default=0, required=True) + golden_tasks_count: int = attribute(default=0, required=True) + training_tasks_count: int = attribute(default=0, required=True) min_real_tasks_count: int min_golden_tasks_count: int min_training_tasks_count: int diff --git a/src/client/pool/mixer_config.pyi b/src/client/pool/mixer_config.pyi index d4998ecc..277865fa 100644 --- a/src/client/pool/mixer_config.pyi +++ b/src/client/pool/mixer_config.pyi @@ -56,9 +56,9 @@ class MixerConfig(BaseTolokaObject): ... _unexpected: Optional[Dict[str, Any]] - real_tasks_count: Optional[int] - golden_tasks_count: Optional[int] - training_tasks_count: Optional[int] + real_tasks_count: int + golden_tasks_count: int + training_tasks_count: int min_real_tasks_count: Optional[int] min_golden_tasks_count: Optional[int] min_training_tasks_count: Optional[int] From ce61e5c4a87223a6831862a8277cbf18aaaded8f Mon Sep 17 00:00:00 2001 From: Evgeny Tulin Date: Fri, 2 Jul 2021 00:34:42 +0300 Subject: [PATCH 08/16] How to contribute new examples ref:39d91feecb29a457cb86515f1136caf762901a40 --- README.md | 11 +++++++---- examples/README.md | 4 +++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ca81f6ee..ecf7f8ce 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,8 @@ Designed by engineers for engineers, Toloka lets you integrate an on-demand work Main advantages of Toloka: - **Top-quality data** - Collect and annotate training data that meets and exceeds industry quality standards thanks to multiple quality control methods and mechanisms available in Toloka. - - **Scalable projects** - Have any amounts of image, text, speech, audio or video data collected and labeled for you by millions of skilled Toloka users across the globe. - - **Cost-efficiency** - Save time and money with this purpose-built platform for handling large-scale data collection and annotation projects, on demand 24/7, at your own price and within your timeframe. + - **Scalable projects** - Have any amounts of image, text, speech, audio, or video data collected and labeled for you by millions of skilled Toloka users across the globe. + - **Cost-efficiency** - Save time and money with this purpose-built platform for handling large-scale data collection and annotation projects, on-demand 24/7, at your own price and within your timeframe. - **Free, powerful API** - Build scalable and fully automated human-in-the-loop machine learning pipelines with a powerful open API. @@ -40,7 +40,7 @@ Installing toloka-kit is as easy as: ``` $ pip install toloka-kit ``` -Note: this project is still under heavy development and interfaces may change slightly. For production environments please specify exact package version such as `toloka-kit==0.1.3` +Note: this project is still under heavy development and interfaces may change slightly. For production environments please specify exact package version. For example: `toloka-kit==0.1.8` **Try your first program and checks the validity of the OAuth token:** ```python @@ -56,7 +56,7 @@ Useful Links - [Toloka requester's guide.](https://yandex.ru/support/toloka-requester/index.html?lang=en) - We recommend that you first get acquainted with Toloka through the web interface and implement [one of the tutorials.](https://yandex.ru/support/toloka-requester/concepts/usecases.html) - [Toloka API documentation.](https://yandex.com/dev/toloka/doc/concepts/about.html?lang=en) -- [Toloka-kit usage examples.](https://github.com/Toloka/toloka-kit/tree/main/examples) +- [Toloka-kit usage examples.](https://github.com/Toloka/toloka-kit/tree/main/examples#toloka-kit-usage-examples) Questions and bug reports -------------- @@ -65,6 +65,9 @@ Questions and bug reports * Seek prompt advice at English-speaking [Telegram chat](https://t.me/toloka_tech) (Mostly tech question) +Contributing +------- +Feel free to contribute to toloka-kit. Right now, we really need more [usage examples.](https://github.com/Toloka/toloka-kit/tree/main/examples#need-more-examples) License ------- diff --git a/examples/README.md b/examples/README.md index c41a69a9..6c001d75 100644 --- a/examples/README.md +++ b/examples/README.md @@ -19,7 +19,9 @@ Why it may be usefull: | Blood cells classification | Available soon | ```CV```, ```Classification```, ```Medicine```, ```Benchmark```| # Need more examples? -If you have an example of data labeling using toloka-kit, do not hesitate to send us a [pool request](https://github.com/Toloka/toloka-kit/pulls). Ideally, a great example should contain the following aspects: +If you have an example of data labeling using toloka-kit, do not hesitate to send it. Add a link to your GitHub repository and a description to this table via a [pool request](https://github.com/Toloka/toloka-kit/pulls). + +Ideally, a great example should contain the following aspects: - Problem statement; - How to set up a project; - Where to get the data for the example; From cc7ab0a70c6115ccd8c3f1bf3e7ab8dbdbb7c6a6 Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Fri, 2 Jul 2021 00:34:48 +0300 Subject: [PATCH 09/16] Expanded TolokaPluginV1 ![review](https://codereview.in.yandex-team.ru/badges/review-in_progress-yellow.svg) [![vlad--mois](https://codereview.in.yandex-team.ru/badges/vlad--mois-...-yellow.svg)](https://staff.yandex-team.ru/vlad-mois) ref:77f213ceb32e0dd1658db420fed9a4486ecc9fbd --- src/client/project/template_builder/plugins.py | 14 ++++++++------ src/client/project/template_builder/plugins.pyi | 17 ++++++++++++++++- src/client/util/_codegen.py | 11 ++++++----- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/client/project/template_builder/plugins.py b/src/client/project/template_builder/plugins.py index 2d70a24e..40729846 100644 --- a/src/client/project/template_builder/plugins.py +++ b/src/client/project/template_builder/plugins.py @@ -2,12 +2,14 @@ 'BasePluginV1', 'HotkeysPluginV1', 'TriggerPluginV1', - 'TolokaPluginV1' + 'TolokaPluginV1', ] + from enum import Enum, unique from typing import List, Any from ...primitives.base import attribute +from ...util._codegen import expand from .base import VersionedBaseComponent, BaseComponent, ComponentType, BaseTemplate, base_component_or @@ -123,10 +125,8 @@ class TolokaPluginV1(BasePluginV1, spec_value=ComponentType.PLUGIN_TOLOKA): How to set the task width on the task page. >>> task_width_plugin = tb.plugins.TolokaPluginV1( - >>> layout = tb.plugins.TolokaPluginV1.TolokaPluginLayout( - >>> kind='scroll', - >>> task_width=400, - >>> ) + >>> kind='scroll', + >>> task_width=400, >>> ) ... """ @@ -148,8 +148,10 @@ class Kind(Enum): PAGER = 'pager' SCROLL = 'scroll' - kind: Kind = Kind.SCROLL + kind: Kind task_width: float = attribute(origin='taskWidth') layout: base_component_or(TolokaPluginLayout) = attribute(factory=TolokaPluginLayout) notifications: base_component_or(List[BaseComponent], 'ListBaseComponent') + +TolokaPluginV1.__init__ = expand('layout', TolokaPluginV1.TolokaPluginLayout)(TolokaPluginV1.__init__) diff --git a/src/client/project/template_builder/plugins.pyi b/src/client/project/template_builder/plugins.pyi index 6be2ab89..a97d61d1 100644 --- a/src/client/project/template_builder/plugins.pyi +++ b/src/client/project/template_builder/plugins.pyi @@ -9,7 +9,8 @@ from typing import ( Dict, List, Optional, - Union + Union, + overload, ) class BasePluginV1(VersionedBaseComponent): @@ -135,6 +136,8 @@ class TolokaPluginV1(BasePluginV1): """A plugin with extra settings for tasks in Toloka. Attributes: + kind: Layout direction. + task_width: Width of the block with the task. By default, the task is displayed at full width. layout: Settings for the task appearance in Toloka. notifications: Notifications shown at the top of the page. @@ -152,6 +155,11 @@ class TolokaPluginV1(BasePluginV1): class TolokaPluginLayout(BaseTemplate): """How to display task. + + Attributes: + kind: Layout direction. + task_width: Width of the block with the task. By default, the task is displayed at full width. + """ class Kind(Enum): @@ -174,6 +182,13 @@ class TolokaPluginV1(BasePluginV1): kind: Optional[Kind] task_width: Optional[float] + @overload + def __init__(self, *, version: Optional[str] = '1.0.0', kind: Optional[TolokaPluginLayout.Kind] = None, task_width: Optional[float] = None, notifications: Optional[Union[BaseComponent, List[BaseComponent]]] = None) -> None: + """Method generated by attrs for class TolokaPluginV1. + """ + ... + + @overload def __init__(self, *, version: Optional[str] = '1.0.0', layout: Optional[Union[BaseComponent, TolokaPluginLayout]] = ..., notifications: Optional[Union[BaseComponent, List[BaseComponent]]] = None) -> None: """Method generated by attrs for class TolokaPluginV1. """ diff --git a/src/client/util/_codegen.py b/src/client/util/_codegen.py index 5459972f..7548880f 100644 --- a/src/client/util/_codegen.py +++ b/src/client/util/_codegen.py @@ -4,7 +4,7 @@ import uuid from inspect import signature, Signature, Parameter from textwrap import dedent, indent -from typing import Callable, Dict, List, Optional +from typing import Callable, Dict, List, Optional, Type import attr @@ -154,13 +154,14 @@ def codegen_attr_attributes_setters(cls): return cls -def expand_func_by_argument(func: Callable, arg_name: str) -> Callable: +def expand_func_by_argument(func: Callable, arg_name: str, arg_type: Optional[Type] = None) -> Callable: func_sig = _get_signature(func) func_params = list(func_sig.parameters.values()) arg_param = func_sig.parameters[arg_name] arg_index = next(i for (i, p) in enumerate(func_params) if p is arg_param) - arg_type = is_optional_of(arg_param.annotation) or arg_param.annotation + if arg_type is None: + arg_type = is_optional_of(arg_param.annotation) or arg_param.annotation arg_type_sig = _get_signature(arg_type) # TODO: add tests @@ -183,11 +184,11 @@ def expand_func_by_argument(func: Callable, arg_name: str) -> Callable: return expanded_func -def expand(arg_name): +def expand(arg_name, arg_type=None): def wrapper(func): func_sig = _get_signature(func) - expanded_func = expand_func_by_argument(func, arg_name) + expanded_func = expand_func_by_argument(func, arg_name, arg_type) @functools.wraps(func) def wrapped(*args, **kwargs): From 6232b154090f3fbb96a7fab36bb3c4d82a855d8b Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Fri, 2 Jul 2021 00:34:54 +0300 Subject: [PATCH 10/16] pretty-printing TB config ![review](https://codereview.in.yandex-team.ru/badges/review-in_progress-yellow.svg) [![tulinev](https://codereview.in.yandex-team.ru/badges/tulinev-...-yellow.svg)](https://staff.yandex-team.ru/tulinev) ref:e72cedbabfa7400cac3aaded79e43760bd90b5b0 --- src/client/project/view_spec.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/project/view_spec.py b/src/client/project/view_spec.py index c02ba2af..7af3e8bb 100644 --- a/src/client/project/view_spec.py +++ b/src/client/project/view_spec.py @@ -157,7 +157,7 @@ def unstructure(self): raise RuntimeError(f'Different versions of the same component: {comp_type}') data['lock'] = lock - data['config'] = json.dumps(data['config']) + data['config'] = json.dumps(data['config'], indent=4, ensure_ascii=False) return data @classmethod From f0a6faf7d9cfacfc228dbf85411ebd1bc53c9e9a Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Fri, 2 Jul 2021 01:42:09 +0300 Subject: [PATCH 11/16] Renamed misleading names ![review](https://codereview.in.yandex-team.ru/badges/review-in_progress-yellow.svg) [![vlad--mois](https://codereview.in.yandex-team.ru/badges/vlad--mois-...-yellow.svg)](https://staff.yandex-team.ru/vlad-mois) ref:f15e5ccdf97a1dd3ee2bae938f6fff0df4565400 --- src/client/primitives/operators.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/client/primitives/operators.py b/src/client/primitives/operators.py index 2971f105..461aaa18 100644 --- a/src/client/primitives/operators.py +++ b/src/client/primitives/operators.py @@ -65,12 +65,15 @@ def _eq_compatible_with_help(cls, value): class _InclusionConditionMetaclass(BaseTolokaObjectMetaclass): - def in_(cls, value): + def include(cls, value): return cls(operator=InclusionOperator.IN, value=value) - def not_in(cls, value): + def exclude(cls, value): return cls(operator=InclusionOperator.NOT_IN, value=value) + in_ = include + not_in = exclude + __new__ = _create_operator_metaclass_new(InclusionOperator) From 7d4395a997e63a74b14a6d60b19d2b5fe8952f38 Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Fri, 2 Jul 2021 01:42:14 +0300 Subject: [PATCH 12/16] Simplified TemplateBuilderViewSpec interface ![review](https://codereview.in.yandex-team.ru/badges/review-in_progress-yellow.svg) [![vlad--mois](https://codereview.in.yandex-team.ru/badges/vlad--mois-...-yellow.svg)](https://staff.yandex-team.ru/vlad-mois) ref:06950ba7fd7702b5d1b1005a25723b3be9751b15 --- src/client/project/view_spec.py | 20 ++++++++++++-------- src/client/project/view_spec.pyi | 14 ++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/client/project/view_spec.py b/src/client/project/view_spec.py index 7af3e8bb..e90a5932 100644 --- a/src/client/project/view_spec.py +++ b/src/client/project/view_spec.py @@ -13,6 +13,7 @@ from .template_builder import TemplateBuilder from ..primitives.base import attribute, BaseTolokaObject from ..util import traverse_dicts_recursively +from ..util._codegen import expand class ViewSpec(BaseTolokaObject, spec_enum='Type', spec_field='type'): @@ -117,7 +118,9 @@ class TemplateBuilderViewSpec(ViewSpec, spec_value=ViewSpec.TEMPLATE_BUILDER): template builder components Attributes: - config: A template builder config + view: + plugins: + vars: core_version: Default template components version. Most users will not need to change this parameter. Example: @@ -125,13 +128,11 @@ class TemplateBuilderViewSpec(ViewSpec, spec_value=ViewSpec.TEMPLATE_BUILDER): >>> import toloka.client.project.template_builder as tb >>> project_interface = toloka.project.view_spec.TemplateBuilderViewSpec( - >>> config=tb.TemplateBuilder( - >>> view=tb.view.ListViewV1( - >>> items=[header, output_field, radiobuttons], - >>> validation=some_validation, - >>> ), - >>> plugins=[plugin1, plugin2] - >>> ) + >>> view=tb.view.ListViewV1( + >>> items=[header, output_field, radiobuttons], + >>> validation=some_validation, + >>> ), + >>> plugins=[plugin1, plugin2] >>> ) >>> # add 'project_interface' to 'toloka.project.Project' instance ... @@ -173,3 +174,6 @@ def structure(cls, data: dict): dct['version'] = lock[dct['type']] return super().structure(data_copy) + + +TemplateBuilderViewSpec.__init__ = expand('config')(TemplateBuilderViewSpec.__init__) diff --git a/src/client/project/view_spec.pyi b/src/client/project/view_spec.pyi index 593f8582..c6b637b6 100644 --- a/src/client/project/view_spec.pyi +++ b/src/client/project/view_spec.pyi @@ -130,19 +130,17 @@ class TemplateBuilderViewSpec(ViewSpec): >>> import toloka.client.project.template_builder as tb >>> project_interface = toloka.project.view_spec.TemplateBuilderViewSpec( - >>> config=tb.TemplateBuilder( - >>> view=tb.view.ListViewV1( - >>> items=[header, output_field, radiobuttons], - >>> validation=some_validation, - >>> ), - >>> plugins=[plugin1, plugin2] - >>> ) + >>> view=tb.view.ListViewV1( + >>> items=[header, output_field, radiobuttons], + >>> validation=some_validation, + >>> ), + >>> plugins=[plugin1, plugin2] >>> ) >>> # add 'project_interface' to 'toloka.project.Project' instance ... """ - def __init__(self, *, settings: Optional[ViewSpec.Settings] = None, config: Optional[TemplateBuilder] = None, core_version: Optional[str] = '1.0.0') -> None: + def __init__(self, *, settings: Optional[ViewSpec.Settings] = None, view: Optional[BaseComponent] = None, plugins: Optional[List[BaseComponent]] = None, vars: Optional[Dict[str, Any]] = None, core_version: Optional[str] = '1.0.0') -> None: """Method generated by attrs for class TemplateBuilderViewSpec. """ ... From a10560330588c715967b71f6ce04251ed1ca8181 Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Fri, 2 Jul 2021 01:42:20 +0300 Subject: [PATCH 13/16] fix stubs ![review](https://codereview.in.yandex-team.ru/badges/review-in_progress-yellow.svg) [![vlad--mois](https://codereview.in.yandex-team.ru/badges/vlad--mois-...-yellow.svg)](https://staff.yandex-team.ru/vlad-mois) ref:16e2c3d4a128c7e1ecf0a3eaee4809d17b03585b --- src/client/project/view_spec.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/project/view_spec.pyi b/src/client/project/view_spec.pyi index c6b637b6..8a06fa83 100644 --- a/src/client/project/view_spec.pyi +++ b/src/client/project/view_spec.pyi @@ -140,7 +140,7 @@ class TemplateBuilderViewSpec(ViewSpec): ... """ - def __init__(self, *, settings: Optional[ViewSpec.Settings] = None, view: Optional[BaseComponent] = None, plugins: Optional[List[BaseComponent]] = None, vars: Optional[Dict[str, Any]] = None, core_version: Optional[str] = '1.0.0') -> None: + def __init__(self, *, settings: Optional[ViewSpec.Settings] = None, view: Optional[BaseComponent] = None, plugins: Optional[List[BaseComponent]] = None, vars: Optional[Dict[str, Any]] = None, core_version: Optional[str] = '1.0.0') -> None: """Method generated by attrs for class TemplateBuilderViewSpec. """ ... From 16c9088622fef13259d82935248cbfef400d1694 Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Fri, 2 Jul 2021 02:39:41 +0300 Subject: [PATCH 14/16] Default issuing type is AUTOMATED ![review](https://codereview.in.yandex-team.ru/badges/review-in_progress-yellow.svg) [![sinosov](https://codereview.in.yandex-team.ru/badges/sinosov-...-yellow.svg)](https://staff.yandex-team.ru/sinosov) ref:435faf5368bcf0829a4f6cc58b015e487697d5e1 --- src/client/project/__init__.py | 5 ++--- src/client/project/__init__.pyi | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/client/project/__init__.py b/src/client/project/__init__.py index 6569c243..580dc30a 100644 --- a/src/client/project/__init__.py +++ b/src/client/project/__init__.py @@ -32,7 +32,7 @@ from . import template_builder from . import view_spec -from ..primitives.base import BaseTolokaObject +from ..primitives.base import attribute, BaseTolokaObject from ..project.field_spec import ( BooleanSpec, StringSpec, @@ -92,7 +92,6 @@ class Project(BaseTolokaObject): >>> toloka_client = toloka.TolokaClient(your_token, 'PRODUCTION') >>> new_project = toloka.project.Project( - >>> assignments_issuing_type=toloka.project.Project.AssignmentsIssuingType.AUTOMATED, >>> public_name='My best project!!!', >>> public_description='Look at the instruction and do it well', >>> public_instructions='!Describe your task for performers here!', @@ -151,7 +150,7 @@ class AssignmentsIssuingViewConfig(BaseTolokaObject): public_name: str # public public_description: str # public task_spec: TaskSpec # public - assignments_issuing_type: AssignmentsIssuingType # AssignmentsIssuingType # public + assignments_issuing_type: AssignmentsIssuingType = attribute(default=AssignmentsIssuingType.AUTOMATED, required=True) # AssignmentsIssuingType # public assignments_issuing_view_config: AssignmentsIssuingViewConfig assignments_automerge_enabled: bool diff --git a/src/client/project/__init__.pyi b/src/client/project/__init__.pyi index 2d40fa81..c321aa0d 100644 --- a/src/client/project/__init__.pyi +++ b/src/client/project/__init__.pyi @@ -93,7 +93,6 @@ class Project(BaseTolokaObject): >>> toloka_client = toloka.TolokaClient(your_token, 'PRODUCTION') >>> new_project = toloka.project.Project( - >>> assignments_issuing_type=toloka.project.Project.AssignmentsIssuingType.AUTOMATED, >>> public_name='My best project!!!', >>> public_description='Look at the instruction and do it well', >>> public_instructions='!Describe your task for performers here!', @@ -160,7 +159,7 @@ class Project(BaseTolokaObject): public_name: Optional[str] public_description: Optional[str] task_spec: Optional[TaskSpec] - assignments_issuing_type: Optional[AssignmentsIssuingType] + assignments_issuing_type: AssignmentsIssuingType assignments_issuing_view_config: Optional[AssignmentsIssuingViewConfig] assignments_automerge_enabled: Optional[bool] max_active_assignments_count: Optional[int] From 3607ff723b01f69017ad863d8ee0907ea7eb04a5 Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Fri, 2 Jul 2021 03:49:55 +0300 Subject: [PATCH 15/16] One more typing fix ![review](https://codereview.in.yandex-team.ru/badges/review-in_progress-yellow.svg) [![vlad--mois](https://codereview.in.yandex-team.ru/badges/vlad--mois-...-yellow.svg)](https://staff.yandex-team.ru/vlad-mois) ref:72ae99517ae5cf4d56cd326928a5130fb57fc137 --- src/client/project/view_spec.pyi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/client/project/view_spec.pyi b/src/client/project/view_spec.pyi index 8a06fa83..a6000e8b 100644 --- a/src/client/project/view_spec.pyi +++ b/src/client/project/view_spec.pyi @@ -1,6 +1,8 @@ from enum import Enum from toloka.client.primitives.base import BaseTolokaObject from toloka.client.project.template_builder import TemplateBuilder +from toloka.client.project.template_builder.base import BaseComponent + from typing import ( Any, Dict, From 22739ae376d11a51c629b47f96558d2340b71212 Mon Sep 17 00:00:00 2001 From: Vladimir Losev Date: Fri, 2 Jul 2021 03:50:01 +0300 Subject: [PATCH 16/16] toloka-kit==0.1.9 release ![review](https://codereview.in.yandex-team.ru/badges/review-in_progress-yellow.svg) [![vlad--mois](https://codereview.in.yandex-team.ru/badges/vlad--mois-...-yellow.svg)](https://staff.yandex-team.ru/vlad-mois) ref:d3ffc30202b3467c31279ab05b29af9f5b3f1afb --- CHANGELOG.md | 10 ++++++++++ src/client/__version__.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 533347d3..00f713be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +0.1.9 +------------------- +* Improved support by static analyzers +* Added default value for `Pool.defaults` attribute +* Added default value 0 for `real_tasks_count`, `golden_tasks_count`, `training_tasks_count` in `MixerConfig` +* Added default value `AUTOMATED` for `Project.assignments_issuing_type` attribute +* Simplified `TolokaPluginV1`' interface by expanding `layout` attribute +* Simplified `TemplateBuilderViewSpec`'s interface by expanding `config` attribute +* Fixed an issue with `TemplateBuilder` config displayed in one line in Toloka's web interface +* `City`, `Languages`, `RegionByPhone` and `RegionByIp` filters now have `include` and `exclude`. Thix methods will eventually replace misleading `in_` and `not_in` method names. As for now, all variants are available for backward compatibility * Retry Toloka quotas. Minute quotas are retried by default. And you can turn on the retrying of hourly and daily quotas. diff --git a/src/client/__version__.py b/src/client/__version__.py index 410e5a4d..290b4935 100644 --- a/src/client/__version__.py +++ b/src/client/__version__.py @@ -1,3 +1,3 @@ __title__ = 'toloka-kit' -__version__ = '0.1.8' +__version__ = '0.1.9' __license__ = 'Apache 2.0'