Интервалы распределения заданий

В Яндекс Заданиях можно установить интервалы для заданий для того, чтобы:

Пул
Пул
Страница заданий №1
Страница заданий №1
Страница заданий №2
Страница заданий №2
Задание
№1
Задание №1
Задание №2
Задание №2
Задание №3
Задание №3
Задание
4
Задание№4...
Задание №5
Задание №5
Задание
6
Задание№6...
Задание №7
Задание №7
{
"from":1,
"to":5,
"frequency":3
}
{...
Интервал №1
Интервал №1
{
"from":6,
"to":1000,
"frequency":5
}
{...
Интервал №2
Интервал №2
Задание №8
Задание №8
Задание №9
Задание №9
Задание №10
Задание №10
Задание
11
Задание№11...
Задание №12
Задание №12
Задание №13
Задание №13
Задание №14
Задание №14
Text is not SVG - cannot display

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

С помощью API Яндекс Заданий можно установить интервалы, используя следующий формат JSON:

"intervals": [
  {
    "from": 1,
    "to": 5,
    "frequency": 3
  },
  {
    "from": 6,
    "to": 1000,
    "frequency": 5
  }
]

Эти настройки можно изменить с помощью POST-запроса при создании пула) или при помощи PUT-запроса при редактировании пула.

Ниже представлены примеры POST-запросов. PUT-запросы выглядят так же, но они должны содержать все имеющиеся атрибуты пула вместе с теми, которые вы хотите изменить.

Распределение при «умном смешивании»

При использовании «умного смешивания» можно установить интервалы для контрольных и обучающих заданий в пуле и распределить эти задания неравномерно по всему пулу.

Пример запроса ниже позволяет сделать контрольными задания номер 1, 4 и 6 на первой странице заданий и задание номер 11 на второй странице заданий. См. схему на рисунке выше.

Для этого используйте параметр mixer_config.golden_task_distribution_function.intervals.

Дополнительно задайте значения следующим параметрам:

  • установите значение параметра mixer_config.real_tasks_count равным 7, чтобы ограничить максимальное количество основных заданий на странице, как показано на схеме выше;

  • установите значение параметра mixer_config.golden_tasks_count равным 0 и значение параметра mixer_config.min_golden_tasks_count равным null для корректной работы «умного смешивания».

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

curl -X POST 'https://tasks.yandex.ru/api/v1/pools' \
     -H 'Content-Type: application/json' \
     -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
     -d '{
          "project_id": "120798",
          "private_name": "Cat or Dog?",
          "will_expire": "2024-06-23T07:11:19.963",
          "reward_per_assignment": 2,
          "assignment_max_duration_seconds": 600,
          "auto_accept_solutions": false,
          "mixer_config": {
            "golden_tasks_count": 0,
            "golden_task_distribution_function": {
              "distribution": "UNIFORM",
              "intervals": [
                {
                  "from": 1,
                  "to": 5,
                  "frequency": 3
                },
                {
                  "from": 6,
                  "to": 1000,
                  "frequency": 5
                },
                {
                  "from": 1001,
                  "frequency": 8
                }
              ]
            },
            "min_golden_tasks_count": null,
            "real_tasks_count": 7
          },
          "defaults": {
            "default_overlap_for_new_task_suites": 1
          }
        }'

Пример запроса ниже позволяет сделать обучающими задания номер 1, 4 и 6 на первой странице заданий и задание номер 11 на второй странице заданий. См. схему на рисунке выше.

Для этого используйте параметр mixer_config.training_task_distribution_function.intervals.

Дополнительно задайте значения следующим параметрам:

  • установите значение параметра mixer_config.real_tasks_count равным 7, чтобы ограничить максимальное количество основных заданий на странице, как показано на схеме выше;

  • установите значение параметра mixer_config.training_tasks_count равным 0 и значение параметра mixer_config.min_training_tasks_count равным null для корректной работы «умного смешивания».

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

