Проект

В проекте нужно задать свойства заданий и ответов:

  • Параметры входных данных. Описывают объекты, которые нужно отобразить в задании, например, картинка или текст.

  • Параметры выходных данных. Описывают ответы пользователей. Используются для валидации введенных значений: тип данных (число, строка и т. д.), диапазон значений, длина строки и т. д.

  • Интерфейс задания. Подробнее о том, как определить внешний вид заданий, см. в документе Толока. Руководство заказчика.

Пример проекта в формате JSON и описание ключей представлены ниже.

Вы можете выполнять следующие операции над проектами с помощью API:

Пример проекта в JSON

{
    "public_name": "Цвет слона",
    "public_description": "Какого цвета слон на картинке?",
    "public_instructions": "<p>Рассмотрите изображение и определите цвет слона.</p> Картинку можно увеличить или уменьшить при помощи кнопок:</p> <img src=\"disc/img1.png>\"",
    "private_comment": "Мой первый проект",
    "task_spec": {
        "input_spec": {
            "image": {
                "type": "url",
                "required": true,
                "hidden": false
            }            
        },
        "output_spec": {
            "result": {
                "type": "string",
                "required": true,
                "hidden": false                
            }
        },
        "view_spec": {
            "assets": {
                "script_urls": ["library1.js", "library2.js"]
            },
            "markup": "<код интерфейса задания>",
            "script": "<код JavaScript>",
            "styles": "<код CSS>",
            "settings": {
                "showSkip": true,
                "showTimer": true,
                "showTitle": true,
                "showSubmit": true,
                "showFullscreen": true,
                "showInstructions": true,
                "showFinish": true,
                "showMessage": true,
                "showReward": true
            }
        }
    },
    "assignments_issuing_type": "AUTOMATED",
    "assignments_automerge_enabled": false,
    "max_active_assignments_count": 15,
    "quality_control": {
        "configs": [{
            "collector_config": {
                "type": "SKIPPED_IN_ROW_ASSIGNMENTS"
            },
            "rules": [{
                "conditions": [{
                    "key": "skipped_in_row_count",
                    "operator": "GTE",
                    "value": 10
                }],
                "action": {
                    "type": "REJECT_ALL_ASSIGNMENTS",
                    "parameters": {
                        "public_comment": "Пропущено более 10 страниц подряд"
                    }
                }
            }]
        }]
    },
    "id": "1",
    "status": "ACTIVE",
    "created": "2016-04-11T14:56:30.197"
}
Скопировано

Ключи

Ключ

Значение

Тип данных

Обязательный при создании

public_name

Название проекта. Его увидят пользователи.

Строка

Да

public_description

Описание проекта. Его увидят пользователи.

Строка

Да

public_instructions

Инструкция по выполнению заданий. В инструкции можно использовать любую HTML-разметку.

Строка

Нет

private_comment

Комментарий к проекту. Доступен только заказчику.

Строка

Нет

task_spec

Параметры входных и выходных данных, интерфейса заданий.

JSON

Да

task_spec.input_spec

Параметры входных данных заданий. Полный список параметров приведен в таблице Входные и выходные данные ниже.

JSON

Да

task_spec.output_spec

Параметры выходных данных — полей ввода. Полный список параметров приведен в таблице Входные и выходные данные ниже.

JSON

Да

task_spec.view_spec

Описание интерфейса задания. Полный список параметров приведен в таблице ниже.

JSON

Да

assignments_issuing_type

Способ выдачи заданий:

  • AUTOMATED — пользователю выдается страница заданий из пула. Вы можете настроить, в каком порядке выдаются страницы заданий.

  • MAP_SELECTOR — пользователь выбирает страницу заданий на карте. При выборе способа MAP_SELECTOR укажите текст для отображения в названии и описании карты в ключе assignments_issuing_view_config:

    "assignments_issuing_view_config": {
       "title_template": "<название задания>",
       "description_template": "<краткое описание задания>"} 

По умолчанию значение AUTOMATED.

Строка

Да

assignments_issuing_view_config.title_template

Только для заданий, выбираемых пользователем на карте (assignments_issuing_type: "MAP_SELECTOR").

