Входные и выходные данные

  1. Как редактировать спецификацию
  2. Рекомендации

В Спецификации вы задаете параметры входных и выходных данных. Эти настройки будут действовать для всех заданий в проекте.

Добавьте в спецификацию поля для всех данных, которые используются в задании или нужны вам в результатах. При настройке интерфейса ссылайтесь на эти поля.

Примечание. Не дублируйте входные данные в выходных — в результатах вы получите все данные, включая входные.

Как редактировать спецификацию

Вы можете изменить спецификацию в настройках проекта Яндекс.Толоки двумя способами: в обычном режиме или в режиме JSON. Режим JSON дает больше возможностей: вы можете делать скрытыми входные данные и использовать регулярные выражения для валидации выходных данных.

Чтобы добавить поле в обычном режиме, нажмите кнопку Добавить поле.

Чтобы редактировать существующее поле, наведите курсор на поле и нажмите кнопку .

Пояснения к настройке полей

Параметр

Параметр в JSON

Описание

Название

id

Идентификатор поля. Допустимы латинские буквы, цифры, дефис и нижнее подчеркивание.

Тип

type

Тип данных:

  • строка — string;

  • ссылка — url;

  • логический — boolean;

  • число — number;

  • дробное число — float;

  • файл — file;
  • географические координаты — coordinates;

  • объект JSON — json.

Для массивов в режиме JSON к типу добавляется префикс array_. Например: array_file.

Обязательное поле

required

Обязательность объекта при загрузке заданий для входных данных.

Обязательность ответа исполнителя для выходных данных.

По умолчанию поле необязательное — false.

Скрытое поле

hidden

Позволяет скрыть данные от исполнителя. Если этого не сделать, исполнители могут получить значение поля программно. Параметр можно настроить в режиме JSON.

Например, вы можете скрыть идентификатор assigment_id, который вам понадобится при выполнении отложенной приемки в отдельном проекте.

По умолчанию поле открытое — false.

Массив array_<тип> Массив объектов одного типа. Используется, например, для загрузки нескольких фотографий исполнителем.

В режиме JSON массив — это отдельный тип данных. Например: "type": "array_file".

Мин. элементов

min_size Минимальное число элементов в массиве.
Макс. элементов max_size Максимальное число элементов в массиве.

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

allowed_values

Допустимые значения для строк, дробных и целых чисел, логического типа данных.

Мин. длина

min_length

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

Макс. длина

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

Мин. значение

min_value Минимальное значений для дробных и целых чисел.

Макс. значение

max_value Максимальное значений для дробных и целых чисел.
Текущее положение

current_location

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

По умолчанию false.

Шаблон pattern

Регулярное выражение, которому должна соответствовать строка. Параметр можно настроить в режиме JSON.

Рекомендации

  • Если вы редактируете обязательные поля, изменения применятся только к новым пулам заданий. Например, если вам пришлось исправить ошибку в проекте, клонируйте пул или создайте новый. Существующие пулы заданий будут работать в соответствии со старой версией проекта.

  • В выходных данных используйте проверку значений и не забывайте помечать поле обязательным, если исполнитель всегда должен заполнить его.
  • Делайте поле скрытым, если не хотите, чтобы исполнители могли получить к нему доступ. Это возможно, даже если вы не отображаете это поле в интерфейсе.

    Например, вы передаете в задании служебные данные товара, которые не нужны исполнителям: артикул или номер партии. Или вы модерируете комментарии и вам нужны в результатах персональные данные авторов для последующей обработки данных, но исполнители не должны иметь к ним доступ.

    Чтобы создать скрытое поле, добавьте его в спецификацию самостоятельно, затем в режиме JSON добавьте к этому полю параметр "hidden": true. Эти действия надо выполнять в Толоке при настройке проекта. Скрытое поле сохранится при повторной генерации спецификации с помощью Конструктора шаблонов.

Решение проблем

Как вставлять вызов функции, работающий при клике на картинку в задании?

Пример шаблона задания по выделению групп изображений вы найдете по ссылке. Входные и выходные данные, а также фрагмент инструкции — в комментариях к проекту.

Как сделать маску на поле ввода: тип поля дата — дд.мм.гггг; ИНН — только цифры, количество 10 или 12?

Для проверки формата ввода данных можно использовать тип выходного поля с указанием допустимых или минимальных/максимальных значений. Например, для ИНН создайте выходное поле с типом «строка» и укажите минимальную и максимальную длину (например, 10 и 12). Для более сложной проверки введённых данных в шаблоне, используйте RegExp.

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

Нужно ли подгонять все изображения для задания под один размер, или они могут быть разные?
Размеры изображений могут быть разные.
Если в выходных данных проекта возможно любое число, от 1 до 999999, возможно ли указать диапазон?

Диапазон не будет являться фиксированным значением.

Есть ли возможность получить от пользователя вместе с результатами выполнения задания точное время начала и конца выполнения?

Когда скачиваете файл с результатами, поставьте галочки Время старта и Время отправки. В файле будут точные дата и время, когда исполнитель взял страницу заданий на выполнение и отправил ее в формате UTC.

Как показывать исполнителям два разных варианта текста?

Если вы передаёте тексты во входные данные, то достаточно загрузить в пул 2 разных задания: в одном из них в поле INPUT: <имя входного поля> вы передадите текст № 1, в другом — текст № 2.

Если текст в самом шаблоне задания, в блоке HTML, то нужно клонировать проект. Чтобы исполнитель мог сделать только одно задание в вашем проекте, используйте правило Выполненные задания. Можно назначить навык или заблокировать исполнителя, после того, как он отправит один ответ.