Контрольные задания

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

Добавьте задания с правильными ответами в пул. Задайте значения ключей в массиве quality_control.configs в настройках пула.

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

Допустим, в проекте настроены:

  • Подсчет значения навыка, равного доле правильных ответов в контрольных заданиях. Значение навыка можно использовать для отбора исполнителей.

  • Прекращение доступа к проекту, если доля правильных ответов исполнителя меньше 75%.

Первый расчет навыка производится после выполнения 7-ми контрольных заданий. В расчете участвуют последние 10 ответов из контрольных заданий проекта.

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

Пример

Блокировка на 10 дней

{
  "configs": [
    {
      "collector_config": {
        "type": "GOLDEN_SET",
        "parameters": {
          "history_size": 10
        }
      },
      "rules": [
        {
          "conditions": [
            {
              "key": "golden_set_answers_count",
              "operator": "GT",
              "value": 7
            }
          ],
          "action": {
            "type": "SET_SKILL_FROM_OUTPUT_FIELD",
            "parameters": {
              "skill_id": "42",
              "from_field": "golden_set_correct_answers_rate"
            }
          }
        },
        {
          "conditions": [
            {
              "key": "golden_set_answers_count",
              "operator": "GT",
              "value": 7
            },
            {
              "key": "golden_set_correct_answers_rate",
              "operator": "LT",
              "value": 75.0
            }
          ],
          "action": {
            "type": "RESTRICTION_V2",
            "parameters": {
              "scope": "PROJECT",
              "duration_unit": "DAYS",
              "duration": 10,
              "private_comment": "Control tasks were not completed"
            }
          }
        }
      ]
    }
  ]
}

Чтобы задать другой период блокировки, измените значение параметров duration_unit и duration ключа configs.rules.action.parameters:

Единица измерения длительности блокировки:

  • MINUTES — минуты;
  • HOURS — часы;
  • DAYS — дни;
  • PERMANENT — навсегда.

Длительность блокировки.

{
  ...
  "action": {
    "type": "RESTRICTION_V2",
    "parameters": {
      "scope": "PROJECT",
      "duration_unit": "HOURS",
      "duration": 12,
      "private_comment": "Control tasks were not completed"
    }
  }
  ...
}
{
  ...
  "action": {
    "type": "RESTRICTION_V2",
    "parameters": {
      "scope": "PROJECT",
      "duration_unit": "MINUTES",
      "duration": 30,
      "private_comment": "Control tasks were not completed"
    }
  }
  ...
}
{
  ...
  "action": {
    "type": "RESTRICTION_V2",
    "parameters": {
      "scope": "PROJECT",
      "duration_unit": "PERMANENT",
      "private_comment": "Control tasks were not completed"
    }
  }
  ...
}

Параметры

Все настройки правил контроля качества определяются в массиве объектов configs[]. Он является обязательным и содержит следующие параметры:

Параметр

Описание

collector_config*

object

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

rules*

object

Набор правил контроля качества, которые нужно применить.

'configs[].collector_config'

Параметр

Описание

type*

string

Критерий, на котором основан блок качества:

  • ACCEPTANCE_RATE — доля ответов исполнителя, которые были отклонены при отложенной приемке заданий.

  • ANSWER_COUNT — количество страниц заданий, выполненных исполнителем в пуле.

  • ASSIGNMENT_SUBMIT_TIME — количество «быстрых» ответов (минимальная скорость ответа задается в параметрах).

  • ASSIGNMENTS_ASSESSMENT — количество принятых или отклоненных заданий при включенной отложенной приемке заданий.

  • CAPTCHA — количество успешно и неуспешно введенных капч.

  • GOLDEN_SET — количество правильных и неправильных ответов в контрольных заданиях.

  • INCOME — плата за задания, выполненные исполнителем за последние 24 часа.

  • MAJORITY_VOTE — доля ответов, которые совпали с мнением большинства.

  • SKIPPED_IN_ROW_ASSIGNMENTS — количество пропущенных подряд страниц заданий.

  • USERS_ASSESSMENT — значение навыка исполнителя и его блокировка.

parameters

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

Обязательный, если configs.collector_config.type равно одному из значений:

  • ASSIGNMENT_SUBMIT_TIME
  • ASSIGNMENTS_ASSESSMENT
  • CAPTCHA
  • GOLDEN_SET
  • MAJORITY_VOTE
  • USERS_ASSESSMENT

Параметры для сбора данных (зависят от блока контроля качества, указанного в ключе type).

'configs[].collector_config.parameters'