Название задания. Пользователи увидят его в режиме предпросмотра задания.

Строка

Да, если указан параметр
assignments_issuing_type: "MAP_SELECTOR"
assignments_issuing_view_config.description_template

Только для заданий, выбираемых пользователем на карте (assignments_issuing_type: "MAP_SELECTOR").

Краткое описание задания. Пользователи увидят его в режиме предпросмотра задания.

Строка

Да, если указан параметр
assignments_issuing_type: "MAP_SELECTOR"
assignments_automerge_enabled
Разрешить слияние идентичных заданий в проекте. По умолчанию значение false. Булев Нет
max_active_assignments_count
Количество страниц, которые пользователь может одновременно выполнять (статус «Активно»). Число Нет
quality_control
Блок контроля качества. JSON Нет
quality_control.configs
Наборы правил JSON Нет
id

Идентификатор проекта (присваивается автоматически).

Строка

Не используется

status

Статус проекта:

  • ACTIVE — активный;

  • ARCHIVED — архивный.

Строка

Не используется

created

Дата и время создания проекта по UTC в формате ISO 8601: YYYY-MM-DDThh:mm:ss[.sss].

Строка

Не используется

Ключ

Значение

Тип данных

Обязательный при создании

public_name

Название проекта. Его увидят пользователи.

Строка

Да

public_description

Описание проекта. Его увидят пользователи.

Строка

Да

public_instructions

Инструкция по выполнению заданий. В инструкции можно использовать любую HTML-разметку.

Строка

Нет

private_comment

Комментарий к проекту. Доступен только заказчику.

Строка

Нет

task_spec

Параметры входных и выходных данных, интерфейса заданий.

JSON

Да

task_spec.input_spec

Параметры входных данных заданий. Полный список параметров приведен в таблице Входные и выходные данные ниже.

JSON

Да

task_spec.output_spec

Параметры выходных данных — полей ввода. Полный список параметров приведен в таблице Входные и выходные данные ниже.

JSON

Да

task_spec.view_spec

Описание интерфейса задания. Полный список параметров приведен в таблице ниже.

JSON

Да

assignments_issuing_type

Способ выдачи заданий:

  • AUTOMATED — пользователю выдается страница заданий из пула. Вы можете настроить, в каком порядке выдаются страницы заданий.

  • MAP_SELECTOR — пользователь выбирает страницу заданий на карте. При выборе способа MAP_SELECTOR укажите текст для отображения в названии и описании карты в ключе assignments_issuing_view_config:

    "assignments_issuing_view_config": {
       "title_template": "<название задания>",
       "description_template": "<краткое описание задания>"} 

По умолчанию значение AUTOMATED.

Строка

Да

assignments_issuing_view_config.title_template

Только для заданий, выбираемых пользователем на карте (assignments_issuing_type: "MAP_SELECTOR").

Название задания. Пользователи увидят его в режиме предпросмотра задания.

Строка

Да, если указан параметр
assignments_issuing_type: "MAP_SELECTOR"
assignments_issuing_view_config.description_template

Только для заданий, выбираемых пользователем на карте (assignments_issuing_type: "MAP_SELECTOR").

Краткое описание задания. Пользователи увидят его в режиме предпросмотра задания.

Строка

Да, если указан параметр
assignments_issuing_type: "MAP_SELECTOR"
assignments_automerge_enabled
Разрешить слияние идентичных заданий в проекте. По умолчанию значение false. Булев Нет
max_active_assignments_count
Количество страниц, которые пользователь может одновременно выполнять (статус «Активно»). Число Нет
quality_control
Блок контроля качества. JSON Нет
quality_control.configs
Наборы правил JSON Нет
id

Идентификатор проекта (присваивается автоматически).

Строка

Не используется

status

Статус проекта:

  • ACTIVE — активный;

  • ARCHIVED — архивный.

Строка

Не используется

created

Дата и время создания проекта по UTC в формате ISO 8601: YYYY-MM-DDThh:mm:ss[.sss].

Строка

Не используется

Входные и выходные данные (ключи input_spec и output_spec)

