Рекомендации аксессуаров

Напишите нам, если не нашли ответ в Справке. Вы можете приложить скриншоты или видео, чтобы ускорить помощь:

Написать в чат  Написать в Telegram

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

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

Из каких компонентов состоит этот пример
  • view.list — отображает данные списком;
  • view.text — показывает текст;
Показать код
{
  "type": "view.text",
  "label": "Является ли второй товар хорошей рекомендацией для первого?"
}
  • view.image — показывает картинку;

Компонент layout.columns размещает два изображения рядом.

Показать код
{
  "type": "layout.columns",
  "items": [
    {
      "type": "view.image",
      "label": {
        "type": "data.input",
        "path": "title_1"
      },
      "url": {
        "type": "data.input",
        "path": "image_1"
      }
    },
    {
      "type": "view.image",
      "label": {
        "type": "data.input",
        "path": "title_2"
      },
      "url": {
        "type": "data.input",
        "path": "image_2"
      }
    }
  ]
}
  • field.radio-group — добавляет группу переключателей-радиокнопок для выбора одного ответа;

Компонент condition.required внутри свойства validation проверяет, выбран ли хотя бы один из вариантов ответа.

Показать код
{
  "type": "field.radio-group",
  "options": [
    {
      "label": "Хорошая рекомендация",
      "value": "ok"
    },
    {
      "label": "Плохая рекомендация",
      "value": "bad"
    }
  ],
  "data": {
    "type": "data.output",
    "path": "result"
  },
  "validation": {
    "type": "condition.required",
    "hint": "Выберите вариант ответа."
  }
}
  • plugin.toloka — настраивает внешний вид задания.
Показать код
{
  "type": "plugin.toloka",
  "layout": {
    "kind": "pager"
  }
}

Примечание

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

Если вам не подходит этот пресет, посмотрите другие примеры в этом разделе.

Добавить поле для ввода ответа

Чтобы исполнители могли оставить комментарий, добавьте компонент для ввода многострочного текста field.textarea.

Показать код
{
  "type": "field.textarea",
  "label": "Комментарий",
  "placeholder": "Введите текст",
  "data": {
    "type": "data.output",
    "path": "comment"
  }
}

Добавить оформление

Чтобы исполнитель легче ориентировался в задании, оформите разные типы данных цветом с помощью компонента view.alert. Вы можете расположить его внутри view.list вместе с другими компонентами.

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

Показать код
{
  "type": "view.alert",
  "theme": "info",
  "content": {
    "type": "view.text",
    "content": "Является ли второй товар хорошей рекомендацией для первого?"
  }
},
{
  "type": "view.alert",
  "theme": "warning",
  "content":{
    "type": "field.radio-group",
    "options": [
      {
        "label": "Хорошая рекомендация",
        "value": "ok"
      },
      {
        "label": "Плохая рекомендация",
        "value": "bad"
      }
    ],
    "data": {
      "type": "data.output",
      "path": "result"
    },
    "validation": {
      "type": "condition.required",
      "hint": "Выберите вариант ответа."
    }
  }
}

Добавить другие варианты ответа

Вы можете выбрать, может ли исполнитель выбрать один или несколько вариантов ответа.

Компонент field.button-radio-group отображает варианты ответов в виде кнопок. Его лучше использовать для вопроса с 2-4 вариантами ответов.

Если у вопроса много вариантов ответа или они длинные, то лучше используйте field.radio-group.

Показать код
{
  "type": "field.button-radio-group",
  "label": "Выберите вариант ответа:",
  "options": [
    {
      "label": "Товар принадлежит к категории “Конфеты и шоколад”.",
      "value": "1"
    },
    {
      "label": "Товар принадлежит к категории “Мороженое и замороженный сок”.",
      "value": "2"
    }
  ],
  "data": {
    "type": "data.output",
    "path": "result"
  },
  "validation": {
    "type": "condition.required",
    "hint": "Выберите вариант ответа."
  }
}

Если вопрос подразумевает несколько вариантов ответа, используйте компонент field.checkbox-group.

Показать код
{
  "type": "field.checkbox-group",
  "label": "Выберите варианты ответа, подходящие для данного товара:",
  "options": [
    {
      "label": "Продукт принадлежит к категории «Конфеты и шоколад»",
      "value": "1"
    },
    {
      "label": "Тип шоколада «Молочный»",
      "value": "2"
    },
    {
      "label": "Вкус «Шоколад и карамель»",
      "value": "3"
    },
    {
      "label": "Форма «Батончик»",
      "value": "4"
    }
  ],
  "data": {
    "type": "data.output",
    "path": ""
  },
  "validation": {
    "type": "condition.required",
    "hint": "Выберите один или несколько вариантов ответа."
  }
}

Добавить уточняющий вопрос

Компонент helper.if показывает элемент интерфейса если выбран один из ответов. В этом примере исполнитель может ответить на вопрос только если оба изображения были загружены.

Показать код
{
  "type": "helper.if",
  "condition": {
    "type": "condition.equals",
    "data": {
      "type": "data.output",
      "path": "loaded"
    },
    "to": "yes"
  },
  "then": {
    "type": "field.radio-group",
    "options": [
      {
        "label": "Хорошая рекомендация",
        "value": "ok"
      },
      {
        "label": "Плохая рекомендация",
        "value": "bad"
      }
    ],
    "data": {
      "type": "data.output",
      "path": "result"
    },
    "validation": {
      "type": "condition.required",
      "hint": "Выберите вариант ответа."
    }
  }
}

Если вам нужно последовательно проверить более двух условий, воспользуйтесь компонентом helper.switch.

Добавьте горячие клавиши

Добавьте горячие клавиши в конфигурации plugin.hotkeys. Так вы поможете исполнителям быстрее выполнять задания — нажимать кнопки порой удобнее, чем управлять мышкой.

Показать код
{
  "type": "plugin.hotkeys",
  "1": {
    "type": "action.set",
    "data": {
      "type": "data.output",
      "path": "result"
    },
    "payload": "ok"
  },
  "2": {
    "type": "action.set",
    "data": {
      "type": "data.output",
      "path": "result"
    },
    "payload": "bad"
  }
}

Написать в службу поддержки