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

POST /task-suites

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

Ограничение

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

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

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

curl -X POST 'https://tasks.yandex.ru/api/v1/task-suites' \
     -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
     -H 'Content-Type: application/json' \
     -d '{"pool_id":"1238218","tasks":[{"input_values":{"image":"https://example.com/image0.png"}}]}'
import requests

url = "https://tasks.yandex.ru/api/v1/task-suites"
headers = {
  'Authorization': 'OAuth PlaceYourRealOAuthToken_Here',
  'Content-Type': 'application/json'
}
payload = {
  "pool_id": "1238218",
  "tasks": [
    {
      "input_values": {
        "image": "https://example.com/image0.png"
      }
    }
  ],
  "overlap": 3
}
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/task-suites',
  'qs': {},
  'headers': {
    'Authorization': 'OAuth PlaceYourRealOAuthToken_Here',
    'Content-Type': 'application/json'
  },
  'body': JSON.stringify({
    "pool_id": "1238218",
    "tasks": [
      {
        "input_values": {
          "image": "https://example.com/image0.png"
        }
      }
    ],
    "overlap": 3
  })
};
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 — синхронный. Ответ содержит сведения об одной или о нескольких созданных страницах заданий.

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

allow_defaults

boolean

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

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

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

skip_invalid_items

boolean

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

  • true — создать страницы заданий, прошедшие валидацию.
  • false — остановить операцию и не создавать страницы заданий, если хотя бы одна из них не прошла валидацию.

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

open_pool

boolean

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

operation_id

string

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

Важно

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

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

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

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

Пример тела запроса
{
  "pool_id": "1238218",
  "tasks": [
    {
      "input_values": {
        "image_url": "https://example.com/image1.png"
      },
      "known_solutions": [
        {
          "output_values": {
            "color": "black"
          },
          "correctness_weight": 0.95
        },
        {
          "output_values": {
            "color": "gray"
          },
          "correctness_weight": 0.7
        }
      ],
      "message_on_unknown_solution": "The elephant is black"
    },
    {
      "input_values": {
        "image_url": "https://example.com/image2.png"
      },
      "known_solutions": [
        {
          "correctness_weight": 1,
          "output_values": {
            "color": "white"
          }
        }
      ],
      "message_on_unknown_solution": "The elephant is white"
    }
  ],
  "infinite_overlap": false,
  "reserved_for": [],
  "unavailable_for": [],
  "issuing_order_override": 3
}

Страницы заданий, объединенные в массив.

Пример тела запроса
[
  {
    "pool_id": "1238218",
    "tasks": [
      {
        "input_values": {
          "image_url": "https://example.com/image1.png"
        },
        "known_solutions": [
          {
            "output_values": {
              "color": "black"
            },
            "correctness_weight": 0.95
          },
          {
            "output_values": {
              "color": "gray"
            },
            "correctness_weight": 0.7
          }
        ],
        "message_on_unknown_solution": "The elephant is black"
      },
      {
        "input_values": {
          "image_url": "https://example.com/image2.png"
        },
        "known_solutions": [
          {
            "correctness_weight": 1,
            "output_values": {
              "color": "white"
            }
          }
        ],
        "message_on_unknown_solution": "The elephant is white"
      }
    ],
    "infinite_overlap": false,
    "reserved_for": [],
    "unavailable_for": [],
    "issuing_order_override": 3
  },
  {
    "pool_id": "1238219",
    "tasks": [
      {
        "input_values": {
          "image_url": "https://example.com/image3.png"
        },
        "known_solutions": [
          {
            "output_values": {
              "color": "black"
            },
            "correctness_weight": 0.95
          },
          {
            "output_values": {
              "color": "gray"
            },
            "correctness_weight": 0.7
          }
        ],
        "message_on_unknown_solution": "The elephant is black"
      },
      {
        "input_values": {
          "image_url": "https://example.com/image4.png"
        },
        "known_solutions": [
          {
            "correctness_weight": 1,
            "output_values": {
              "color": "white"
            }
          }
        ],
        "message_on_unknown_solution": "The elephant is white"
      }
    ],
    "infinite_overlap": false,
    "reserved_for": [],
    "unavailable_for": [],
    "issuing_order_override": 3
  }
]

Параметр

Описание

pool_id*

string

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

tasks[]*

array of object

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

overlap

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

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

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

longitude

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

Обязателен, если задания выбираются на карте. Иначе не используется.

Долгота точки на карте для страницы заданий.

latitude

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

Обязателен, если задания выбираются на карте. Иначе не используется.

Широта точки на карте для страницы заданий.

infinite_overlap*

boolean

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

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

reserved_for[]

array of strings

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

unavailable_for[]

array of strings

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

