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

Напишите нам, если не нашли ответ в Справке. Вы можете приложить скриншоты или видео, чтобы ускорить помощь:

Написать в чат  Написать в Telegram

Примечание

Этот раздел о том, как редактировать спецификацию в редакторе HTML/JS/CSS. Вы также можете узнать, как редактировать спецификацию в Конструкторе шаблонов.

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

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

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

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

Примечание

Редактирование спецификации доступно только при включенной опции Настроить спецификацию вручную.

Вы можете изменить спецификацию в настройках проекта двумя способами:

  • В графическом режиме.
  • В режиме 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_url": {
      "type": "string",
      "required": true,
      "pattern": "(?:http(?:s)?:\\/\\/)?(?:[a-zA-z-]+(\\.)+)*(?:yandex\\.ru){1}(\\/|\\/[a-zA-Z-\\._~:/\\?#\\[\\]@!\\$&'\\(\\)\\*\\+,;=]+)?"
    }
    
  • Номер телефона с символами +, - и пробелом.

    "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": ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь" "ноябрь", "декабрь"]
    }
    
Ссылка

Поле с типом url.

"my_url": {
  "type": "url",
  "required": true
}
Логический тип данных

Поле с типом boolean.

"my_boolean": {
  "type": "boolean",
  "required": true
}
Числа
  • Целое число из указанного диапазона.

    "my_integer": {
      "type": "integer",
      "required": true,
      "min_value": 1,
      "max_value": 100
    }
    
  • Целое число со списком допустимых значений.

    "my_integer": {
      "type": "integer",
      "required": true,
      "allowed_values": [10, 20, 30]
    }
    
  • Дробное число.

    "my_float": {
      "type": "float",
      "required": true,
      "min_value": 10.11,
      "max_value": 65.51
    }
    
  • Число с 0, 1 или 2 знаками после запятой.

    Выберите тип string и используйте проверку с помощью регулярного выражения. Обратите внимание, что разделитель дробной части — запятая:

    "my_mail_string": {
      "type": "string",
      "required": true,
      "pattern": "^([0-9]+)(,([0-9]){1,2})?$"
    }
    
Файл

Поле с типом file.

"my_file": {
  "type": "file",
  "required": true
}
Массив файлов

Массив из нескольких файлов.

"my_file_array": {
  "type": "array_file",
  "required": true,
  "max_size": 5
}
Географические координаты

Поле с типом coordinates.

"my_coordinates": {
  "type": "coordinates",
  "required": true
}
JSON

Поле с типом json.

"my_json": {
  "type": "json",
  "required": true
}
Скрытое поле

Строка, к которой исполнитель не сможет получить доступ.

"my_string": {
  "type": "string",
  "hidden": true
}
Пояснения к настройке полей

Параметр

Параметр в JSON

Описание

Название

id

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

Тип

type

Тип данных:

  • строка — string;
  • ссылка — url;
  • логический — boolean;
  • число — number;
  • дробное число — float;
  • файл — file;
  • географические координаты — coordinates;
  • объект JSON — json.

Для массивов в режиме JSON к типу добавляется префикс array_. Например: array_file. Вы можете подробнее узнать о типах данных в разделе Типы данных.

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

required

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

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

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

Скрытое поле

hidden

Важно

Скрытые поля недоступны в интерфейсе задания, даже через JS-код или код шаблона в конструкторе.

Позволяет скрыть данные от исполнителя. Если этого не сделать, исполнители могут получить значение поля программно. Параметр можно настроить в режиме 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.

Типы данных

Вы можете использовать различные типы данных:

  • integer
  • float
  • string
  • url
  • boolean
  • coordinates
  • json
  • file
  • array

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

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

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

  • Скрытые поля нужны только заказчикам и недоступны в интерфейсе задания. Значения скрытых полей невозможно использовать ни в JS-коде, ни в конструкторе шаблонов.

    Пример

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

    Чтобы создать скрытое поле:

    1. Добавьте новое поле в спецификацию.
    2. В режиме JSON укажите у этого поля параметр "hidden": true.

Что дальше

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

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

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

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

Написать в службу поддержки

Тип данных для использования целых чисел.

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

Тип данных для использования строк.

Тип данных для использования гиперссылок. По формату записи похож на строку. Ссылки начинаются с префикса http://, https:// или www.

Логический тип данных. Может принимать два значения:

  • true — утверждение истинно.
  • false — утверждение ложно.

Тип данных для использования географических координат. По формату записи похож на строку. Содержит широту и долготу точки на карте. Координаты разделяются запятой, например: 22.3341,32.32.

Порядок указания координат:

  • Широта.

  • Долгота.

Тип данных для использования JSON. По формату записи похож на строку.

Тип данных для использования файлов. Например, используется для загрузки фотографий исполнителем.

Тип данных для использования множественных значений.

Формат входных и выходных данных, описываемых в поле Спецификации блока Интерфейс задания при настройке проекта.

Подробнее

Определенная цель для разметки. Например, модерация комментариев, классификация изображений, транскрипция аудиозаписей или еще что-то.

Подробнее

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

Набор данных, которые нужно разметить в проекте. Можно использовать настройки пула для выбора исполнителей, установки цены за задание и добавления правил контроля качества. Задания в пуле объединены общими свойствами (например, настройки отбора исполнителей, плата за страницу заданий) и отправляются на выполнение единовременно.

Вопрос или задача, которое требует ответа от исполнителя в Яндекс Заданиях.

Подробнее