Создать одно или несколько заданий

POST /tasks

Создает одно или несколько заданий.

Ограничение

Вы можете создать не более 200 000 заданий в минуту и не более 4 000 000 заданий в день. Общий размер всех полей input_values в одном запросе не должен превышать 1 048 576 байт, output_values4 194 304 байт.

См. полный список ограничений на странице Ограничение количества запросов.

Примеры запросов

curl -X POST 'https://tasks.yandex.ru/api/v1/tasks' \
     -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
     -H 'Content-Type: application/json' \
     -d '{"input_values":{"image":"https://example.com/image_example.png"},"known_solutions":[{"output_values":{"result":"pink"}}],"infinite_overlap":true,"pool_id":"1238218"}'
import requests

url = "https://tasks.yandex.ru/api/v1/tasks"
headers = {
  'Authorization': 'OAuth PlaceYourRealOAuthToken_Here',
  'Content-Type': 'application/json'
}
payload = {
  "input_values": {
    "image": "https://example.com/image_example.png"
  },
  "known_solutions": [
    {
      "output_values": {
        "result": "pink"
      }
    }
  ],
  "infinite_overlap": True,
  "pool_id": "1238218"
}
response = requests.post(url, headers=headers, json=payload)

print(response.text)
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://tasks.yandex.ru/api/v1/tasks',
  'qs': {},
  'headers': {
    'Authorization': 'OAuth PlaceYourRealOAuthToken_Here',
    'Content-Type': 'application/json'
  },
  'body': JSON.stringify({
    "input_values": {
      "image": "https://example.com/image_example.png"
    },
    "known_solutions": [
      {
        "output_values": {
          "result": "pink"
        }
      }
    ],
    "infinite_overlap": true,
    "pool_id": "1238218"
  })
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

Заголовки

Заголовок

Описание

Authorization

API-токен для авторизации аккаунта. В качестве префикса добавьте OAuth.

Content-Type

Указывает формат данных (application/json) в передаваемом теле запроса.

Query-параметры

Указываются в ссылке после знака вопроса, перечисляются через &.

Параметр

Описание

async_mode

boolean

Способ обработки запроса:

  • true — отложенный. В результате запроса создается асинхронная операция, выполняемая в фоновом режиме. Ответ содержит сведения об операции (время начала и окончания, статус, количество страниц заданий).
  • false — синхронный. Ответ содержит сведения об одном или о нескольких созданных заданиях. В одном запросе можно отправить не более 5000 заданий.

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

allow_defaults

boolean

Настройки перекрытия:

  • true — использовать перекрытие, указанное в параметрах пула (ключ defaults.default_overlap_for_new_tasks).
  • false — использовать перекрытие, указанное в параметрах заданий (поле overlap).

overlap

string (обязательный при условии)

Обязателен, если при создании заданий не используется параметр allow_defaults=true и перекрытие не указано в параметрах пула (ключ defaults.default_overlap_for_new_tasks). Перекрытие задания).

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

skip_invalid_items

boolean

Параметры валидации JSON-объектов:

  • true — создать задания, прошедшие валидацию. Остальные задания пропустить (ошибки будут перечислены в ответе на запрос).
  • false — остановить операцию и не создавать задания, если хотя бы одно из них не прошло валидацию.

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

open_pool

boolean

Открыть пул сразу после завершения операции, если пул закрыт. По умолчанию значение false.

operation_id

string

Идентификатор операции для отложенной загрузки одного или нескольких заданий (при значении async_mode=true).

Рекомендуется задавать идентификатор в POST-запросе, чтобы избежать случайных ошибок, например, повторного создания операции с теми же заданиями.

Идентификатор должен соответствовать стандарту RFC4122.

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

Тело и параметры запроса

Пример тела запроса
{
  "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": "The cat is in a good mood.",
  "overlap": 3,
  "infinite_overlap": false,
  "reserved_for": [],
  "unavailable_for": []
}

Задания, объединенные в массив.