Ключи input_spec и output_spec содержат JSON со свойствами входных данных и параметрами для валидации ответов. В них нужно определить тип данных (строка, число, URL и т.д.) и указать параметры для валидации (например, длина строки).

Ключ

Значение

Тип данных

Обязательный при создании

<идентификатор>

Для входных данных — идентификатор объекта для отображения в задании и его свойства.

Для выходных данных — идентификатор поля ввода ответа и параметры для валидации ответа.

JSON

Да

type

Тип данных:

  • url — URL картинки, страницы и т. д.;

  • boolean — логический тип данных (true/false);

  • integer — целое число;

  • string — строка;

  • float — число с плавающей точкой;

  • json — объект JSON;

  • file — файл (только для выходных данных);

  • coordinates — географические координаты, например «53.910236,27.531110».

Строка

Да

required

Обязательность объекта или поля ввода. По умолчанию значение true.

Булев

Нет

hidden
Скрыть ли от пользователя поле с входным значением. По умолчанию значение false.

Для выходных данных всегда false.

Булев Нет
min_value

Минимальное значение числа.

Число

Нет

max_value

Максимальное значение числа.

Число

Нет

allowed_values[]

Допустимые значения.

Массив

Нет

min_length

Минимальная длина строки.

Число

Нет

max_length

Максимальная длина строки.

Число

Нет

current_location

Только в выходных данных типа coordinates: заполнение поля текущими координатами пользователя (true/false). Используется в заданиях для мобильного приложения.

Строка

Нет

Ключ

Значение

Тип данных

Обязательный при создании

<идентификатор>

Для входных данных — идентификатор объекта для отображения в задании и его свойства.

Для выходных данных — идентификатор поля ввода ответа и параметры для валидации ответа.

JSON

Да

type

Тип данных:

  • url — URL картинки, страницы и т. д.;

  • boolean — логический тип данных (true/false);

  • integer — целое число;

  • string — строка;

  • float — число с плавающей точкой;

  • json — объект JSON;

  • file — файл (только для выходных данных);

  • coordinates — географические координаты, например «53.910236,27.531110».

Строка

Да

required

Обязательность объекта или поля ввода. По умолчанию значение true.

Булев

Нет

hidden
Скрыть ли от пользователя поле с входным значением. По умолчанию значение false.

Для выходных данных всегда false.

Булев Нет
min_value

Минимальное значение числа.

Число

Нет

max_value

Максимальное значение числа.

Число

Нет

allowed_values[]

Допустимые значения.

Массив

Нет

min_length

Минимальная длина строки.

Число

Нет

max_length

Максимальная длина строки.

Число

Нет

current_location

Только в выходных данных типа coordinates: заполнение поля текущими координатами пользователя (true/false). Используется в заданиях для мобильного приложения.

Строка

Нет

Интерфейс задания (ключ view_spec)

Ключ

Значение

Тип данных

Обязательный при создании

assets
Подключенные файлы:
  • CSS-стили;
  • JavaScript-библиотеки;
  • ресурсы Толоки с префиксом $TOLOKA_ASSETS.
Добавляйте элементы в том порядке, в котором они должны подключаться при запуске интерфейса задания.

JSON

Нет

assets.script_urls[]

Ссылки на JavaScript-библиотеки и ресурсы Толоки.

Ресурсы Толоки:

Интерфейс разметки картинок нужно подключать только вместе с хелперами Handlebars. Порядок подключения важен:
"script_urls": ["$TOLOKA_ASSETS/js/toloka-handlebars-templates.js", 
"$TOLOKA_ASSETS/js/image-annotation.js"]

Массив строк

Нет

assets.style_urls[]

Ссылки на CSS-библиотеки.

Массив строк

Нет

markup

HTML-интерфейс задания.

Подробнее см. в документе Толока. Руководство заказчика.

Строка

Да

script

JavaScript-интерфейс задания.

Подробнее см. в документе Толока. Руководство заказчика.

Строка Да
styles

CSS-интерфейс задания.

Подробнее см. в документе Толока. Руководство заказчика.

Строка Да
settings

Необходимость отображения стандартных элементов интерфейса в задании.

JSON

Да

settings.showTimer

Показывать таймер. По умолчанию значение true.