issuing_order_override

float

Приоритет страницы заданий среди других страниц в пуле. Определяет порядок выдачи страниц исполнителям. Чем больше значение параметра, тем выше приоритет. Параметр можно использовать, если в пуле issue_task_suites_in_creation_order=true.

Возможные значения: от -99999.99999 до 99999.99999.

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

mixed

boolean

Способ создания страницы заданий:

  • true — автоматически с помощью опции «умное смешивание» (см. подробнее в разделе Как загрузить задания);
  • false — вручную.

Ответ

Одна страница заданий
Пример ответа
{
  "pool_id": "36502086",
  "tasks": [
    {
      "id": "00022cfa46--637cf3f76e13181a0164e729",
      "input_values": {
        "image": "https://example.com/image1.jpg"
      }
    },
    {
      "id": "00022cfa46--637cf3ed6e13181a0164e5a2",
      "input_values": {
        "image": "https://example.com/image2.jpg"
      }
    }
  ],
  "overlap": 1,
  "infinite_overlap": false,
  "reserved_for": [],
  "unavailable_for": [],
  "issuing_order_override": 0,
  "id": "00022cfa46--637cf41c9376542ef7b52bde",
  "mixed": true,
  "automerged": false,
  "created": "2022-11-22T16:09:00.308",
  "remaining_overlap": 0
}

Включает:

Параметр

Описание

id

string

Идентификатор страницы заданий.

remaining_overlap

integer

Оставшееся перекрытие для каждого задания. Например, если для задания установлено перекрытие 5, а его разметили два человека, то значение remaining_overlap будет 3.

Если задание ожидает приемки или активно, ключ принимает значение 0.

automerged

boolean

Флаг страницы заданий, созданной после слияния заданий. Значение:

  • true — страница заданий сгенерирована в результате слияния идентичных заданий;
  • false — обычная страница заданий, созданная «умным смешиванием» или заказчиком.

created

string

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

Несколько страниц заданий

Формат ответа зависит от значения query-параметра async_mode:

{
  "items": {
    "0": {<task suite>},
    "2": {<task suite>}, ...
    "<n>": {<task suite N>}
  },
  "validation_errors": {
    "1": {<validation errors for the task suite>},
    "3": {<validation errors for the task suite>}, ...
    "<n>": {<validation errors for task suite N>}
  }
}
Пример ответа
{
  "items": {
    "0": {
      "pool_id": "36502086",
      "tasks": [
        {
          "id": "00022cfa46--637cf3f76e13181a0164e729",
          "input_values": {
            "image": "https://example.com/image1.jpg"
          }
        },
        {
          "id": "00022cfa46--637cf3ed6e13181a0164e5a2",
          "input_values": {
            "image": "https://example.com/image2.jpg"
          }
        }
      ],
      "overlap": 1,
      "infinite_overlap": false,
      "reserved_for": [],
      "unavailable_for": [],
      "issuing_order_override": 0,
      "id": "00022cfa46--637cf41c9376542ef7b52bde",
      "mixed": true,
      "automerged": false,
      "created": "2022-11-22T16:09:00.308",
      "remaining_overlap": 0
    },
    "2": {
      "pool_id": "36502086",
      "tasks": [
        {
          "id": "00022cfa46--637cf3f26e13181a0164e655",
          "input_values": {
            "image": "https://example.com/image3.jpg"
          }
        },
        {
          "id": "00022cfa46--637cf3f66e13181a0164e704",
          "input_values": {
            "image": "https://example.com/image4.jpg"
          }
        }
      ],
      "overlap": 1,
      "infinite_overlap": false,
      "reserved_for": [],
      "unavailable_for": [],
      "issuing_order_override": 0,
      "id": "00022cfa46--637cf41c19c2d72a00e109d5",
      "mixed": true,
      "automerged": false,
      "created": "2022-11-22T16:09:00.308",
      "remaining_overlap": 0
    }
  },
  "validation_errors": {
    "1": {},
    "3": {}
  }
}

Параметр

Описание

items

object

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

validation_errors

object

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

<n>

object

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

Пример ответа
{
  "id": "57068577e4b0bf7b07a0256f",
  "type": "TASK_SUITE.BATCH_CREATE",
  "status": "FAIL",
  "submitted": "2022-04-07T16:06:15.902",
  "started": "2022-04-07T16:06:15.902",
  "finished": "2022-04-07T16:06:15.902",
  "progress": 100,
  "parameters": {
    "open_pool": false,
    "allow_defaults": false,
    "skip_invalid_items": false
  },
  "details": {
    "total_count": 2,
    "valid_count": 0,
    "failed_count": 2,
    "success_count": 0,
    "not_valid_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

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

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