Проект
В проекте нужно задать свойства заданий и ответов:
Параметры входных данных. Описывают объекты, которые нужно отобразить в задании, например, картинка или текст.
Параметры выходных данных. Описывают ответы пользователей. Используются для валидации введенных значений: тип данных (число, строка и т. д.), диапазон значений, длина строки и т. д.
Интерфейс задания. Подробнее о том, как определить внешний вид заданий, см. в документе Толока. Руководство заказчика.
Пример проекта в формате 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" }
Скопировано
Ключи
Ключ | Значение | Тип данных | Обязательный при создании |
---|---|---|---|
| Название проекта. Его увидят пользователи. | Строка | Да |
| Описание проекта. Его увидят пользователи. | Строка | Да |
| Инструкция по выполнению заданий. В инструкции можно использовать любую HTML-разметку. | Строка | Нет |
| Комментарий к проекту. Доступен только заказчику. | Строка | Нет |
| Параметры входных и выходных данных, интерфейса заданий. | JSON | Да |
| Параметры входных данных заданий. Полный список параметров приведен в таблице Входные и выходные данные ниже. | JSON | Да |
| Параметры выходных данных — полей ввода. Полный список параметров приведен в таблице Входные и выходные данные ниже. | JSON | Да |
| Описание интерфейса задания. Полный список параметров приведен в таблице ниже. | JSON | Да |
| Способ выдачи заданий:
По умолчанию значение | Строка | Да |
| Только для заданий, выбираемых пользователем на карте ( Название задания. Пользователи увидят его в режиме предпросмотра задания. | Строка | Да, если указан параметр
|
| Только для заданий, выбираемых пользователем на карте ( Краткое описание задания. Пользователи увидят его в режиме предпросмотра задания. | Строка | Да, если указан параметр
|
| Разрешить слияние идентичных заданий в проекте. По умолчанию значение false . | Булев | Нет |
| Количество страниц, которые пользователь может одновременно выполнять (статус «Активно»). | Число | Нет |
| Блок контроля качества. | JSON | Нет |
| Наборы правил | JSON | Нет |
| Идентификатор проекта (присваивается автоматически). | Строка | Не используется |
| Статус проекта:
| Строка | Не используется |
| Дата и время создания проекта по UTC в формате ISO 8601: YYYY-MM-DDThh:mm:ss[.sss]. | Строка | Не используется |
Ключ | Значение | Тип данных | Обязательный при создании |
---|---|---|---|
| Название проекта. Его увидят пользователи. | Строка | Да |
| Описание проекта. Его увидят пользователи. | Строка | Да |
| Инструкция по выполнению заданий. В инструкции можно использовать любую HTML-разметку. | Строка | Нет |
| Комментарий к проекту. Доступен только заказчику. | Строка | Нет |
| Параметры входных и выходных данных, интерфейса заданий. | JSON | Да |
| Параметры входных данных заданий. Полный список параметров приведен в таблице Входные и выходные данные ниже. | JSON | Да |
| Параметры выходных данных — полей ввода. Полный список параметров приведен в таблице Входные и выходные данные ниже. | JSON | Да |
| Описание интерфейса задания. Полный список параметров приведен в таблице ниже. | JSON | Да |
| Способ выдачи заданий:
По умолчанию значение | Строка | Да |
| Только для заданий, выбираемых пользователем на карте ( Название задания. Пользователи увидят его в режиме предпросмотра задания. | Строка | Да, если указан параметр
|
| Только для заданий, выбираемых пользователем на карте ( Краткое описание задания. Пользователи увидят его в режиме предпросмотра задания. | Строка | Да, если указан параметр
|
| Разрешить слияние идентичных заданий в проекте. По умолчанию значение false . | Булев | Нет |
| Количество страниц, которые пользователь может одновременно выполнять (статус «Активно»). | Число | Нет |
| Блок контроля качества. | JSON | Нет |
| Наборы правил | JSON | Нет |
| Идентификатор проекта (присваивается автоматически). | Строка | Не используется |
| Статус проекта:
| Строка | Не используется |
| Дата и время создания проекта по UTC в формате ISO 8601: YYYY-MM-DDThh:mm:ss[.sss]. | Строка | Не используется |
Входные и выходные данные (ключи input_spec и output_spec)
Ключи input_spec
и output_spec
содержат JSON со свойствами входных данных и параметрами для валидации ответов. В них нужно определить тип данных (строка, число, URL и т.д.) и указать параметры для валидации (например, длина строки).
Ключ | Значение | Тип данных | Обязательный при создании |
---|---|---|---|
| Для входных данных — идентификатор объекта для отображения в задании и его свойства. Для выходных данных — идентификатор поля ввода ответа и параметры для валидации ответа. | JSON | Да |
| Тип данных:
| Строка | Да |
| Обязательность объекта или поля ввода. По умолчанию значение | Булев | Нет |
| Минимальное значение числа. | Число | Нет |
| Максимальное значение числа. | Число | Нет |
| Допустимые значения. | Массив | Нет |
| Минимальная длина строки. | Число | Нет |
| Максимальная длина строки. | Число | Нет |
| Только в выходных данных типа | Строка | Нет |
Ключ | Значение | Тип данных | Обязательный при создании |
---|---|---|---|
| Для входных данных — идентификатор объекта для отображения в задании и его свойства. Для выходных данных — идентификатор поля ввода ответа и параметры для валидации ответа. | JSON | Да |
| Тип данных:
| Строка | Да |
| Обязательность объекта или поля ввода. По умолчанию значение | Булев | Нет |
| Минимальное значение числа. | Число | Нет |
| Максимальное значение числа. | Число | Нет |
| Допустимые значения. | Массив | Нет |
| Минимальная длина строки. | Число | Нет |
| Максимальная длина строки. | Число | Нет |
| Только в выходных данных типа | Строка | Нет |
Интерфейс задания (ключ view_spec)
Ключ | Значение | Тип данных | Обязательный при создании |
---|---|---|---|
| Подключенные файлы:
| JSON | Нет |
| Ссылки на JavaScript-библиотеки и ресурсы Толоки. Ресурсы Толоки:
Интерфейс разметки картинок нужно подключать только вместе с хелперами Handlebars. Порядок подключения важен:
| Массив строк | Нет |
| Ссылки на CSS-библиотеки. | Массив строк | Нет |
| HTML-интерфейс задания. Подробнее см. в документе Толока. Руководство заказчика. | Строка | Да |
| JavaScript-интерфейс задания. Подробнее см. в документе Толока. Руководство заказчика. | Строка | Да |
| CSS-интерфейс задания. Подробнее см. в документе Толока. Руководство заказчика. | Строка | Да |
| Необходимость отображения стандартных элементов интерфейса в задании. | JSON | Да |
| Показывать таймер. По умолчанию значение | Булев | Нет |
| Показывать название проекта в заголовке заданий. По умолчанию значение | Булев | Нет |
| Показывать кнопку Инструкция. По умолчанию значение | Булев | Нет |
| Показывать кнопку Развернуть задание на всю страницу. По умолчанию значение | Булев | Нет |
| Показывать кнопку Дальше. По умолчанию значение | Булев | Нет |
| Показывать кнопку Пропустить. По умолчанию значение | Булев | Нет |
| Показывать кнопку На главную. По умолчанию значение | Булев | Нет |
| Показывать кнопку Написать заказчику. По умолчанию значение | Булев | Нет |
| Показывать цену за страницу. По умолчанию значение | Булев | Нет |
Ключ | Значение | Тип данных | Обязательный при создании |
---|---|---|---|
| Подключенные файлы:
| JSON | Нет |
| Ссылки на JavaScript-библиотеки и ресурсы Толоки. Ресурсы Толоки:
Интерфейс разметки картинок нужно подключать только вместе с хелперами Handlebars. Порядок подключения важен:
| Массив строк | Нет |
| Ссылки на CSS-библиотеки. | Массив строк | Нет |
| HTML-интерфейс задания. Подробнее см. в документе Толока. Руководство заказчика. | Строка | Да |
| JavaScript-интерфейс задания. Подробнее см. в документе Толока. Руководство заказчика. | Строка | Да |
| CSS-интерфейс задания. Подробнее см. в документе Толока. Руководство заказчика. | Строка | Да |
| Необходимость отображения стандартных элементов интерфейса в задании. | JSON | Да |
| Показывать таймер. По умолчанию значение | Булев | Нет |
| Показывать название проекта в заголовке заданий. По умолчанию значение | Булев | Нет |
| Показывать кнопку Инструкция. По умолчанию значение | Булев | Нет |
| Показывать кнопку Развернуть задание на всю страницу. По умолчанию значение | Булев | Нет |
| Показывать кнопку Дальше. По умолчанию значение | Булев | Нет |
| Показывать кнопку Пропустить. По умолчанию значение | Булев | Нет |
| Показывать кнопку На главную. По умолчанию значение | Булев | Нет |
| Показывать кнопку Написать заказчику. По умолчанию значение | Булев | Нет |
| Показывать цену за страницу. По умолчанию значение | Булев | Нет |
Слияние заданий
Задания с полностью идентичными входными данными можно объединять. Это позволяет экономить средства, если одно и то же задание оказалось загруженным в разные пулы.
- Слияние заданий работает только в открытых пулах. Если в новый пул пришло задание, ранее размеченное в уже закрытом или архивном пуле, то задания не будут объединены.
- Слияние заданий можно применить только к основным заданиям.
Полученный ответ на задание будет автоматически назначен другому заданию, если:
- оба задания имеют одни и те же входные данные;
- они находятся в разных пулах одного проекта;
- идентичное задание доступно ответившему исполнителю;
- оно имеет количество ответов меньшее, чем перекрытие.
Ответ будет записан с нулевой ценой, а перекрытие уменьшено на единицу.
Опция доступна только для основных заданий без отложенной приемки, загруженных через «умное смешивание» .
Чтобы активировать слияние заданий в проекте, нужно в проекте указать флаг "assignments_automerge_enabled": true
.