Задания

Чтобы загрузить в пул задания, нужно сформировать JSON-объекты, которые содержат:

  • входные данные задания (например, текст, URL картинок);

  • правильные ответы (для контрольных заданий);

  • подсказку (для тренировочных заданий).

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

Если вы хотите сформировать страницы самостоятельно, используйте инструкции в разделе Страницы заданий. Подробнее о формировании страниц заданий см. в документе Толока. Руководство заказчика.

Пример задания в JSON и описание ключей представлены ниже.

Вы можете выполнять следующие операции с заданиями с помощью API:

Пример задания в JSON

{
   "id":"95199da8-77f4-4ceb-8316-2916a84b4641",
   "origin_task_id": "e3da7fe1-828d-4d9c-b49d-42c0eb5fcfde",
   "pool_id": "1",
   "input_values": {
      "image_url": "www.images/image1.ru"
   },
   "known_solutions": [
      {
         "output_values": {
            "result": "OK",
            "like": false
         },
         "correctness_weight": 0.8
      },
      {
         "output_values": {
            "result": "OK",
            "like": true
         },
         "correctness_weight": 1
      },
    ],
   "baseline_solutions": [
      {
         "output_values": {
            "result": "OK",
            "like": false
         },
         "confidence_weight": 0.8
      },
      {
         "output_values": {
            "result": "OK",
            "like": true
         },
         "confidence_weight": 1
      } 
   ], 
   "message_on_unknown_solution": "У кота хорошее настроение",
   "overlap": 3,
   "infinite_overlap": false,
   "reserved_for": [], 
   "unavailable_for": [],
   "created": "2016-09-07T08:49:27.272"
}

Ключи

Ключ

Значение

Тип данных

Обязательный при создании

id

Идентификатор задания.

Строка

Не используется

origin_task_id
Идентификатор задания из другого пула, с которого было скопировано это задание, для проверки мнением большинства. Строка Не используется
pool_id

Идентификатор пула, в который загружается задание.

Строка

Да

input_values

Входные данные для задания. Список пар:

"<id поля 1>": "<значение поля 1>",
"<id поля 2>": "<значение поля 2>",
...
"<id поля n>": "<значение поля n>"

JSON

Да

known_solutions[]

Правильные ответы для контрольных и тренировочных заданий.

Можно указать несколько вариантов правильного ответа на задание.

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

Массив

Нет

known_solutions[].output_values

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

"<id поля 1>": "<правильный ответ>",
"<id поля 2>": "<правильный ответ>",
...         

JSON

Да

known_solutions[].correctness_weight

Вес правильного ответа, в диапазоне от 0 до 1.

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

Это работает как начисление баллов: если для получения навыка надо выполнить одно контрольное задание правильно (набрать 1 балл), то можно выполнить правильно одно задание с весом 1 или два задания с весом 0.5 и больше.

Значение по умолчанию 1.

Число с плавающей точкой

Нет

baseline_solutions[]

Предварительные ответы. Эти данные имитируют ответы исполнителей при расчете уверенности в ответе ( confidence). Они используются в динамическом перекрытии и в агрегации результатов по навыку.

Для каждого предварительного ответа нужно определить значения выходных данных (output_values) и уверенность в ответе (confidence_weight).

Допустим, в задании вы просите исполнителя определить, что на изображении: кошка или собака. И допустим, ваша нейронная сеть уже определила, что на изображении может быть собака с вероятностью 80%, кошка с уверенностью 40%. Допустим, указано динамическое перекрытие от 1 до 3, а минимальная уверенность в ответе — 85%.

Если исполнитель ответит "Собака" и уверенность в его ответе высокая, то скорее всего перекрытие не будет повышаться — хватит одного ответа. Если исполнитель ответит "Кошка", то уверенности скорее всего не хватит и перекрытие будет повышаться и дальше.

Нельзя использовать при создании страницы заданий — в ответе на запрос будет ошибка с кодом 400 и пометкой VALUE_NOT_ALLOWED.

Массив

Нет

baseline_solutions[].output_values

Значения выходных данных для предварительных ответов.

"<id поля 1>": "<предварительный ответ>",
"<id поля 2>": "<предварительный ответ>",
...

JSON

Да

baseline_solutions[].confidence_weight

Уверенность в ответе, в диапазоне от 0 до 1.

Значение по умолчанию 1.

Число с плавающей точкой

Да

message_on_unknown_solution

Подсказка к заданию (для тренировочных заданий).

Строка

Нет

overlap

Перекрытие страницы заданий.