curl -X POST 'https://tasks.yandex.ru/api/v1/pools' \
     -H 'Content-Type: application/json' \
     -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
     -d '{
          "project_id": "120798",
          "private_name": "Cat or Dog?",
          "will_expire": "2024-06-23T07:11:19.963",
          "reward_per_assignment": 2,
          "assignment_max_duration_seconds": 600,
          "auto_accept_solutions": false,
          "mixer_config": {
            "training_tasks_count": 0,
            "training_task_distribution_function": {
              "distribution": "UNIFORM",
              "intervals": [
                {
                  "from": 1,
                  "to": 5,
                  "frequency": 3
                },
                {
                  "from": 6,
                  "to": 1000,
                  "frequency": 5
                },
                {
                  "from": 1001,
                  "frequency": 8
                }
              ]
            },
            "min_training_tasks_count": null,
            "real_tasks_count": 7
          },
          "defaults": {
            "default_overlap_for_new_task_suites": 1
          }
        }'

Выборочная проверка мнением большинства

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

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

Для подобной схемы используется параметр quality_control.checkpoints_config.real_settings.intervals.

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

curl -X POST 'https://tasks.yandex.ru/api/v1/pools' \
     -H 'Content-Type: application/json' \
     -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
     -d '{
          "project_id": "120798",
          "private_name": "Cat or Dog?",
          "will_expire": "2024-06-23T07:11:19.963",
          "reward_per_assignment": 2,
          "assignment_max_duration_seconds": 600,
          "auto_accept_solutions": false,
          "quality_control": {
            "checkpoints_config": {
              "real_settings": {
                "target_overlap": 3,
                "task_distribution_function": {
                  "scope": "PROJECT",
                  "distribution": "UNIFORM",
                  "window_days": 10,
                  "intervals": [
                    {
                      "from": 1,
                      "to": 5,
                      "frequency": 3
                    },
                    {
                      "from": 6,
                      "to": 1000,
                      "frequency": 5
                    },
                    {
                      "from": 1001,
                      "frequency": 8
                    }
                  ]
                }
              }
            }
          },
          "defaults": {
            "default_overlap_for_new_task_suites": 1
          }
        }'

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

Для подобной схемы используется параметр quality_control.checkpoints_config.golden_settings.intervals.

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

curl -X POST 'https://tasks.yandex.ru/api/v1/pools' \
     -H 'Content-Type: application/json' \
     -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
     -d '{
          "project_id": "120798",
          "private_name": "Cat or Dog?",
          "will_expire": "2024-06-23T07:11:19.963",
          "reward_per_assignment": 2,
          "assignment_max_duration_seconds": 600,
          "auto_accept_solutions": false,
          "quality_control": {
            "checkpoints_config": {
              "golden_settings": {
                "target_overlap": 3,
                "task_distribution_function": {
                  "scope": "PROJECT",
                  "distribution": "UNIFORM",
                  "window_days": 10,
                  "intervals": [
                    {
                      "from": 1,
                      "to": 5,
                      "frequency": 3
                    },
                    {
                      "from": 6,
                      "to": 1000,
                      "frequency": 5
                    },
                    {
                      "from": 1001,
                      "frequency": 8
                    }
                  ]
                }
              }
            }
          },
          "defaults": {
            "default_overlap_for_new_task_suites": 1
          }
        }'

В результате запроса ниже обучающие задания номер 1, 4 и 6 с первой страницы заданий и обучающее задание номер 11 со второй страницы заданий будут использованы для выборочной проверки мнением большинства, как на схеме выше.

Для подобной схемы используется параметр quality_control.checkpoints_config.training_settings.intervals.

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

curl -X POST 'https://tasks.yandex.ru/api/v1/pools' \
     -H 'Content-Type: application/json' \
     -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
     -d '{
          "project_id": "120798",
          "private_name": "Cat or Dog?",
          "will_expire": "2024-06-23T07:11:19.963",
          "reward_per_assignment": 2,
          "assignment_max_duration_seconds": 600,
          "auto_accept_solutions": false,
          "quality_control": {
            "checkpoints_config": {
              "training_settings": {
                "target_overlap": 3,
                "task_distribution_function": {
                  "scope": "PROJECT",
                  "distribution": "UNIFORM",
                  "window_days": 10,
                  "intervals": [
                    {
                      "from": 1,
                      "to": 5,
                      "frequency": 3
                    },
                    {
                      "from": 6,
                      "to": 1000,
                      "frequency": 5
                    },
                    {
                      "from": 1001,
                      "frequency": 8
                    }
                  ]
                }
              }
            }
          },
          "defaults": {
            "default_overlap_for_new_task_suites": 1
          }
        }'