Пример тела запроса
[
  {
    "pool_id": "1238218",
    "input_values": {
      "image_url": "https://example.com/image_example1.png"
    },
    "known_solutions": [
      {
        "output_values": {
          "result": "OK"
        },
        "correctness_weight": 1
      }
    ],
    "baseline_solutions": [
      {
        "output_values": {
          "result": "OK"
        },
        "confidence_weight": 1
      }
    ],
    "message_on_unknown_solution": "The cat is in a good mood.",
    "infinite_overlap": false,
    "reserved_for": [],
    "unavailable_for": []
  },
  {
    "pool_id": "1238218",
    "input_values": {
      "image_url": "https://example.com/image_example2.png"
    },
    "known_solutions": [
      {
        "output_values": {
          "result": "BAD"
        },
        "correctness_weight": 1
      }
    ],
    "baseline_solutions": [
      {
        "output_values": {
          "result": "BAD"
        },
        "confidence_weight": 1
      }
    ],
    "message_on_unknown_solution": "The cat is in a bad mood.",
    "infinite_overlap": false,
    "reserved_for": [],
    "unavailable_for": []
  }
]

Параметр

Описание

pool_id*

string

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

origin_task_id

string

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

input_values*

object

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

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

known_solutions[]

array of objects

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

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

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

  • Контрольный задания — задания с правильными ответами. Используются для контроля качества ответов.
  • Обучающие задания — задания для обучения исполнителей. Обучающие задания содержат правильные ответы и подсказки. Если исполнитель отвечает неправильно, на экран выводится подсказка. Исполнитель не может перейти к следующему заданию, пока не введет правильный ответ.

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

message_on_unknown_solution

string

Подсказка к заданию (для обучающих заданий).

baseline_solutions[]

array of objects

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

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

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

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

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

Полный список параметров приведен в таблице Предварительные ответы.

localization_config

object

Блок перевода на другие языки. Полный список параметров приведен в таблице Переводы на другие языки.

Подробнее о переводе см. в документе Перевод на другие языки.

overlap

string (обязательный при условии)

Обязателен, если при создании заданий не используется параметр allow_defaults=true и перекрытие не указано в параметрах пула (ключ defaults.default_overlap_for_new_tasks).

Перекрытие задания.

infinite_overlap

boolean

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

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

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

reserved_for[]

array of strings

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

unavailable_for[]

array of strings

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

Правильные ответы для контрольных и обучающих заданий ('known_solutions')

Параметр

Описание

output_values*

object

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

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

correctness_weight

float

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

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

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

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

Предварительные ответы ('baseline_solutions')

Параметр

Описание

output_values*

object

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

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

confidence_weight

float

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

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

Переводы на другие языки ('localization_config')

Параметр

Описание

default_language

string

Исходный язык, на котором заполнены:

  • public_name* (string — название проекта. Его увидят исполнители)
  • public_description* (string — описание проекта. Его увидят исполнители)
  • public_instructions (string — инструкция по выполнению заданий. В инструкции можно использовать любую HTML-разметку)

additional_languages[]

array of objects

Массив языков перевода. Полный список параметров приведен в таблице Языки переводов.

Языки переводов ('additional_languages')

Параметр

Описание

language

string

Язык перевода.

public_name

object

Перевод названия проекта.

Источник перевода:

  • REQUESTER — заказчик сам установил значение.

public_description

object

Перевод описания проекта.

Источник перевода:

  • REQUESTER — заказчик сам установил значение.

public_instructions

object

Перевод инструкции по выполнению заданий.

Источник перевода:

  • REQUESTER — заказчик сам установил значение.

tb_view_spec

object

Перевод интерфейса задания.

tb_view_spec.keys[]

array of objects

Ключи с переводом элементов интерфейса задания.

Источник перевода:

  • REQUESTER — заказчик сам установил значение.

message_on_unknown_solution

object

Подсказка для задания (используется для обучающих заданий).

Ответ

В зависимости от значения параметра async_mode в запросе ответ содержит:

Одно задание
Пример ответа
{
  "id": "000248a756--6422ca21e5997032541d856b",
  "created": "2023-03-28T11:06:09.827",
  "pool_id": "38315862",
  "input_values": {
    "image_url": "https://example.com/image1.jpg"
  },
  "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": "The cat is in a good mood.",
  "overlap": 3,
  "infinite_overlap": false,
  "remaining_overlap": 3,
  "reserved_for": [],
  "unavailable_for": []
}

