Входные и выходные данные
В Спецификации вы задаете параметры входных и выходных данных. Эти настройки будут действовать для всех заданий в Customizable-проекте.
Добавьте в спецификацию поля для всех данных, которые используются в задании или нужны вам в результатах. При настройке интерфейса ссылайтесь на эти поля.
Не дублируйте входные данные в выходных — в результатах вы получите все данные, включая входные.
Как редактировать спецификацию
Вы можете изменить спецификацию в настройках проекта Толоки двумя способами: в обычном режиме или в режиме JSON. Режим JSON дает больше возможностей: вы можете делать скрытыми входные данные и использовать регулярные выражения для валидации выходных данных.
Чтобы добавить поле в обычном режиме, нажмите кнопку Добавить поле.
Чтобы редактировать существующее поле, наведите курсор на поле и нажмите кнопку .
Для переключения режима нажмите кнопку . Примеры полей:
- Примеры полей:
-
Строка определенной длины
"my_string": { "type": "string", "required": true, "min_length": 10, "max_length": 100 }
Скопировано- Только русские буквы и цифры
"my_ru_string": { "type": "string", "required": true, "min_length": 10, "max_length": 100, "pattern": "[а-яА-Я0-9]+" }
Скопировано - Только латинские буквы и цифры
"my_en_string": { "type": "string", "required": true, "min_length": 10, "max_length": 100, "pattern": "[a-zA-Z0-9]+" }
Скопировано - Буквы и символы без цифр
"my_number_string": { "type": "string", "required": true, "min_length": 10, "max_length": 100, "pattern": "[^0-9]+" }
Скопировано - Номер телефона с символами
+
,-
и пробелом"my_phone_string": { "type": "string", "required": true, "pattern": "\\+?[0-9\\s-]{4,}" }
Скопировано - Электронная почта с символами
@
,-
и.
"my_mail_string": { "type": "string", "required": true, "pattern": "[a-zA-Z]{1}[a-zA-Z0-9\\.\\-_]+@[a-zA-Z0-9\\.\\-_]+\\.[a-zA-Z]{2,}" }
Скопировано - Месяц
"my_month_string": { "type": "string", "required": true, "allowed_values": ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь" "ноябрь", "декабрь"] }
Скопировано - Целое число из указанного диапазона:
"my_integer": { "type": "integer", "required": true, "min_value": 1, "max_value": 100 }
Скопировано - Целое число со списком допустимых значений:
"my_integer": { "type": "integer", "required": true, "allowed_values": [10, 20, 30] }
Скопировано Число с 0, 1 или 2 знаками после запятой.
Для этого надо выбрать тип строка и проверять с помощью регулярного выражения. Обратите внимание, что разделитель дробной части — запятая:"my_mail_string": { "type": "string", "required": true, "pattern": "^([0-9]+)(,([0-9]){1,2})?$" }
Скопировано
Текст в разных форматахЛогический тип данных"my_boolean": { "type": "boolean", "required": true }
СкопированоЧислаМассив файлов"my_file_array": { "type": "array_file", "required": true, "max_size": 5 }
СкопированоГеографические координаты"my_coordinates": { "type": "coordinates", "required": true }
Скопировано
строка —
string
;ссылка —
url
;логический —
boolean
;число —
number
;дробное число —
float
;- файл —
file
; географические координаты —
coordinates
;объект JSON —
json
.строка —
string
;ссылка —
url
;логический —
boolean
;число —
number
;дробное число —
float
;- файл —
file
; географические координаты —
coordinates
;объект JSON —
json
.
Параметр | Параметр в JSON | Описание |
---|---|---|
Название | id | Идентификатор поля. Допустимы латинские буквы, цифры, дефис и нижнее подчеркивание. |
Тип | type | Тип данных: Для массивов в режиме JSON к типу добавляется префикс |
Обязательное поле | required | Обязательность объекта при загрузке заданий для входных данных. Обязательность ответа исполнителя для выходных данных. По умолчанию поле необязательное — |
Массив | array_<тип> | Массив объектов одного типа. Используется, например, для загрузки нескольких фотографий исполнителем. В режиме JSON массив — это отдельный тип данных. Например: |
Мин. элементов | min_size | Минимальное число элементов в массиве. |
Макс. элементов | max_size | Максимальное число элементов в массиве. |
Допустимые значения | allowed_values | Допустимые значения для строк, дробных и целых чисел, логического типа данных. |
Мин. длина | min_length | Минимальная длина строки. |
Макс. длина | max_length | Максимальная длина строки |
Мин. значение | min_value | Минимальное значений для дробных и целых чисел. |
Макс. значение | max_value | Максимальное значений для дробных и целых чисел. |
Текущее положение |
| Сохранение текущих координат исполнителя ( По умолчанию |
Шаблон | pattern | Регулярное выражение, которому должна соответствовать строка. Параметр можно настроить в режиме JSON. |
Параметр | Параметр в JSON | Описание |
---|---|---|
Название | id | Идентификатор поля. Допустимы латинские буквы, цифры, дефис и нижнее подчеркивание. |
Тип | type | Тип данных: Для массивов в режиме JSON к типу добавляется префикс |
Обязательное поле | required | Обязательность объекта при загрузке заданий для входных данных. Обязательность ответа исполнителя для выходных данных. По умолчанию поле необязательное — |
Массив | array_<тип> | Массив объектов одного типа. Используется, например, для загрузки нескольких фотографий исполнителем. В режиме JSON массив — это отдельный тип данных. Например: |
Мин. элементов | min_size | Минимальное число элементов в массиве. |
Макс. элементов | max_size | Максимальное число элементов в массиве. |
Допустимые значения | allowed_values | Допустимые значения для строк, дробных и целых чисел, логического типа данных. |
Мин. длина | min_length | Минимальная длина строки. |
Макс. длина | max_length | Максимальная длина строки |
Мин. значение | min_value | Минимальное значений для дробных и целых чисел. |
Макс. значение | max_value | Максимальное значений для дробных и целых чисел. |
Текущее положение |
| Сохранение текущих координат исполнителя ( По умолчанию |
Шаблон | pattern | Регулярное выражение, которому должна соответствовать строка. Параметр можно настроить в режиме JSON. |
Рекомендации
Если вы редактируете обязательные поля, изменения применятся только к новым пулам заданий. Например, если вам пришлось исправить ошибку в проекте, клонируйте пул или создайте новый. Существующие пулы заданий будут работать в соответствии со старой версией проекта.
- В выходных данных используйте проверку значений и не забывайте помечать поле обязательным, если исполнитель всегда должен заполнить его.
Скрытые поля нужны только заказчикам и недоступны в интерфейсе задания. Значения скрытых полей невозможно использовать ни в JS-коде, ни в конструкторе шаблонов.
Например, вы передаете в задании служебные данные товара, которые не нужны исполнителям: артикул или номер партии. Или вы модерируете комментарии и вам нужны в результатах персональные данные авторов для последующей обработки данных, но исполнители не должны иметь к ним доступ.
Чтобы создать скрытое поле, добавьте его в спецификацию самостоятельно, затем в режиме JSON добавьте к этому полю параметр
"hidden": true
. Эти действия надо выполнять в Толоке при настройке проекта. Скрытое поле сохранится при повторной генерации спецификации с помощью Конструктора шаблонов.
Что дальше
- Узнайте больше про настройку проекта:
Решение проблем
Пример шаблона задания по выделению групп изображений вы найдете по ссылке. Входные и выходные данные, а также фрагмент инструкции — в комментариях к проекту.
Для проверки формата ввода данных можно использовать тип выходного поля с указанием допустимых или минимальных/максимальных значений. Например, для ИНН создайте выходное поле с типом «строка» и укажите минимальную и максимальную длину (например, 10 и 12). Для более сложной проверки введённых данных в шаблоне, используйте RegExp.
Для ввода даты можно добавить в интерфейс задания календарь. Пример календаря вы найдете здесь.
Диапазон не будет являться фиксированным значением.
Если вы передаёте тексты во входные данные, то достаточно загрузить в пул 2 разных задания: в одном из них в поле INPUT: <имя входного поля>
вы передадите текст № 1, в другом — текст № 2.
Если текст в самом шаблоне задания, в блоке HTML, то нужно клонировать проект. Чтобы исполнитель мог сделать только одно задание в вашем проекте, используйте правило Выполненные задания. Можно назначить навык или заблокировать исполнителя, после того, как он отправит один ответ.