Способы загрузки заданий

В Яндекс Заданиях с помощью API задания можно загрузить двумя способами:

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

Выбирайте этот способ, если:

  • при создании пула вы применили «умное смешивание» (параметр mixer_config);
  • в пуле кроме основных будут контрольные или обучающие задания.

При этом способе Яндекс Задания разобьют задания на страницы в соответствии с настройками «умного смешивания». При загрузке заданий этим способом используйте запрос POST /tasks.

Подробнее про «умное смешивание» читайте в разделе Способы распределения заданий.

Пример запроса
curl -X POST 'https://tasks.yandex.ru/api/v1/tasks' \
    -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
    -H 'Content-Type: application/json' \
    -d '{
          "pool_id": "1",
          "input_values": {
            "image_url": "https://example.com/image_1.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,
          "reserved_for": [],
          "unavailable_for": []
        }'
curl -X POST 'https://tasks.yandex.ru/api/v1/tasks' \
    -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
    -H 'Content-Type: application/json' \
    -d '[
          {
            "pool_id": "1",
            "input_values": {
              "image_url": "https://example.com/image_1.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,
            "reserved_for": [],
            "unavailable_for": []
          },
          {
            <task #2>
          },
          ,
          {
            <task #3>
          }
        ]'

Загрузить задания, сгруппированные по страницам

Выбирайте этот способ, если вы:

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

Этот способ не подойдет, если при создании пула вы применили «умное смешивание». При загрузке заданий этим способом используйте запрос POST /task-suites.

Пример запроса
curl -X POST 'https://tasks.yandex.ru/api/v1/task-suites' \
    -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
    -H 'Content-Type: application/json' \
    -d '{
          "id": "63614047-38c3-4ad4-8a86-99c5c651a9b8",
          "pool_id": "1",
          "tasks": [
            {
              "id": "49a333ea-2728-4c1c-ab1f-8ab1bfe4ee7e",
              "origin_task_id": "e3da7fe1-828d-4d9c-b49d-42c0eb5fcfde",
              "input_values": {
                "image_url": "https://example.com/image_1.jpg"
              },
              "known_solutions": [
                {
                  "correctness_weight": 0.95,
                  "output_values": {
                    "colour": "black"
                  }
                },
                {
                  "correctness_weight": 0.7,
                  "output_values": {
                    "colour": "gray"
                  }
                }
              ],
              "message_on_unknown_solution": "The elephant is black"
            },
            {
              "input_values": {
                "image_url": "https://example.com/image_2.jpg"
              },
              "known_solutions": [
                {
                  "correctness_weight": 1,
                  "output_values": {
                    "colour": "white"
                  }
                }
              ],
              "message_on_unknown_solution": "The elephant is white"
            }
          ],
          "overlap": 5,
          "infinite_overlap": false,
          "remaining_overlap": 3,
          "reserved_for": [],
          "unavailable_for": [],
          "issuing_order_override": 3,
          "mixed": true,
          "automerged": false,
          "created": "2016-04-18T12:43:04.988"
        }'
curl -X POST 'https://tasks.yandex.ru/api/v1/task-suites' \
    -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
    -H 'Content-Type: application/json' \
    -d '[
          {
            "id": "63614047-38c3-4ad4-8a86-99c5c651a9b8",
            "pool_id": "1",
            "tasks": [
              {
                "id": "49a333ea-2728-4c1c-ab1f-8ab1bfe4ee7e",
                "origin_task_id": "e3da7fe1-828d-4d9c-b49d-42c0eb5fcfde",
                "input_values": {
                  "image_url": "https://example.com/image_1.jpg"
                },
                "known_solutions": [
                  {
                    "correctness_weight": 0.95,
                    "output_values": {
                      "colour": "black"
                    }
                  },
                  {
                    "correctness_weight": 0.7,
                    "output_values": {
                      "colour": "gray"
                    }
                  }
                ],
                "message_on_unknown_solution": "The elephant is black"
              },
              {
                "input_values": {
                  "image_url": "https://example.com/image_2.jpg"
                },
                "known_solutions": [
                  {
                    "correctness_weight": 1,
                    "output_values": {
                      "colour": "white"
                    }
                  }
                ],
                "message_on_unknown_solution": "The elephant is white"
              }
            ],
            "overlap": 5,
            "infinite_overlap": false,
            "remaining_overlap": 3,
            "reserved_for": [],
            "unavailable_for": [],
            "issuing_order_override": 3,
            "mixed": true,
            "automerged": false,
            "created": "2016-04-18T12:43:04.988"
          },
          {
            <task suite #2>
          },
          ,
          {
            <task suite #3>
          }
        ]'