Создание файла с заданиями
Напишите нам, если не нашли ответ в Справке. Вы можете приложить скриншоты или видео, чтобы ускорить помощь:
Написать в чат Написать в Telegram
Чтобы загрузить задания в пул, необходимо подготовить файл с заданиями.
Скачайте шаблон файла для вашего проекта на странице пула. На основе шаблона подготовьте собственный файл с заданиями и загрузите его в пул.
Если в пул необходимо загрузить задания разных типов, загрузите несколько файлов, каждый из которых будет содержать задания одного типа.
Структура файла с заданиями
Первая строка файла содержит заголовки столбцов:
-
INPUT:<имя поля входных данных>
— входные данные заданий. -
GOLDEN:<имя поля выходных данных>
— ответы для контрольных заданий. -
HINT:text
— подсказка для обучающих заданий. Текст подсказки будет показан исполнителю в верхней части задания на красном фоне, если он в обучающем задании даст ответ, который отличается от указанного правильного. -
Координаты точки для полевых заданий:
-
Al:latitude
— широта. -
Al:longitude
— долгота.
-
Тип задания зависит от того, какие поля заполнены:
Чтобы создать основное задание, заполните столбцы с заголовком INPUT
.
Пример с простым объектом (строка, ссылка и т.д)
Пример с массивом строк
Чтобы создать контрольное задание, добавьте:
-
входные данные для задания в столбцы с заголовком
INPUT
; -
правильные ответы в столбцы с заголовком
GOLDEN
.
Совет
Вы также можете добавить ответы при создании пула в режиме разметки заданий. Для этого нужно использовать умное смешивание при загрузке заданий.
Пример
Чтобы создать обучающее задание, добавьте:
-
входные данные для задания в столбцы с заголовком
INPUT
; -
правильные ответы в столбцы с заголовком
GOLDEN
; -
подсказку в столбец
HINT:text
.
Для обучающих заданий удобно создавать специальный пул.
Совет
Вы также можете добавить ответы при создании пула в режиме разметки заданий. Для этого нужно использовать умное смешивание при загрузке заданий.
Пример
Задание, которое исполнитель выбирает на карте в мобильном приложении Яндекс Заданий.
Чтобы создать полевое задание, добавьте:
-
входные данные для задания в столбцы с заголовком
INPUT
; -
координаты в столбцы
Al:latitude
иAl:longitude
.
Пример
Столбцы с обязательными полями входных данных должны быть заполнены. Остальные столбцы можно удалить, если они пустые.
Работа с файлом
Популярные редакторы электронных таблиц позволяют импортировать и экспортировать данные в формате TSV:
Вы можете работать с данными в редакторе, а затем сохранить в требуемом формате:
-
Создайте электронную таблицу с нужными заголовками или скопируйте их из шаблона файла.
-
Добавьте данные для заданий.
-
Скопируйте всю таблицу. Вставьте ее в простой текстовый редактор (например, Блокнот на Windows или TextEdit на Mac OS).
-
Сохраните файл в кодировке UTF-8 с расширением
tsv
.
Максимальный размер файла —100 Мб.
Экранирование
Экранирование — замена в тексте управляющих символов, которые используются для разметки, на соответствующие текстовые подстановки. Используется, когда необходимо отобразить управляющий символ в качестве обычного.
От типа входных данных зависит то, как экранируются управляющие символы. Определите тип данных и прочтите необходимый пункт. Возможные варианты:
Данные с типом строка
Чтобы в поле с типом строка отобразить кавычки вида "
:
-
Каждую такую кавычку внутри текстовых данных дополните еще одной. Другие виды кавычек (
« »
и“ ”
) не экранируйте. -
Заключите поле в кавычки
" "
.
Неэкранированные кавычки будут удалены при обработке файла.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
монитор 24" купить |
"монитор 24"" купить" |
корректный |
монитор 24" купить |
книга "Все о собаках" |
книга "Все о собаках" |
корректный, но кавычки пропадут |
книга Все о собаках |
книга «Все о собаках» |
"книга «Все о собаках»" |
корректный |
книга «Все о собаках» |
монитор 24" купить |
монитор 24" купить |
ошибка загрузки |
Данные в формате JSON
Чтобы загрузить данные в поле с типом JSON
-
Каждую кавычку вида
"
дополните еще одной. Другие виды кавычек (« »
и“ ”
) не экранируйте. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
{"query": "монитор 24 дюйма купить"} |
"{""query"": ""монитор 24 дюйма купить""}" |
корректный |
монитор 24 дюйма купить |
{"query": "монитор 24 дюйма купить"} |
"{"query": "монитор 24 дюйма купить"}" |
ошибка загрузки |
Чтобы отобразить кавычку внутри объекта с типом JSON
-
Дополните ее еще одной кавычкой
"
или обратной косой чертой и кавычкой\"
, в том случае, если обратной косой черты перед кавычкой не было. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
{"query": "монитор 24\" купить"} |
"{""query"": ""монитор 24\"" купить""}" |
корректный |
монитор 24" купить |
{"query": "монитор 24" купить"} |
"{""query"": ""монитор 24\"" купить""}" |
корректный |
монитор 24" купить |
{"query": "книга \"Все о собаках\""} |
"{""query"": ""книга \""Все о собаках\""""}" |
корректный |
книга "Все о собаках" |
{"query": "монитор 24\" купить"} |
"{""query"": ""монитор 24\"\" купить""}" |
ошибка загрузки |
|
{"query": "книга \"Все о собаках\""} |
"{"query": "книга \"Все о собаках\""}" |
ошибка загрузки |
Чтобы отобразить обратную косую черту \ внутри объекта с типом JSON
-
Экранируйте ее дополнительной косой чертой
\
. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
{"query": "множество А\B"}``{"query": "array A\B"} |
"{""query"": ""множество A\\B""}"``"{""query"": ""array A\\B""}" |
корректru-ruный``correct |
множество A\B``array A\B |
{"query": "множество А\B"} |
"{""query"": ""множество A\B""}" |
ошибка загрузки |
Массив данных в формате JSON
Чтобы загрузить массив данных в поле с типом JSON
-
Каждую кавычку типа
"
дополните еще одной кавычкой. Другие виды кавычек (« »
и“ ”
) не экранируйте. -
Внутри объекта добавьте обратную косую черту
\
, если ее не было, перед каждой запятой. Запятые разделяющие объекты внутри массива экранировать не нужно. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
[{"query": "монитор 24 дюйма купить"},{"query": "монитор 19 дюймов купить"}] |
"{""query"": ""монитор 24 дюйма купить""},{""query"": ""монитор 19 дюймов купить""}" |
корректный |
монитор 24 дюймов купить монитор 19 дюймов купить |
[{"query": "монитор 24 дюйма\, системный блок купить"},{"query": "монитор 17 дюймов\, системный блок купить"}] |
"{""query"": ""монитор 24 дюйма\, системный блок купить""},""query"": ""монитор 19 дюймов\, системный блок купить""}" |
корректный |
монитор 24 дюймов, системный блок купить монитор 19 дюймов, системный блок купить |
[{"query": "монитор 24 дюйма купить"},{"query": "монитор 19 дюймов купить"}] |
"{"query": "монитор 24 дюйма купить"},{"query": "монитор 19 дюймов купить"}" |
ошибка загрузки |
|
[{"query": "монитор 24 дюйма, системный блок купить"},"query": "монитор 17 дюймов, системный блок купить"}] |
"{""query"": ""монитор 24 дюйма, системный блок купить""},""query"": ""монитор 19 дюймов, системный блок купить""}" |
ошибка загрузки |
Чтобы отобразить кавычку в массиве данных в поле с типом JSON
-
Дополните ее еще одной кавычкой
"
или обратной косой чертой и кавычкой\"
, в том случае, если обратной косой черты перед кавычкой не было. Другие виды кавычек (« »
и“ ”
) не экранируйте. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
[{"query": "монитор 24\" купить"},{"query": "монитор 19\" купить"}] |
"{""query"": ""монитор 24\"" дюйма купить""},{""query"": ""монитор 19\"" купить""}" |
корректный |
монитор 24" купить монитор 19" купить |
[{"query": "монитор 24\" купить"},{"query": "монитор 19\" купить"}] |
"{""query"": ""монитор 24\"" дюйма купить""},{""query"": ""монитор 19\" купить""}" |
ошибка загрузки |
Чтобы отобразить обратную косую черту \ в массиве данных в поле с типом JSON
-
Экранируйте ее двумя бэкслешами
\\
. -
Заключите поле в кавычки
" "
.
Данные | Пример передачи в файл | Статус | Что увидит исполнитель |
---|---|---|---|
[{"query": "множество A\B"},{"query": "множество C\B"}] |
"{""query"": ""множество A\\\B""},{""query"": ""множество C\D""}" |
корректный |
множество A\B множество C\D |
[{"query": "множество A\B"},{"query": "множество C\B"}] |
"{""query"": ""множество A\\B""},{""query"": ""множество C\\D"}" |
ошибка загрузки |
Что дальше
Решение проблем
Загрузка заданий в пул
Сколько заданий должно быть на странице?
Количество заданий зависит от сложности и длительности выполнения. Не делайте страницы заданий слишком большими: они неудобны для исполнителей (например, при сбоях в соединении с интернетом) и не пользуются спросом.
Ошибки при загрузке заданий в пул
Как посмотреть лог обработки
Чтобы посмотреть лог обработки, нажмите Подробнее об ошибках загрузки. Лог обработки записан в формате JSON. Объекты внутри result
соответствуют номеру строки загружаемого файла. Строки, обработанные с ошибкой, имеют статус "success": false
.
Совет
Работать с большим логом удобнее, если скопировать его в текстовый редактор.
Ошибки в заголовках столбцов
Если заголовки столбцов некорректны, файл будет полностью отклонен. В остальных случаях указано количество заданий с ошибками обработки.
Таблица ошибок обработки
"parsing_error_of": "https://tlk.s3.yandex.net/wsdm2020/photos/2d5f63a3184919ce7e3e7068cf93da4b.jpg\t\t", "exception_msg": "the nameMapping array and the sourceList should be the same size (nameMapping length = 1, sourceList size = 3)"
Описание |
Как исправить |
Лишние знаки табуляции.
Если в загружаемом файле после данных или ссылки стоит количество разделителей столбцов Например, когда во входных определен 1 столбец, а в файле после ссылки прописано еще два знака табуляции |
Удалите лишние разделители столбцов, в приведенном выше примере ошибки — оба знака ( |
"exception_msg": "the nameMapping array and the sourceList should be the same size (nameMapping length = 4, sourceList size = 6)"
Описание |
Как исправить |
Не совпадает количество полей в заголовке и в строке. |
Проверьте, что:
|
"code": "VALUE_REQUIRED", "message": "Value must be present and not equal to null"
Описание |
Как исправить |
Не указано значение обязательного поля входных данных. |
Проверьте, что заполнены все столбцы с обязательными полями входных данных. |
"code": "INVALID_URL_SYNTAX", "message": "Value must be in valid url format"
Описание |
Как исправить |
Данные в поле с типом «ссылка» («url») некорректны. |
Проверьте, что все ссылки начинаются с префикса |
"exception_msg": "unexpected end of file while reading quoted column beginning on line 2 and ending on line 4"
Описание |
Как исправить |
В строке стоит непарная кавычка. |
Проверьте, что все кавычки экранированы. |
Как понять сколько заданий будет на странице у исполнителя?
Вы можете указать сколько заданий будет на странице при загрузке заданий в пул. Подробнее о способах распределения заданий по страницам можно узнать здесь.
Как загрузить файл с принятыми решениями обратно в Яндекс Задания для случая, когда выставлена отложенная приемка? Где описан формат загружаемых данных?
Для загрузки файла используйте кнопку Загрузить результаты. Формат можно посмотреть здесь.
Проверка ответов выполняется в файле с заданиями.
Почему после запуска первого проекта не приходят ответы и все загруженные задания отмечаются как "Обучающие"?
Проверьте поле hint
. Для обычных заданий это поле должно быть пустым.
Почему при загрузке задания, в котором нужно просмотреть изображение и написать фидбэк, появляется ошибка синтаксиса?
Ошибка будет возникать, если на вход ожидается тип URL, а приходит строка.
Причин может быть две:
-
Входное поле имеет тип "ссылка".
-
Пул работает на неактуальной версии проекта. То есть создан до того, как вы изменили тип входного поля.
Какое максимальное количество заданий может быть на одной странице?
Зависит от задания. Технически можно много.
Но, во-первых, исполнители неохотно берутся за задания, которые требуют много времени на выполнение. То есть, они скорее сделают 10 заданий по одной минуте, чем одно задание на 10 минут.
Во-вторых, при большом количестве заданий на странице может быть проблема с загрузкой файлов для разметки. Например, картинок.
Третий момент — контроль качества и оценка выполнения всей страницы. Если вы используете дооценку заблокированных исполнителей, то лучше дробить задание на более мелкие части, чтобы в переразметку отправлялось меньше заданий. Это позволит уложиться в бюджет.
Как в интерфейсе при загрузке файла указываются настройки умного смешивания?
Настройки умного смешивания указываются для файла — не для пула.
При первой загрузке файла указанные настройки будут применяться для всех файлов, загруженных в дальнейшем в этот пул.
Как определить время на выполнение задания?
Попробуйте выполнить задания сами, попросите своих друзей и коллег. Найдите среднее время выполнения и добавьте к нему 50%.
Чем отличаются task и task_suite?
Task — это отдельное задание. Task suite — страница с заданиями. Исполнитель получает оплату за страницу заданий.
Одно и то же задание попало на разные страницы
Одно и то же задание может попасть на разные страницы, если:
-
Существует динамическое перекрытие (incremental relabeling, IRL). Например на странице было 5 заданий, по 4-м из них ответы согласовались так, что общий ответ зачелся как верный. Пятое задание будет замешано в другой набор, поскольку оно не попало в финальный ответ и его необходимо «дооценить».
-
У разных заданий существует разное перекрытие. Те задания, у которых перекрытие указано больше, будут дополнительно показываться в наборах с другими оставшимися заданиями в пуле.
-
Если правило контроля качества меняет перекрытие у задания, то оно окажется в другом наборе.
Файл с заданиями
Почему при генерации файла со ссылками на картинки с Яндекс Диска они не отображаются?
Про подключение Яндекс Диска вы можете прочитать здесь.
В шаблоне проекта должно быть прописано, например, следующее:
<img src=not_var{{proxy img}} width="400">
, где img
— входное поле строкового формата.
Для тестирования используйте файл example.jpg
. Его URL вы можете найти в Профиль → Интеграция с внешними сервисами.
Почему в предпросмотре выводятся сразу все фотографии из файла с заданиями?
Каждое задание должно быть описано на отдельной строке в файле с заданиями. Подробнее об этом вы можете прочитать здесь.
Когда вы создадите пул, то в нем будет настройка количества заданий на странице.
Как в файле с обучающим заданием прописать несколько known_solutions?
Загрузить в пул задания с разными ответами через интерфейс невозможно. Можно только через API.
Куда добавится файл, если добавить его к запущенному пулу?
Если в настройках пула включена опция Сохранять порядок заданий, то разметка новых заданий начнется после того, как будут взяты в работу предыдущие. Если опция выключена, то нет и гарантии, что задания будут раздаваться последовательно.
Куда добавится файл, если добавить его к запущенному пулу?
Если в настройках пула включена опция Сохранять порядок заданий, то разметка новых заданий начнется после того, как будут взяты в работу предыдущие. Если опция выключена, то нет и гарантии, что задания будут раздаваться последовательно.
Как во входном файле записывать массив?
Массив строк во входных данных записывается через запятую. Например: INPUT:types text1, text2, text3, text4
Как правильно организовать структуру файла для загрузки данных, если среди входных данных есть JSON?
Все значения записываются в один столбец. Не забудьте экранировать кавычки.
Подробнее об экранировании кавычек для формата JSON можно узнать в документации.
Если для каких-то входящих колонок в файле с заданиями не будет заголовков, то они будут пропущены при импорте? Либо если они будут иметь заголовки без INPUT:.. префикса?
Нет, если вы загрузите в пул файл с несуществующими заголовками, система выдаст ошибку загрузки. Все обязательные INPUT поля, используемые в спецификации должны быть в файле с заданиями. Лишних полей и столбцов быть не должно.
Если вы не хотите показывать какие-то данные исполнителям, но они вам нужны в файле, создайте для них необязательные скрытые входные поля в проекте.
Входные данные
Как внутри элементов массива сделать так, чтобы запятые не воспринимались как разделитель элементов?
Заэкранируйте запятые обратным слэшем \
.
Как будет отображаться то, что я напишу в столбце "hint"?
Текст из поля hint
будет показан исполнителю в верхней части задания на красном фоне, если он в обучающем задании даст ответ, который отличается от указанного правильного.
Пример
Если текст из поля hint
необходимо отразить в несколько строк, то переносы добавляются в файл, а текст заключается в кавычки.
Что означают строчки "Add your text here"?
Add your text here — это подсказка, которая говорит о том, что текст в поле вы можете заменить на свои данные для задания. О структуре файла и его заполнении можно узнать здесь.
Почему при экранировании слова в кавычках другими кавычками, на выходе все кавычки пропадают?
Из-за наличия кавычек в одном слове загружать ответ следует таким образом: "Сколько букв в слове ""Лихтенштейн"""
. Если внутри текста есть экранирование кавычками, то весь текст следует заключать в кавычки. Подробнее описано в документации.
Как задавать ссылку в поле GOLDEN?
Текст в поле GOLDEN должен в точности совпадать с эталоном.
Обычно, если копировать ссылку из браузера на определенный сайт, они будут иметь одинаковый формат. Другое дело, если ссылка была обрезана или набрана на клавиатуре.
Проверьте ссылки, которые используете. Решить задачу с унификацией ссылок можно несколькими способами:
-
Добавить требования к формату ссылок в инструкцию и подсказки в обучении.
-
Обрезать полученные ссылки в js с помощью regexp и записать результат в новое выходное поле, а после сравнить полученное значение с эталоном.
Задание, которое содержит правильный ответ. Контрольные задания нужны, чтобы следить за качеством ответов исполнителя.
Задание, которое выполняется на местности с использованием мобильного приложения. Чаще всего, оно содержит точку на карте, куда нужно прийти, проверить наличие чего-либо и сфотографировать.
Задание, которое содержит правильный ответ и подсказку. Если исполнитель ответит неправильно, он увидит подсказку и не сможет перейти к следующей странице заданий, пока не ответит правильно на все задания. В контроле качества и при расчете навыков учитывается только первый ответ на задание.
Формат входных и выходных данных, описываемых в поле Спецификации блока Интерфейс задания при настройке проекта.
Определенная цель для разметки. Например, модерация комментариев, классификация изображений, транскрипция аудиозаписей или еще что-то.
Набор данных, которые нужно разметить в проекте. Можно использовать настройки пула для выбора исполнителей, установки цены за задание и добавления правил контроля качества. Задания в пуле объединены общими свойствами (например, настройки отбора исполнителей, плата за страницу заданий) и отправляются на выполнение единовременно.
Независимые правила, из которых состоит контроль качества. Блок контроля качества в настройках пула позволяет установить правила и настроить их.
Способ сочетания заданий и формирования страниц заданий случайным образом так, чтобы задания не повторялись для каждого исполнителя.
Файл, содержащий данные, которые нужно разметить. Заказчики используют эти файлы для загрузки заданий. В Яндекс Заданиях поддерживаются файлы в формате TSV.
Tab-separated values — текстовый формат файла, в котором данные разделены знаком табуляции, а строки — знаком перевода строки.
Вопрос или задача, которое требует ответа от исполнителя в Яндекс Заданиях.
Группа из нескольких заданий, ответы на которые должен отправить исполнитель за один раз.
Задание, которое содержит правильный ответ и подсказку. Если исполнитель ответит неправильно, он увидит подсказку и не сможет перейти к следующей странице заданий, пока не ответит правильно на все задания. В контроле качества и при расчете навыков учитывается только первый ответ на задание.
Человек, выполняющий задания в Яндекс Заданиях и получающий за это оплату. Все вместе исполнители обычно называются «крауд» (коллектив, толпа).