Булев

Нет

settings.showTitle

Показывать название проекта в заголовке заданий. По умолчанию значение true.

Булев

Нет

settings.showInstructions

Показывать кнопку Инструкция. По умолчанию значение true.

Булев

Нет

settings.showFullscreen

Показывать кнопку Развернуть задание на всю страницу. По умолчанию значение true.

Булев

Нет

settings.showSubmit

Показывать кнопку Дальше. По умолчанию значение true.

Булев

Нет

settings.showSkip

Показывать кнопку Пропустить. По умолчанию значение true.

Булев

Нет

settings.showFinish

Показывать кнопку На главную. По умолчанию значение true.

Булев

Нет

settings.showMessage

Показывать кнопку Написать заказчику. По умолчанию значение true.

Булев

Нет

settings.showReward

Показывать цену за страницу. По умолчанию значение true.

Булев

Нет

Ключ

Значение

Тип данных

Обязательный при создании

assets
Подключенные файлы:
  • CSS-стили;
  • JavaScript-библиотеки;
  • ресурсы Толоки с префиксом $TOLOKA_ASSETS.
Добавляйте элементы в том порядке, в котором они должны подключаться при запуске интерфейса задания.

JSON

Нет

assets.script_urls[]

Ссылки на JavaScript-библиотеки и ресурсы Толоки.

Ресурсы Толоки:

Интерфейс разметки картинок нужно подключать только вместе с хелперами Handlebars. Порядок подключения важен:
"script_urls": ["$TOLOKA_ASSETS/js/toloka-handlebars-templates.js", 
"$TOLOKA_ASSETS/js/image-annotation.js"]

Массив строк

Нет

assets.style_urls[]

Ссылки на CSS-библиотеки.

Массив строк

Нет

markup

HTML-интерфейс задания.

Подробнее см. в документе Толока. Руководство заказчика.

Строка

Да

script

JavaScript-интерфейс задания.

Подробнее см. в документе Толока. Руководство заказчика.

Строка Да
styles

CSS-интерфейс задания.

Подробнее см. в документе Толока. Руководство заказчика.

Строка Да
settings

Необходимость отображения стандартных элементов интерфейса в задании.

JSON

Да

settings.showTimer

Показывать таймер. По умолчанию значение true.

Булев

Нет

settings.showTitle

Показывать название проекта в заголовке заданий. По умолчанию значение true.

Булев

Нет

settings.showInstructions

Показывать кнопку Инструкция. По умолчанию значение true.

Булев

Нет

settings.showFullscreen

Показывать кнопку Развернуть задание на всю страницу. По умолчанию значение true.

Булев

Нет

settings.showSubmit

Показывать кнопку Дальше. По умолчанию значение true.

Булев

Нет

settings.showSkip

Показывать кнопку Пропустить. По умолчанию значение true.

Булев

Нет

settings.showFinish

Показывать кнопку На главную. По умолчанию значение true.

Булев

Нет

settings.showMessage

Показывать кнопку Написать заказчику. По умолчанию значение true.

Булев

Нет

settings.showReward

Показывать цену за страницу. По умолчанию значение true.

Булев

Нет

Слияние заданий

Задания с полностью идентичными входными данными можно объединять. Это позволяет экономить средства, если одно и то же задание оказалось загруженным в разные пулы.

Ограничение.
  • Слияние заданий работает только в открытых пулах. Если в новый пул пришло задание, ранее размеченное в уже закрытом или архивном пуле, то задания не будут объединены.
  • Слияние заданий можно применить только к основным заданиям.

Полученный ответ на задание будет автоматически назначен другому заданию, если:

  • оба задания имеют одни и те же входные данные;
  • они находятся в разных пулах одного проекта;
  • идентичное задание доступно ответившему исполнителю;
  • оно имеет количество ответов меньшее, чем перекрытие.

Ответ будет записан с нулевой ценой, а перекрытие уменьшено на единицу.

Опция доступна только для основных заданий без отложенной приемки, загруженных через «умное смешивание» .

Чтобы активировать слияние заданий в проекте, нужно в проекте указать флаг "assignments_automerge_enabled": true.