Обработка отклоненных и принятых заданий

С помощью этого правила вы сможете:

  • Отправлять отклоненные страницы заданий на повторное выполнение другим исполнителям.

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

  • Сэкономить на повторном выполнении уже принятых страниц заданий.

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

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

Пример

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

{
  "configs": [
    {
      "collector_config": {
        "type": "ASSIGNMENTS_ASSESSMENT"
      },
      "rules": [
        {
          "conditions": [
            {
              "key": "rejected_assignments_count",
              "operator": "GTE",
              "value": "1"
            },
            {
              "key": "assessment_event",
              "operator": "EQ",
              "value": "REJECT"
            }
          ],
          "action": {
            "type": "CHANGE_OVERLAP",
            "parameters": {
              "delta": 1,
              "open_pool": true
            }
          }
        }
      ]
    }
  ]
}

Параметры

Все настройки правил контроля качества определяются в массиве объектов 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

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

  • pending_assignments_count — количество страниц заданий, которые выполнены и ожидают проверки;
  • accepted_assignments_count — количество страниц заданий, принятых в результате отложенной приемки;
  • rejected_assignments_count — количество страниц заданий, отклоненных в результате отложенной приемки.

Несколько условий с одинаковым значением поля 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.

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

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