Число

Нет, если при создании заданий используется параметр
allow_defaults=true
и перекрытие указано в параметрах пула (ключ defaults.​default_​overlap_for_​new_tasks)
infinite_overlap
Выдача задания с бесконечным перекрытием. Используется, например, для обучающих заданий, чтобы выдать их всем пользователям:
  • true — установить бесконечное перекрытие;

  • false — оставить перекрытие, указанное для задания или пула.

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

Булев

Нет

origin_task_id
Идентификатор задания, с которого оно скопировано Строка Нет
reserved_for[]

Идентификаторы пользователей, которым задание будет доступно.

Массив

Нет

unavailable_for[]

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

Массив

Нет

created

Дата и время создания страницы заданий по UTC в формате ISO 8601 YYYY-MM-DDThh:mm:ss[.sss].

Строка

Не используется

Ключ

Значение

Тип данных

Обязательный при создании

id

Идентификатор задания.

Строка

Не используется

origin_task_id
Идентификатор задания из другого пула, с которого было скопировано это задание, для проверки мнением большинства. Строка Не используется
pool_id

Идентификатор пула, в который загружается задание.

Строка

Да

input_values

Входные данные для задания. Список пар:

"<id поля 1>": "<значение поля 1>",
"<id поля 2>": "<значение поля 2>",
...
"<id поля n>": "<значение поля n>"

JSON

Да

known_solutions[]

Правильные ответы для контрольных и тренировочных заданий.

Можно указать несколько вариантов правильного ответа на задание.

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

Массив

Нет

known_solutions[].output_values

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

"<id поля 1>": "<правильный ответ>",
"<id поля 2>": "<правильный ответ>",
...         

JSON

Да

known_solutions[].correctness_weight

Вес правильного ответа, в диапазоне от 0 до 1.

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

Это работает как начисление баллов: если для получения навыка надо выполнить одно контрольное задание правильно (набрать 1 балл), то можно выполнить правильно одно задание с весом 1 или два задания с весом 0.5 и больше.

Значение по умолчанию 1.

Число с плавающей точкой

Нет

baseline_solutions[]

Предварительные ответы. Эти данные имитируют ответы исполнителей при расчете уверенности в ответе ( confidence). Они используются в динамическом перекрытии и в агрегации результатов по навыку.

Для каждого предварительного ответа нужно определить значения выходных данных (output_values) и уверенность в ответе (confidence_weight).

Допустим, в задании вы просите исполнителя определить, что на изображении: кошка или собака. И допустим, ваша нейронная сеть уже определила, что на изображении может быть собака с вероятностью 80%, кошка с уверенностью 40%. Допустим, указано динамическое перекрытие от 1 до 3, а минимальная уверенность в ответе — 85%.

Если исполнитель ответит "Собака" и уверенность в его ответе высокая, то скорее всего перекрытие не будет повышаться — хватит одного ответа. Если исполнитель ответит "Кошка", то уверенности скорее всего не хватит и перекрытие будет повышаться и дальше.

Нельзя использовать при создании страницы заданий — в ответе на запрос будет ошибка с кодом 400 и пометкой VALUE_NOT_ALLOWED.

Массив

Нет

baseline_solutions[].output_values

Значения выходных данных для предварительных ответов.

"<id поля 1>": "<предварительный ответ>",
"<id поля 2>": "<предварительный ответ>",
...

JSON

Да

baseline_solutions[].confidence_weight

Уверенность в ответе, в диапазоне от 0 до 1.

Значение по умолчанию 1.

Число с плавающей точкой

Да

message_on_unknown_solution

Подсказка к заданию (для тренировочных заданий).

Строка

Нет

overlap

Перекрытие страницы заданий.

Число

Нет, если при создании заданий используется параметр
allow_defaults=true
и перекрытие указано в параметрах пула (ключ defaults.​default_​overlap_for_​new_tasks)
infinite_overlap
Выдача задания с бесконечным перекрытием. Используется, например, для обучающих заданий, чтобы выдать их всем пользователям:
  • true — установить бесконечное перекрытие;

  • false — оставить перекрытие, указанное для задания или пула.

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

Булев

Нет

origin_task_id
Идентификатор задания, с которого оно скопировано Строка Нет
reserved_for[]

Идентификаторы пользователей, которым задание будет доступно.

Массив

Нет

unavailable_for[]

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

Массив

Нет

created

Дата и время создания страницы заданий по UTC в формате ISO 8601 YYYY-MM-DDThh:mm:ss[.sss].

Строка

Не используется