Сведения о созданном задании. Помимо параметров, которые задаются при создании задания, включает параметры, которые присваиваются заданию автоматически:

Параметр

Описание

id

string

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

created

string

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

remaining_overlap

integer

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

Пример ответа
{
  "id": "2ed92b7f-75c0-4771-ae2f-3911232d6d4e",
  "type": "TASK.BATCH_CREATE",
  "status": "RUNNING",
  "submitted": "2020-12-23T16:26:20.131",
  "progress": 0,
  "parameters": {
      "open_pool": false,
      "allow_defaults": false,
      "skip_invalid_items": false
  }
}

Параметр

Описание

id

string

Идентификатор операции.

type

string

Тип операции:

  • ANALYTICS — получение аналитических данных;
  • POOL.ARCHIVE — отправка пула в архив;
  • POOL.CLONE — клонирование пула;
  • POOL.CLOSE — закрытие пула;
  • POOL.OPEN — открытие пула;
  • PROJECT.ARCHIVE — отправка проекта в архив;
  • SOLUTION.AGGREGATE — агрегация результатов;
  • TASK.BATCH_CREATE — создание нескольких заданий;
  • TASK_SUITE.BATCH_CREATE — создание нескольких страниц заданий;
  • TRAINING.ARCHIVE — отправка обучающего пула в архив;
  • TRAINING.CLONE — клонирование обучающего пула;
  • TRAINING.CLOSE — закрытие обучающего пула;
  • TRAINING.OPEN — открытие обучающего пула;
  • USER_BONUS.BATCH_CREATE — выдача нескольких бонусов исполнителям.

status

string

Статус операции:

  • PENDING — выполнение не началось.
  • RUNNING — выполняется.
  • SUCCESS — успешно выполнена.
  • FAIL — не выполнена.

Отображается для всех операций, кроме создания пула.

submitted

string

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

started

string

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

finished

string

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

progress

integer

Ход выполнения операции в процентах.

parameters

object

Параметры операции (зависят от типа операции). Полный список параметров приведен в таблице Параметры операции.

details

object

Детали выполнения операции. Полный список параметров приведен в таблице Детали выполнения операции.

Параметры операции ('parameters')

Параметр

Описание

project_id

string

Идентификатор проекта, для которого вы хотите получить текущий статус.

pool_id

string

Идентификатор пула, для которого вы хотите получить текущий статус.

training_id

string

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

open_pool

boolean

Только для заданий и страниц заданий.

Нужно ли открыть пул сразу после создания заданий или страниц заданий, если он закрыт.

allow_defaults

boolean

Только для заданий и страниц заданий.

Настройки перекрытия:

  • true — использовать перекрытие, установленное в настройках пула (в поле defaults.default_overlap_for_new_tasks).
  • false — использовать перекрытие, установленное в параметрах задания или страницы заданий (в поле overlap).

skip_invalid_items

boolean

Только для заданий и страниц заданий.

Параметры валидации JSON-объектов:

  • true — создавать задания, прошедшие валидацию. Пропускать остальные задания (в ответе будут перечислены ошибки).
  • false — останавливать операцию и не создавать задания, если одна или больше заданий не прошли валидацию.

Детали выполнения операции ('details')

Параметр

Описание

total_count

integer

Количество элементов в запросе.

valid_count

integer

Количество элементов, прошедших валидацию.

not_valid_count

integer

Количество элементов, не прошедших валидацию.

success_count

integer

Количество успешно созданных или загруженных элементов.

failed_count

integer

Количество элементов, которые не удалось создать или загрузить.

Несколько заданий
Пример ответа
{
  "items": {
    "0": {
      "id": "f432cac2-7184-47a3-8220-12ce362cb208",
      "pool_id": "21",
      "input_values": {
        "image": "https://images.com/1.png"
      },
      "overlap": 3,
      "created": "2016-09-29T18:04:00"
    }
  },
  "validation_errors": {
    "1": {
      "input_values.image": {
        "code": "VALUE_REQUIRED",
        "message": "Value must be present and not equal to null"
      }
    }
  }
}