Параметр

Описание

answer_threshold

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

Обязательный, если значение configs.collector_config.type равно MAJORITY_VOTE.

Количество исполнителей, которое считается большинством (например, 3 из 5).

fast_submit_threshold_seconds

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

Обязательный, если значение configs.collector_config.type равно ASSIGNMENT_SUBMIT_TIME.

Минимальная приемлемая скорость ответа в секундах.

history_size

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

Обязательный, если configs.collector_config.type равно одному из значений:

  • ASSIGNMENTS_ASSESSMENT
  • GOLDEN_SET
  • MAJORITY_VOTE
  • USERS_ASSESSMENT

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

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

'configs[].rules'

Параметр

Описание

action*

object

Действие в случае выполнения условий (например, закрыть доступ к проекту).

conditions*

object

Условия (например, пропуск 10 страниц заданий подряд). Несколько условий объединяются с помощью оператора «и».

'configs[].rules.action'

parameters*

object

Параметры действия.

type*

string

Тип действия:

  • APPROVE_ALL_ASSIGNMENTS — принять все ответы исполнителя. Например, если исполнитель выполняет большинство заданий качественно и вас устраивает такой результат.

  • CHANGE_OVERLAP — изменить перекрытие. Например, чтобы повторно отправить страницу заданий на выполнение другим исполнителям или отменить повторное выполнение уже принятых заданий.

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

  • RESTRICTION_V2 — заблокировать доступ к проектам или пулам.

  • SET_SKILL — присвоить навыку указанное константное значение.

  • SET_SKILL_FROM_OUTPUT_FIELD — присвоить навыку значение «доля правильных ответов» (используется в блоках Контрольный набор и Мнение большинства).

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

'configs[].rules.action.parameters'

Параметр

Описание

scope*

string

Уровень ограничения:

  • POOL — пул. Не влияет на рейтинг исполнителя.
  • PROJECT — проект. Влияет на рейтинг исполнителя.
  • ALL_PROJECTS — все проекты заказчика.

skill_id

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

Обязателен, если type=SET_SKILL_FROM_OUTPUT_FIELD.

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

from_field

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

Обязателен, если type=SET_SKILL_FROM_OUTPUT_FIELD.

Значение, которое нужно присвоить навыку:

  • correct_answers_rate — доля правильных ответов;
  • wrong_answers_rate — доля неправильных ответов.

skill_value

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

Обязателен, если type=SET_SKILL_FROM_OUTPUT_FIELD.

Фиксированное значение, которое нужно присвоить навыку (число от 0 до 100).

delta

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

Обязателен, если type=CHANGE_OVERLAP.

Значение определяет, на сколько изменить перекрытие.

public_comment

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

Обязателен, если type=REJECT_ALL_ASSIGNMENTS.

Комментарий (причина отклонения ответов). Доступен заказчику и исполнителю.

duration_unit

string

Единица измерения длительности блокировки:

  • MINUTES — минуты;
  • HOURS — часы;
  • DAYS — дни;
  • PERMANENT — навсегда.

duration

integer

Длительность блокировки.

private_comment

string

Комментарий (причина блокировки). Доступен только заказчику.

open_pool

boolean

Определяет, нужно ли открыть закрытый пул:

  • true — открыть пул после изменения, если он закрыт.
  • false — не открывать пул после изменения, если он закрыт.
'configs[].rules.conditions'

Параметр

Описание

key*

string

Значения, которые проверяются в условии.

  • total_answers_count — количество выполненных обучающих и контрольных заданий.
  • correct_answers_rate — доля правильных ответов на контрольные и обучающие задания (от 0 до 100).
  • incorrect_answers_rate — доля неправильных ответов на контрольные и обучающие задания (от 0 до 100).
  • golden_set_answers_count — количество выполненных контрольных заданий.
  • golden_set_correct_answers_rate — доля правильных ответов на контрольные задания (от 0 до 100).
  • golden_set_incorrect_answers_rate — доля неправильных ответов на контрольные задания (от 0 до 100).

Несколько условий с одинаковым значением поля key объединяются с помощью логического «и».

operator*

string

Оператор сравнения (данные key сравниваются с пороговым значением из value):

  • EQ («Equal») — равно.
  • GT («Greater than») — больше чем.
  • GTE («Greater than equal to») — больше или равно.
  • LT («Less than») — меньше чем.
  • LTE («Less than equal to») — меньше или равно.
  • NE («Not equal to») — не равно.

value*

integer

Пороговое значение переменной, указанной в key.

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