Параметр

Описание

items

object

Объект с созданными заданиями.

<n>

object

Порядковый номер задания в массиве при создании (начиная с 0).

id

string

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

pool_id

string

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

overlap

string

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

created

string

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

validation_errors

object

Объект с ошибками в заданиях. Возвращается, если в запросе используется параметр skip_invalid_items=true.

Пример ответа
{
  "id": "26e130ad3652443a3dc5094791e48ef9",
  "type": "TASK.BATCH_CREATE",
  "status": "FAIL",
  "submitted": "2015-12-13T23:32:01",
  "started": "2015-12-13T23:33:00",
  "finished": "2015-12-13T23:34:12",
  "parameters": {
    "allow_defaults": false,
    "skip_invalid_items": false,
    "open_pool": false
  },
  "details": {
    "total_count": 2,
    "valid_count": 1,
    "not_valid_count": 1,
    "success_count": 0,
    "failed_count": 2
  }
}

Параметр

Описание

id

string

Идентификатор операции.

type

string

Тип операции:

  • ANALYTICS — получение аналитических данных;
  • POOL.ARCHIVE — отправка пула в архив;
  • POOL.CLONE — клонирование пула;
  • POOL.CLOSE — закрытие пула;
  • POOL.OPEN — открытие пула;
  • PROJECT.ARCHIVE — отправка проекта в архив;
  • SOLUTION.AGGREGATE — агрегация результатов;
  • TASK.BATCH_CREATE — создание нескольких заданий;
  • TASK_SUITE.BATCH_CREATE — создание нескольких страниц заданий;
  • TRAINING.ARCHIVE — отправка обучающего пула в архив;
  • TRAINING.CLONE — клонирование обучающего пула;
  • TRAINING.CLOSE — закрытие обучающего пула;
  • TRAINING.OPEN — открытие обучающего пула;
  • USER_BONUS.BATCH_CREATE — выдача нескольких бонусов исполнителям.

status

string

Статус операции:

  • PENDING — выполнение не началось.
  • RUNNING — выполняется.
  • SUCCESS — успешно выполнена.
  • FAIL — не выполнена.

Отображается для всех операций, кроме создания пула.

submitted

string

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

started

string

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

finished

string

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

progress

integer

Ход выполнения операции в процентах.

parameters

object

Параметры операции (зависят от типа операции). Полный список параметров приведен в таблице Параметры операции.

details

object

Детали выполнения операции. Полный список параметров приведен в таблице Детали выполнения операции.

Параметры операции ('parameters')

Параметр

Описание

project_id

string

Идентификатор проекта, для которого вы хотите получить текущий статус.

pool_id

string

Идентификатор пула, для которого вы хотите получить текущий статус.

training_id

string

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

open_pool

boolean

Только для заданий и страниц заданий.

Нужно ли открыть пул сразу после создания заданий или страниц заданий, если он закрыт.

allow_defaults

boolean

Только для заданий и страниц заданий.

Настройки перекрытия:

  • true — использовать перекрытие, установленное в настройках пула (в поле defaults.default_overlap_for_new_tasks).
  • false — использовать перекрытие, установленное в параметрах задания или страницы заданий (в поле overlap).

skip_invalid_items

boolean

Только для заданий и страниц заданий.

Параметры валидации JSON-объектов:

  • true — создавать задания, прошедшие валидацию. Пропускать остальные задания (в ответе будут перечислены ошибки).
  • false — останавливать операцию и не создавать задания, если одна или больше заданий не прошли валидацию.

Детали выполнения операции ('details')

Параметр

Описание

total_count

integer

Количество элементов в запросе.

valid_count

integer

Количество элементов, прошедших валидацию.

not_valid_count

integer

Количество элементов, не прошедших валидацию.

success_count

integer

Количество успешно созданных или загруженных элементов.

failed_count

integer

Количество элементов, которые не удалось создать или загрузить.

Обязательный параметр