NAV
json

Сервис разметчика

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

В сервисе предусмотрены следующие команды:

Название команды EntityType Actions
Создать проект Project EditProject
Обновить проект Project EditProject
Обновить статус проекта Project EditProject
Удалить проект Project EditProject
Добавить файлы в проект Project EditProject
Получить проект Project ViewProjects
Получить участников проекта Project ViewProjects
Получить статистику проекта Project ViewProjects
Получить список проектов Project ViewProjects
Список настроек сущностей с полем Project ViewProjects
Список всех уникальных настроек выделения сущностей Project ViewProjects
Список всех уникальных настроек классификации Project ViewProjects
Получить конкретный документ в проекте Document ViewProjects
Список документов проекта Document ViewProjects
Обновить разметку документа Task EditProject
Сохранить окончательный вариант разметки Task EditProject
Пропустить документ Task EditProject
Вернуть задание в работу Task EditProject
Вернуть задание в необработанные Task EditProject
Вернуть задание от эксперта на доработку разметчику Task EditProject
Получение данных задачи по ID Task ViewProjects
Создать задачи Task EditProject
Список задач Task ViewProjects
Список задач проекта Task ViewProjects
Списко задач проекта с сокращённой информацией Task ViewProjects
Список заданий с разметкой Task ViewProjects
Позиция задачи в списке Task ViewProjects
Добавить пользователей в проект User EditProject
Удалить пользователей из проекта User EditProject
Получить список пользователей, назначенных на разметку документов User ViewProjects
Получить проекты по пользователям User ViewProjects
Экспортировать разметку Labeling ViewMarkerAdministration
Список разметок в статусе 'Завершено' Labeling ViewMarkerAdministration
Импорт разметки в формате RnD Labeling ViewMarkerAdministration
Удаление разметки в формате RnD Labeling ViewMarkerAdministration
Запустить обучение Learning ViewLearning
Остановить обучение Learning ViewLearning
Список обучений Learning ViewLearning
Получить статистику по спанам проекта Project ViewProjects
Получить статистику проекта Project ViewProjects
Получение статистики проекта без учета пользователя Project ViewProjects
Получить список проектов со статистикой Project ViewProjects
Получить список пользователей в проекте User ViewProjects
Получить статистику по сущностям NerSetting ViewProjects

Сервис публикует события для следующих уведомлений:

Код уведомления EntityType Описание
EntityCreated NerSetting Создана настройка выделения сущностей
ProjectCreated Project Создан проект разметки
EntityAddedToProject NerSetting Сущность добавлена в проект
LearningStarted NerSetting Запущено обучение по сущности
LearningFinished NerSetting Завершено обучение по сущности
ProjectInWork Project Проект передан в работу
ProjectCompleted Project Проект завершен

Конфигурирование сервиса разметчика

Требования к запуску сервиса разметчика

Запуск сервиса осуществляется локально через sbt, на стенде в docker на jvm.

Для корректной минимальной работы сервиса требуется обязательное подключение к PostgreSQL, Kafka, Consul. Для настройки подключения к ним нужно заполнить обязательные переменные окружения из раздела ниже.

Для нормальной работы сервису дополнительно требуется окружение Verdi: CommandStatus и ApiGateway. В этом случае нужно уделить внимание настройкам, связанным с ServiceDiscovery и CommandDiscovery.

Список переменных окружения сервиса разметчика

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

Переменная Тип Обяза-тельная Значение по умолчанию Описание
MARKER_HTTP_HOST string нет "0.0.0.0" Хост, на котором слушает HTTP-сервер
MARKER_HTTP_PORT int нет 8192 Порт, на котором слушает HTTP-сервер
MARKER_KAFKA_SERVERS string да "localhost:9092" Адрес Kafka
MARKER_KAFKA_TOPIC string нет "marker_commands" Название кафка-топика для получения команд. Сервис получает кафка-команды по нему, но и также сам публикует это название в CommandDiscovery.
MARKER_KAFKA_CONSUMER_GROUP string нет "marker_consumer_group" Имя consumer-группы для чтения из кафка-топика команд. Не должна меняться и не должна быть пустой, иначе сервис перечитает свои команды при перезапуске.
MARKER_KAFKA_COMMANDEVENT_TOPIC string да "commandevents" Название кафка-топика для отправки сообщений со статусами выполняемых команд. ОБЯЗАТЕЛЬНО должно соответствовать названию этого топика в сервисе статуса команд.
MARKER_KAFKA_ENTITY_OBJECT_EVENT_TOPIC string нет "entityObjectEvent" Название кафка-топика, с событиями об объектах в модели данных
MARKER_KAFKA_PARTITIONS int да 10 Количество партиций в топике команд.
MARKER_ENTITY_OBJECT_EVENT_KAFKA_PARTITIONS int нет 10 Количество партиций в топике с событиями об объектах в модели данных
MARKER_KAFKA_CONSUMER_RESTART_MIN_BACKOFF duration string да 1 second Минимальная задержка перед перезапуском.
MARKER_KAFKA_CONSUMER_RESTART_MAX_BACKOFF duration string да 30 seconds Максимально возможная задержка перед перезапуском.
MARKER_KAFKA_CONSUMER_RESTART_RANDOM_FACTOR double да 0.2 Величина дополнительной случайной задержки: 0.0 - без случайно задержки, 1.0 - до 100% задрежки.
MARKER_KAFKA_CONSUMER_RESTART_MAX_RESTARTS int да 5 Максимальное количество перезапусков в заданный период времени.
MARKER_KAFKA_CONSUMER_RESTART_MAX_RESTARTS_WITHIN duration string да 5 minutes Период времени для ограничения перезапусков.
MARKER_KAFKA_AUTH_USER string да "" Название учетной записи Kafka. Если название не указано, то настройки авторизации не будут применены.
MARKER_KAFKA_AUTH_PASSWORD string да "" Пароль учетной записи Kafka.
MARKER_KAFKA_AUTH_PRINCIPAL string нет "" Principal учетной записи Kafka в Kerberos(в случае соединения с kafka через Kerberos).
MARKER_KAFKA_AUTH_KEYTAB_PATH string нет "" Путь до keytab-файла(в случае соединения с kafka через Kerberos).
MARKER_KAFKA_AUTH_TRUSTSTORE_LOCATION string да "" Путь до хранилища сертификатов (Java key store). Если путь не указан, то сертификат применятся не будет.
MARKER_KAFKA_AUTH_TRUSTSTORE_PASSWORD string да "" Пароль к харнилищу сертификатов.
MARKER_KAFKA_AUTH_MODE string нет "static" Режим аутентификации: static - одна учетная запись на все запросы, mapping - учетная запись зависит от запроса
MARKER_KAFKA_AUTH_CONFIG string нет "" Настройки для аутентификации
MARKER_KAFKA_AUTH_CACHE_SIZE int нет Максимальный размер кеша для Kafka producer (количество активных соединений).
MARKER_KAFKA_AUTH_CACHE_TTL duration string нет Время жизни Kafka producer в кеше.
MARKER_CONSUL_ADDR url string да "http://localhost:8500" Адрес Сonsul.
MARKER_CONSUL_AUTH_USER string да "" Название учетной записи Сonsul. Если название не указано, то настройки авторизации не будут применены.
MARKER_CONSUL_AUTH_PASSWORD string да "" Пароль учетной записи Сonsul.
MARKER_TRACE_DURATION boolean нет false Признак необходимости трассировки выполнения команд
MARKER_DISCOVERABLE_ID string нет "another_marker_instance" ID сервиса в ServiceDiscovery
MARKER_DISCOVERABLE_NAME string нет "marker" Имя сервиса в ServiceDiscovery
MARKER_DISCOVERABLE_HOST string да "localhost" Хост, публикуемый в ServiceDiscovery. По нему на данный сервис будут обращаться другие через HTTP. Указанный адрес должен быть виден другим сервисам. Пример: имя kubernetes/docker_swarm service
MARKER_DISCOVERABLE_PORT int нет Порт, публикуемый в ServiceDiscovery. По нему на данный сервис будут обращаться другие через HTTP. По умолчанию указывается порт, который слушает HTTP-сервер.
MARKER_DISCOVERABLE_LIVETIME duration string нет 2 minutes Период после последней отправки health check, в течение которого ServiceDiscovery считает данный сервис живым.
MARKER_DISCOVERABLE_HEALTHPASS string нет 1 minute Периодичность отправки health check в ServiceDiscovery
MARKER_AKKA_HTTP_CLIENT_MAXCON int нет 512 Максимальное число одновременных исходящих HTTP-соединений
MARKER_AKKA_HTTP_CLIENT_MAXREQ int нет 1024 Максимальное число одновременных исходящих HTTP-запросов
MARKER_AKKA_HTTP_HOST_CONN_POOL_IDLE_TIMEOUT duration string нет 10 minutes Максимальное время жизни пула соединений (с каким-либо сервисом) при отсутствии исходящих соединений
MARKER_AKKA_HTTP_HOST_CONN_POOL_CLIENT_IDLE_TIMEOUT duration string нет 10 minutes Позволяет отдельно настроить максимальное время на исходящий http-запрос, использующий пул соединений (т.е. для синхронной отправки синхронной команды)
MARKER_AKKA_HTTP_CLIENT_IDLE_TIMEOUT duration string нет 10 minutes Максимальное время на исходящий http-запрос (в какой-либо сервис)
MARKER_AKKA_HTTP_SERVER_MAXCON int нет 1024 Максимальное число одновременных входящих HTTP-соединений
MARKER_AKKA_HTTP_SERVER_IDLE_TIMEOUT duration string нет 11 minutes Максимальное время жизни входящего http-соединения
MARKER_AKKA_HTTP_SERVER_REQUEST_TIMEOUT duration string нет 10 minutes Максимальное время обработки входящего http-запроса. Должно быть не больше предыдущего значения, иначе входящее соединение оборвется по таймауту времени жизни запроса
MARKER_INTERNALCMD_ALLOW bool нет true Можно ли сервису отправлять внутрисистемные команды
MARKER_HEALTH_TIMEOUT duration string нет 5 seconds Максимальное время ожидания ответа health check
MARKER_SENDERLIB_COMMANDS_CACHE_UPDATEPERIOD duration string нет 10 minutes Время кэширования данных по командам из CommandDiscovery
MARKER_SENDERLIB_SERVICES_CACHE_UPDATEPERIOD duration string нет 30 seconds Время кэширования данных по сервисам из ServiceDiscovery
MARKER_DB_HOST string да Хост БД
MARKER_DB_PORT int да Порт БД
MARKER_DB_NAME string да Имя базы в БД
MARKER_DB_URL jdbc url string нет JDBC-url для соединения с БД. По умолчанию собирается из других обязательных переменных. Можно указать только его, если не хочется отдельно указывать хост/порт/имя базы.
MARKER_DB_USER string да Пользователь БД
MARKER_DB_PASSWORD string да Пароль пользователя БД
MARKER_FS_URI url string нет http://localhost:9000 Адрес для подключения к Minio
MARKER_FS_ACCESS_KEY_ID string нет "minioadmin" Ключ доступа к хранилищу файлов Minio (aka пользователь)
MARKER_FS_SECRET_ACCESS_KEY string нет "minioadmin" Секретный код доступа к хранилищу файлов Minio (aka пароль)
MARKER_FS_UPLOAD_PARALLELISM int нет 4 Максимально возможный параллелизм при загрузке файлов в хранилище
MARKER_FS_AUTH_MODE string нет static Режим аутентификации: static - одна учетная запись на все запросы, mapping - учетная запись зависит от запроса
MARKER_FS_AUTH_CONFIG string нет "" Настройки для аутентификации: если AuthMode = mapping, то необходим JSON с маппингом учетных записей
MARKER_FS_CACHE_SIZE int нет 1 Максимальный размер кеша клиентов для хранилища файлов (количество активных соединений).
MARKER_FS_CACHE_TTL duration string нет Время жизни клиента в кеше
MARKER_TEMP_BUCKET string нет "temp" Название бакета в Minio, в котором сохраняются временные файлы
MARKER_LABELING_BUCKET string нет "labeling" Название бакета в Minio, в котором сохраняются файлы экспорта разметки
MARKER_ENTITY_OBJECTS_BUCKET string нет "datamodel" Название бакета в Minio, в котором сохраняются файлы документов
MARKER_PROJECT_INSTRUCTION_BUCKET string нет "instruction" Название бакета в Minio, в котором хранятся файлы инструкций
MARKER_FS_MODELS_BUCKET string нет "models" Название бакета в Minio, в котором сохраняются файлы моделей
MARKER_FS_METRICS_BUCKET string нет "metrics" Название бакета в Minio, в котором сохраняются файлы метрик
MARKER_ADDITIONAL_FIELDS_PDF_VIEW string нет "extractedText" Ключ, под которым сервис индексации сохраняет результаты извлечения json из pdf
MARKER_FEATURES_MODE string нет "default" Режим работы: default - без обучения, learning - с обучением моделей
MARKER_SERVICE_NAME string нет "marker" Читаемое имя сервиса
MARKER_SERVICE_DESCRIPTION string нет "Сервис разметчика" Читаемое описание сервиса
MARKER_CUSTOM_CHANGE_MIGRATIONS_TIMEOUT duration string нет 3 minutes Максимальное время выполнения одной миграции customChange
MARKER_AUTOML_TRAIN_MODEL_URI url string нет http://localhost:1030/train RnD: http эндпоинт сервиса обучения моделей
MARKER_AUTOML_SOFT_RESTART_URI url string нет http://localhost:1031/soft_restart RnD: http эндпоинт для остановки обучения

Команды сервиса разметчика

CreateProject

На входе свойства и перечень настроек создаваемого проекта

{
  "title": "Проект Пандора",
  "startDate": 1648114231,
  "endDate": 1648114231,
  "instruction": "Берешь и размечаешь, чего думать-то",
  "instructionUrl": "temp/e3e3e3e3-e3e3-e3e3-e3e3-e3e3e3e3e3e3",
  "labelingType": "labelingType_classification",
  "nerSettings": [
    {
      "title": "Город",
      "selectionColor": "#783f13",
      "showInDocList": true,
      "nerHint": "размечай обдумывая",
      "minLabelingCount": 10,
      "attributes": [
        {
          "title": "Тип",
          "classificationAction": "classificationAction_fromList",
          "optionsList": [
            "райцентр",
            "поселок",
            "деревня"
          ],
          "showInDocList": true
        }
      ],
      "subNers": [
        {
          "title": "Город",
          "selectionColor": "#783f13",
          "attributes": [
            {
              "title": "Тип",
              "classificationAction": "classificationAction_fromList",
              "optionsList": [
                "райцентр",
                "поселок",
                "деревня"
              ],
              "showInDocList": true
            },
            {
              "title": "Описание города",
              "classificationAction": "classificationAction_fromList",
              "maxLength": 250,
              "classificationHint": "описывайте тезисно, без фанатизма",
              "showInDocList": true
            }
          ]
        }
      ]
    },
    {
      "title": "Телефон",
      "selectionColor": "#8b10ad"
    }
  ],
  "classificationSettings": [
    {
      "title": "Город",
      "classificationAction": "classificationAction_fromList",
      "optionsList": [
        "Москва",
        "Казань",
        "Омск"
      ],
      "classificationHint": "Выбирайте правильно!",
      "minLabelingCount": 10,
      "showInDocList": true
    }
  ],
  "docsPerTask": 10,
  "markupSuggesters": [
    "userRole_expert",
    "userRole_marker"
  ]
}

На выходе ID созданного проекта

"db77be48-6ffb-4d8f-983a-c20411043e10"

Создание нового проекта. Подсущности подсущностей не обрабатываются текущей реализацией сервиса.

Имя команды для вызова: marker_createProject. Поддерживается асинхронный и синхронный вызов.

GetProject

На входе ID проекта

"db77be48-6ffb-4d8f-983a-c20411043e10"

На выходе свойства и перечень настроек проекта

{
  "id": "0a25b8ad-0734-4b6b-a1b7-5005db0cb813",
  "title": "Проект Пандора",
  "created": 1653305248400,
  "startDate": 1648114231,
  "endDate": 1648114231,
  "instruction": "Берешь и размечаешь, чего думать-то",
  "labelingType": "labelingType_classification",
  "projectStatus": "projectStatus_draft",
  "documentEntityType": "DocForbWpsVi-iTNSTHn7ZRzJYlQ",
  "nerSettings": [
    {
      "id": "nerField1",
      "projectIds": [
        "0a25b8ad-0734-4b6b-a1b7-5005db0cb813"
      ],
      "title": "Город",
      "selectionColor": "#783f13",
      "showInDocList": true,
      "nerHint": "размечай обдумывая",
      "minLabelingCount": 10,
      "attributes": [
        {
          "id": "nerField1_Attribute1",
          "projectIds": [
            "0a25b8ad-0734-4b6b-a1b7-5005db0cb813"
          ],
          "title": "Тип",
          "classificationAction": "classificationAction_fromList",
          "optionsList": [
            "райцентр",
            "поселок",
            "деревня"
          ],
          "showInDocList": true
        }
      ],
      "subNers": [
        {
          "id": "nerField1SubNer3",
          "projectIds": [
            "0a25b8ad-0734-4b6b-a1b7-5005db0cb813"
          ],
          "title": "Город",
          "selectionColor": "#783f13",
          "showInDocList": true,
          "nerHint": "размечай обдумывая",
          "minLabelingCount": 10,
          "attributes": [
            {
              "id": "nerField1SubNer3Attribute1",
              "projectIds": [
                "0a25b8ad-0734-4b6b-a1b7-5005db0cb813"
              ],
              "title": "Тип",
              "classificationAction": "classificationAction_fromList",
              "optionsList": [
                "райцентр",
                "поселок",
                "деревня"
              ],
              "showInDocList": true
            },
            {
              "id": "nerField1SubNer3Attribute2",
              "projectIds": [
                "0a25b8ad-0734-4b6b-a1b7-5005db0cb813"
              ],
              "title": "Описание города",
              "classificationAction": "classificationAction_fromList",
              "maxLength": 250,
              "classificationHint": "описывайте тезисно, без фанатизма",
              "showInDocList": true
            }
          ],
          "subNers": []
        }
      ]
    },
    {
      "id": "nerField2",
      "projectIds": [
        "0a25b8ad-0734-4b6b-a1b7-5005db0cb813"
      ],
      "title": "Телефон",
      "selectionColor": "#8b10ad",
      "attributes": []
    }
  ],
  "classificationSettings": [
    {
      "id": "classificationField1",
      "projectIds": [
        "0a25b8ad-0734-4b6b-a1b7-5005db0cb813"
      ],
      "title": "Город",
      "classificationAction": "classificationAction_fromList",
      "optionsList": [
        "Москва",
        "Казань",
        "Омск"
      ],
      "classificationHint": "Выбирайте правильно!",
      "minLabelingCount": 10,
      "showInDocList": true
    }
  ],
  "version": 1,
  "docsPerTask": 10,
  "markupSuggesters": [
    "userRole_expert",
    "userRole_observer"
  ]
}

Или ошибка, если проект отсутствует

{
  "businessError": null,
  "message": "ERROR: Object not found",
  "stackTrace": null,
  "data": null
}

Получение проекта по ID

Имя команды для вызова: marker_getProject. Поддерживается только синхронный вызов.

UpdateProject

На входе свойства обновляемого объекта, включая ID и версию

{
  "id": "662d697d-c037-474e-8f18-5736f992f7ff",
  "version": 2,
  "title": "Проект Пандора",
  "startDate": 1648114231,
  "endDate": 1648114231,
  "instruction": "Берешь и размечаешь, чего думать-то",
  "instructionUrl": "temp/e3e3e3e3-e3e3-e3e3-e3e3-e3e3e3e3e3e3",
  "labelingType": "labelingType_ner",
  "nerSettings": [
    {
      "title": "Город",
      "selectionColor": "#8b10ad",
      "showInDocList": true,
      "nerHint": "размечай обдумывая",
      "minLabelingCount": 10,
      "attributes": [
        {
          "title": "Тип",
          "classificationAction": "classificationAction_fromList",
          "optionsList": [
            "столица",
            "райцентр",
            "поселок",
            "деревня"
          ],
          "showInDocList": true,
          "minLabelingCount": 10
        }
      ],
      "subNers": [
        {
          "title": "Город",
          "selectionColor": "#783f13",
          "showInDocList": true,
          "nerHint": "размечай обдумывая",
          "minLabelingCount": 10,
          "attributes": [
            {
              "title": "Тип",
              "classificationAction": "classificationAction_fromList",
              "optionsList": [
                "райцентр",
                "поселок",
                "деревня"
              ],
              "showInDocList": true
            },
            {
              "title": "Описание города",
              "classificationAction": "classificationAction_fromList",
              "maxLength": 250,
              "classificationHint": "описывайте тезисно, без фанатизма",
              "showInDocList": true
            }
          ]
        }
      ]
    }
  ],
  "docsPerTask": 10,
  "markupSuggesters": [
    "userRole_expert",
    "userRole_observer"
  ]
}

На выходе признак успешности

true

Или ошибка, если проект отсутствует

{
  "businessError": null,
  "message": "ERROR: Object not found",
  "stackTrace": null,
  "data": null
}

Или ошибка, если проект был обновлен из другого места

{
  "businessError": null,
  "message": "ERROR: Object version is not actual (Optimistic Lock)",
  "stackTrace": null,
  "data": null
}

Обновление проекта. Подсущности подсущностей не обрабатываются текущей реализацией сервиса.

Имя команды для вызова: marker_updateProject. Поддерживается асинхронный и синхронный вызов.

UpdateProjectStatus

На входе новый статус проекта, а также его ID и версия

{
  "id": "db77be48-6ffb-4d8f-983a-c20411043e10",
  "projectStatus": "projectStatus_draft",
  "version": 2
}

На выходе признак успешности

true

Или ошибка, если проект отсутствует

{
  "businessError": null,
  "message": "ERROR: Object not found",
  "stackTrace": null,
  "data": null
}

Или ошибка, если проект был обновлен из другого места

{
  "businessError": null,
  "message": "ERROR: Object version is not actual (Optimistic Lock)",
  "stackTrace": null,
  "data": null
}

Обновление статуса проекта

Имя команды для вызова: marker_updateProjectStatus. Поддерживается асинхронный и синхронный вызов.

DeleteProject

На входе ID проекта

"db77be48-6ffb-4d8f-983a-c20411043e10"

На выходе результат удаления

true

Или ошибка, если проект отсутствует

{
  "businessError": null,
  "message": "ERROR: Object not found",
  "stackTrace": null,
  "data": null
}

Удаление проекта по ID

Имя команды для вызова: marker_deleteProject. Поддерживается асинхронный и синхронный вызов.

AddFilesToProject

На входе ID проекта и ID файлов

{
  "projectId": "db77be48-6ffb-4d8f-983a-c20411043e10",
  "fileIds": [
    "f11614f5-0c78-4408-84a9-a1e68aac6dca",
    "24aff3d7-200b-4b1b-b70e-8e9e19a519a0"
  ]
}

На выходе ссылки для скачивания добавленных файлов

[
  "temp/5192b9e8-8b67-4cba-b6b0-6317d4d5863c",
  "temp/1cf4fd4b-f33a-4c0f-be0e-5f9ea65bcbf9"
]

Или ошибка, если проекта с указанным ID нет

{
  "businessError": null,
  "message": "ERROR: Object not found",
  "stackTrace": null,
  "data": null
}

Добавление указанных файлов в проект

Имя команды для вызова: marker_addFilesToProject. Поддерживается асинхронный и синхронный вызов.

GetDocument

На входе ID проекта и документа этого проекта

{
  "projectId": "c187a081-87aa-4962-bcfb-3d02de66aee4",
  "documentId": "24330347-d7e6-4ad0-b153-a299e04612d2"
}

На выходе искомый документ

{
  "id": "24330347-d7e6-4ad0-b153-a299e04612d2",
  "projectId": "c187a081-87aa-4962-bcfb-3d02de66aee4",
  "title": "TestDoc.pdf",
  "created": 1649146493990,
  "entityType": "wYeggYeqSWK8-wAAPQLeZg",
  "data": {
    "file": [
      {
        "fileId": "545828dd-7b6a-40e3-b9b3-317eb52b4c71",
        "name": "TestDoc.pdf",
        "extension": "pdf",
        "size": 1025,
        "url": "datamodel/545828dd-7b6a-40e3-b9b3-317eb52b4c71",
        "additional": {},
        "created": 0,
        "modified": 0,
        "md5": "D41D8CD98F00B204E9800998ECF8427E"
      }
    ],
    "name": "TestDoc.pdf",
    "path": "/docs/TestDoc.pdf",
    "created": 1649146493990,
    "modified": 1649146493990,
    "owner": "IvanovII"
  }
}

Или ошибка, если проект отсутствует

{
  "businessError": null,
  "message": "ERROR: Object not found",
  "stackTrace": null,
  "data": null
}

Получение документа определенного проекта по их ID.

Имя команды для вызова: marker_getDocument. Поддерживается только синхронный вызов.

ListProjectDocuments

На входе ID проекта и параметры поиска

{
  "projectId": "c187a081-87aa-4962-bcfb-3d02de66aee4",
  "search": {
    "query": "",
    "context": {},
    "sorting": null,
    "paging": null
  }
}

На выходе перечень документов по страницам

{
  "items": [
    {
      "id": "24330347-d7e6-4ad0-b153-a299e04612d2",
      "projectId": "c187a081-87aa-4962-bcfb-3d02de66aee4",
      "title": "TestDoc.pdf",
      "created": 1649146493990,
      "data": {
        "file": [
          {
            "fileId": "545828dd-7b6a-40e3-b9b3-317eb52b4c71",
            "name": "TestDoc.pdf",
            "extension": "pdf",
            "size": 1025,
            "url": "datamodel/545828dd-7b6a-40e3-b9b3-317eb52b4c71",
            "additional": {},
            "created": 0,
            "modified": 0,
            "md5": "D41D8CD98F00B204E9800998ECF8427E"
          }
        ],
        "name": "TestDoc.pdf",
        "path": "/docs/TestDoc.pdf",
        "created": 1649146493990,
        "modified": 1649146493990,
        "owner": "IvanovII",
        "entityType": "wYeggYeqSWK8-wAAPQLeZg"
      }
    }
  ],
  "total": 5
}

Получение документов проекта.

Имя команды для вызова: marker_listProjectDocuments. Поддерживается только синхронный вызов.

CreateTasks

На входе параметры создания задач

{
  "title": null,
  "markerId": "10000000-0000-0000-0000-000000000001",
  "expertId": "20000000-0000-0000-0000-000000000001",
  "projectId": "ee07097c-af39-46f0-9d1b-02583a8ffabe",
  "documentIds": [
    "d4fac3a8-d30c-43ea-a201-963bb51f6584",
    "d01eaa30-5b4b-47ec-8f97-42a5425ede8f"
  ]
}

На выходе количество созданных задач

4

Команда для массового создания задач. Если указан title - он присваивается всем созданным задачам в качестве названия. Если нет - каждой задаче присваивается название в соответствии с названием файла документа.

Имя команды для вызова: marker_createTasks. Поддерживается асинхронный и синхронный вызов.

DeleteTasks

На входе список Id задач.

[
  "00044c27-c46c-403e-82e7-8983353c5b70",
  "00044c27-c46c-403e-82e7-8983353c5b71"
]

На выходе количество удаленных задач

2

Команда для массового удаления задач.

Имя команды для вызова: marker_deleteTasks. Поддерживается асинхронный и синхронный вызов.

UpdateTasks

На входе параметры обновления задач

[
  {
    "id": "00044c27-c46c-403e-82e7-8983353c5b70",
    "title": "Slide 1.pptx",
    "status": "projectTaskStatus_draft",
    "markerId": "10000000-0000-0000-0000-000000000001",
    "expertId": "20000000-0000-0000-0000-000000000001",
    "version": 1
  }
]

На выходе количество обновленных задач

1

Команда для массового обновления задач.

Имя команды для вызова: marker_updateTasks. Поддерживается асинхронный и синхронный вызов.

ListTasks

На входе параметры пагинации

{
  "page": 1,
  "count": 1
}

На выходе список задач по страницам

{
  "items": [
    {
      "id": "00044c27-c46c-403e-82e7-8983353c5b70",
      "title": "Slide 1.pptx",
      "projectId": "cae17fa7-84fc-485a-995d-8127078c5fda",
      "documentId": "23519541-dd7d-4dff-8b61-216aa1580948",
      "skipReason": null,
      "skipDate": null,
      "created": 1695188446555,
      "modified": 1695188446555,
      "createdBy": "00000000-0000-0000-0000-000000000000",
      "modifiedBy": "00000000-0000-0000-0000-000000000000",
      "status": "projectTaskStatus_draft",
      "markerId": null,
      "expertId": null,
      "version": 1
    }
  ],
  "total": 16
}

Получить список всех задач.

Имя команды для вызова: marker_listTasks. Поддерживается только синхронный вызов.

ListProjectTasksForUser

На входе параметры поиска

{
  "query": "",
  "context": {},
  "sorting": null,
  "paging": null
}

На выходе перечень задач по страницам

{
  "items": [
    {
      "id": "24330347-d7e6-4ad0-b153-a299e04612d2",
      "projectId": "c187a081-87aa-4962-bcfb-3d02de66aee4",
      "title": "TestDoc.pdf",
      "created": 1649146493990,
      "createdBy": "d7e6d7e6-d7e6-d7e6-d7e6-d7e6d7e6d7e6",
      "modified": 1649146493990,
      "modifiedBy": "d7e6d7e6-d7e6-d7e6-d7e6-d7e6d7e6d7e6",
      "status": "projectTaskStatus_draft",
      "documentId": "24330347-d7e6-4ad0-b153-a299e04612d2",
      "skipReason": "Document not valid",
      "skipDate": 1649146493990,
      "ner": {
        "data": {
          "nerField1": [
            {
              "start": 54,
              "length": 10
            },
            {
              "start": 1976,
              "length": 10
            }
          ]
        },
        "version": 4
      }
    }
  ],
  "total": 5
}

Получение задач проекта (для текущего пользователя).

Запрос принимает параметры сортировки, фильтров и пейджинга в параметре Search. Применяется к полям модели Task. Доступные поля для фильтрации и виды фильтров по ним:

Поле Виды фильтров Комментарии
id InSetQuery, LikeQuery
title InSetQuery, LikeQuery
markerId InSetQuery, LikeQuery
expertId InSetQuery, LikeQuery
documentId InSetQuery, LikeQuery
status InSetQuery, LikeQuery
data.status InSetQuery, LikeQuery
projectId InSetQuery

Доступные поля для сортировки:

Поле Примечание
created По умолчанию
id

Имя команды для вызова: marker_listProjectTasksForUser. Поддерживается только синхронный вызов.

ListProjectTasks

На входе параметры поиска

{
  "query": "",
  "context": {},
  "sorting": null,
  "paging": null
}

На выходе перечень сокращённых задач по страницам

{
  "items": [
    {
      "taskId": "15b52661-4ca3-4ce7-bf20-05cd14c68dee",
      "projectId": "f999d516-0107-4d86-85aa-c2c4a45a981d",
      "title": "Таких пользователей нет в проекте",
      "status": "projectTaskStatus_draft",
      "markerUserInfo": {
        "id": "4fcbcc75-35a8-48ad-8c90-2e72764f016c",
        "email": "admin02@embedika.ru",
        "info": {
          "firstName": "Имя",
          "lastName": "Фамилия",
          "middleName": "Отчество"
        }
      },
      "expertUserInfo": {
        "id": "eaf08f3f-d074-4c7d-82e1-2b65d88621e4",
        "email": "admin01@embedika.ru",
        "info": {
          "firstName": "Тест",
          "lastName": "",
          "middleName": "Тестович"
        }
      },
      "authorUserInfo": {
        "id": "eaf08f3f-d074-4c7d-82e1-2b65d88621e4",
        "email": "admin01@embedika.ru",
        "info": {
          "firstName": "Тест",
          "lastName": "",
          "middleName": "Тестович"
        }
      },
      "documentId": "f999d516-0107-4d86-85aa-c2c4a45a981d"
    }
  ],
  "total": 27
}

Получение списка сокращённой информации по задачам проекта.

Запрос принимает параметры сортировки, фильтров и пейджинга в параметре Search. Все параметры точно такие же, как и в marker_listProjectTasks

Имя команды для вызова: marker_listProjectTasks. Поддерживается только синхронный вызов.

GetTaskPositionInProject

На входе ID проекта и задачи и параметры поиска

{
  "projectId": "c187a081-87aa-4962-bcfb-3d02de66aee4",
  "taskId": "24330347-d7e6-4ad0-b153-a299e04612d2",
  "search": {
    "query": "",
    "context": {}
  }
}

На выходе позиция задачи среди всех найденных (в соответствии с поисковым запросом)

{
  "position": 1,
  "total": 5
}

Получение позиции задачи в отфильтрованном и отсортированном списке.

Имя команды для вызова: marker_getTaskPositionInProject. Поддерживается только синхронный вызов.

ListProjects

На входе параметры поиска и пагинации проектов (Search)

{
  "query": "",
  "context": {},
  "paging": {
    "page": 1,
    "count": 5
  }
}

На выходе свойства проектов

{
  "items": [
    {
      "id": "9bc7e8c6-f71c-4a53-abc6-222a8a431e84",
      "title": "Test Classification",
      "created": 1649847357350,
      "startDate": 1649146493990,
      "endDate": 1649146493990,
      "labelingType": "labelingType_classification",
      "projectStatus": "projectStatus_draft",
      "version": 1,
      "documentsTotal": 5,
      "participantsTotal": 10
    }
  ],
  "total": 1
}

Получение списка проектов

Имя команды для вызова: marker_listProjects. Поддерживается только синхронный вызов.

LabelDocument

На входе ID задачи на разметку документа, версия разметки и новая разметка

{
  "projectId": "1879aa41-10d9-4ae5-89a6-aeeff005b345",
  "taskId": "3c6a450e-bbce-442c-905e-8108ed8c5a05",
  "ner": {
    "nerField1": [
      {
        "fragment": "Fragment of text",
        "start": 250,
        "end": 266,
        "created": 1234124321432,
        "byExpert": true,
        "uncertain": false,
        "segments": [
          {
            "start": 250,
            "end": 257
          },
          {
            "start": 262,
            "end": 266
          }
        ],
        "nerField1Attribute1": "Attribute value",
        "nerField1Attribute3": [
          "Attribute value"
        ],
        "nerField1SubNer1": [
          {
            "fragment": "Fragment of text",
            "start": 255,
            "end": 260,
            "created": 12341243223432
          }
        ],
        "nerField1SubNer2": []
      }
    ],
    "nerField2": []
  },
  "version": 5
}

На выходе новая версия разметки

6

Обновление разметки документа

Имя команды для вызова: marker_labelDocument. Поддерживается асинхронный и синхронный вызов.

CommitTask

На входе ID проекта и задачи

{
  "projectId": "1879aa41-10d9-4ae5-89a6-aeeff005b345",
  "taskId": "3c6a450e-bbce-442c-905e-8108ed8c5a05"
}

На выходе результат

true

Сохранение окончательного варианта разметки (перевод в статус "Завершенный")

Имя команды для вызова: marker_commitTask. Поддерживается асинхронный и синхронный вызов.

SkipTask

На входе ID проекта, ID задачи и причина пропуска

{
  "projectId": "1879aa41-10d9-4ae5-89a6-aeeff005b345",
  "taskId": "3c6a450e-bbce-442c-905e-8108ed8c5a05",
  "reason": "I'm too tired"
}

На выходе результат

true

Пропуск задачи на разметку документа. Удаляет существующую разметку.

Имя команды для вызова: marker_skipTask. Поддерживается асинхронный и синхронный вызов.

ReturnTaskToWork

На входе ID проекта и задачи

{
  "projectId": "1879aa41-10d9-4ae5-89a6-aeeff005b345",
  "taskId": "3c6a450e-bbce-442c-905e-8108ed8c5a05"
}

На выходе результат

true

Вернуть задание в работу.

Имя команды для вызова: marker_returnTaskToWork. Поддерживается асинхронный и синхронный вызов.

ReturnTaskToDraft

На входе ID проекта и задачи

{
  "projectId": "1879aa41-10d9-4ae5-89a6-aeeff005b345",
  "taskId": "3c6a450e-bbce-442c-905e-8108ed8c5a05"
}

На выходе результат

true

Вернуть задание в необработанные.

Имя команды для вызова: marker_returnTaskToDraft. Поддерживается асинхронный и синхронный вызов.

ReturnTaskForLabeling

На входе ID проекта и задачи эксперта

{
  "projectId": "1879aa41-10d9-4ae5-89a6-aeeff005b345",
  "taskId": "717ef405-b19e-45f0-8198-d0f2b896fd52"
}

На выходе результат

true

Вернуть задание от эксперта на доработку разметчику. При этом задание эксперта и связанное с ним задание разметчика переходят в состояние "Необработанный". Также при этом разметка от эксперта копируется разметчику на случай, если эксперт внес какие-нибудь изменения.

Если команда вызывается для таски разметчика, а не эксперта, команда вернет false (ничего не произошло полезного). Команда возвращает true, когда успешно проведена вся операция по копированию и смене статусов.

Команда принимает на вход только таску эксперта в состоянии "В работе". В противном случае возвращается ошибка.

Имя команды для вызова: marker_returnTaskForLabeling. Поддерживается асинхронный и синхронный вызов.

ListDocumentAssessors

На входе ID проекта и его документов

{
  "projectId": "1879aa41-10d9-4ae5-89a6-aeeff005b345",
  "documents": [
    "3c6a450e-bbce-442c-905e-8108ed8c5a05",
    "294146d9-ed05-4251-b34f-2192d4e83f05"
  ]
}

На выходе результат

{
  "documentUsers": [
    {
      "documentId": "3c6a450e-bbce-442c-905e-8108ed8c5a05",
      "assessors": [
        {
          "status": "projectTaskStatus_draft",
          "users": [
            {
              "id": "4324bf49-e556-4058-ba5a-ccdc02199f79",
              "modified": 1651234477
            },
            {
              "id": "17f41b3b-100b-492e-a17d-4c6ea60d21ed",
              "modified": 1651234477
            }
          ]
        },
        {
          "status": "projectTaskStatus_draft",
          "users": [
            {
              "id": "9e89421b-bfb6-40f8-bcc6-833aeb2bd676",
              "modified": 1651234477
            }
          ]
        }
      ]
    },
    {
      "documentId": "294146d9-ed05-4251-b34f-2192d4e83f05",
      "assessors": [
        {
          "status": "projectTaskStatus_draft",
          "users": [
          ]
        },
        {
          "status": "projectTaskStatus_draft",
          "users": [
            {
              "id": "4fcd63d6-db92-4d5b-93c6-bb78e4a59656",
              "modified": 1651234477
            },
            {
              "id": "9e89421b-bfb6-40f8-bcc6-833aeb2bd676",
              "modified": 1651234477
            }
          ]
        }
      ]
    }
  ]
}

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

Имя команды для вызова: marker_listDocumentAssessors. Поддерживается асинхронный и синхронный вызов.

AddUsersToProject

На входе Id проекта, роли и пользователей

{
  "projectId": "b2993663-8dd4-435d-b14d-a1cf18a4ddae",
  "role": "userRole_marker",
  "userIds": [
    "4eb15e5a-f388-4e85-9b35-cc025e784249"
  ]
}

На выходе признак успешного выполнения команды

true

Добавляет пользователeй в проект, устанавливая им роль.

Имя команды для вызова: marker_addUsersToProject. Поддерживается асинхронный и синхронный вызов.

DeleteUsersFromProject

На входе Id проекта, пользователя

{
  "projectId": "b2993663-8dd4-435d-b14d-a1cf18a4ddae",
  "userIds": [
    "4eb15e5a-f388-4e85-9b35-cc025e784249"
  ]
}

На выходе признак успешного выполнения команды

true

Удаляет пользователя из проекта.

Имя команды для вызова: marker_deleteUsersFromProject. Поддерживается асинхронный и синхронный вызов.

ListProjectsForUsers

На входе список Id пользователей, для которых нужна информация

[
  "022b1185-c0cd-4c7b-87b5-0dc35c430a76",
  "b42d0857-1128-44af-b876-bec33f028326",
  "a62cc9e4-2ca1-40f4-98e9-d0c189b9c731",
  "f57143ef-c129-4500-8e2e-97db93bd0c1b"
]

На выходе информация о проектах пользователей

[
  {
    "userId": "022b1185-c0cd-4c7b-87b5-0dc35c430a76",
    "projects": [
      {
        "projectId": "8af0fcbe-4b95-4b06-afb3-b77b4a3e1200",
        "role": "userRole_marker",
        "addedToProject": 1651234477
      }
    ]
  }
]

Для заданного списка пользователей возвращает информацию о проектах.

Имя команды для вызова: marker_listProjectsForUsers. Поддерживается только синхронный вызов.

ExportLabeling

На входе объект с Id проекта

{
  "projectId": "5f10f6e2-7127-4989-9dda-b69c685880ec",
  "nerSettingIds": [
    "nerField2",
    "a101"
  ],
  "format": "jsonl"
}

На выходе url файла с результатом экспорта

"labeling/1cf14222-3d28-4584-a02c-60113f6d7031"

Пример элемента выходного файла (здесь приведен с форматированием для читаемости; в файле представлен в одну строку)

{
  "nerField2": [
    {
      "fragment": "ой почте с адреса: butyaevaia@sibur.ru, gataullinish@sibur.ru,\r\nnasonovsn@sibur.ru направляет Подрядчику на электронный адрес volgazp@gmail.com Заявку\r\nна выполнение землеустроительных и (или) кадастровых работ, являющуюся неотъемлемой\r\nчастью настоящего Договора (далее – Заявка), в которой указывает состав, содержание,\r\nстоимость, срок начала и окончания выполнения работ, промежуточные сроки выполнения\r\nработ (если работы выполняются поэтапно), перечень документации, предоставляемой\r\nПодрядчиком Заказчику по результатам выполнения работ, иные условия проведения работ.\r\nФорма Заявки приведена в Приложении № 2 к настоящему Договору.\r\n2.2.Заявка Заказчика считается акцептованной Подрядчиком, если в течение 2-х (Двух)\r\nрабочих дней с момента ее направления Заказчиком по электронной почте Подрядчик не\r\nнаправит Заказчику возражений относительно данной Заявки.\r\n2.3.Заявка является предложением Заказчика Подрядчику и офертой в смысле статьи 435\r\nГражданского Кодекса РФ.\r\n2.4.Стороны настоящим признают, что:\r\nЗаявка и отзыв Заявки могут быть подписаны собственноручной или электронной\r\nподписью (неквалифицированной электронной подписью) и направляются Сторонами в виде\r\nскан-образа формата PDF по электронной почте, который является электронным документом,\r\nравнозначным документу на бумажном носителе, подписанному собственноручной подписью.\r\nЗаявка и отзыв Заявки, направленные способом, предусмотренным в настоящем пункте,\r\nсчитаются надлежащим образом направленными и имеют юридическую силу.\r\n2.5.Заказчик вправе в любое время отозвать Заявку, при э",
      "start": 982,
      "end": 2544,
      "created": 1699592041197,
      "byExpert": null,
      "uncertain": null,
      "userId": "7e498091-f9d2-4573-bc7a-857000d22073",
      "segments": []
    }
  ],
  "documentId": "ec8a361d-cd51-4edb-8de4-94df8ad59f32",
  "documentUrl": null,
  "extractedTextUrl": null
}

Генерирует выгрузку разметки по проекту. На выходе выдает файл в формате JSON Lines(где каждая строка имеет формат ExportLabelingItem) или Csv(формат documentId,entityCode,fragment)

Имя команды для вызова: marker_exportLabeling. Поддерживается асинхронный и синхронный вызов.

ListTaskWithFragment

На входе Id проекта, название поля, Search объект

{
  "projectId": "f41d1d65-6530-40b8-b601-43be45d3f195",
  "field": "nerField1",
  "search": {
    "query": "",
    "context": {},
    "sorting": null,
    "paging": {
      "page": 1,
      "count": 1
    }
  }
}

На выходе данные по соответствующим задачами

{
  "total": 300,
  "items": [
    {
      "id": "6a0559e5-0ce6-4a7a-8046-732e3cb010d7",
      "projectId": "4486145d-e3d6-4d9a-9e7d-c27f54c2cf17",
      "taskId": "1cb3e56e-580a-4651-927b-e33068060c6f",
      "status": "8a7dabaa-da2c-4b8a-85ff-b7a70e0c71ab",
      "fragments": [
        {
          "created": 1668083991767,
          "fragment": "Политика определяет основные подходы к организации страхования рисков\r\nОАО «Газпром нефть» и ее ДЗО (далее - группы компаний ГПН)",
          "attributes": [
            {
              "key": "Ненужный атрибут для тестов",
              "value": "ппшашнломащ78"
            }
          ],
          "subNer": [
            {
              "title": "Месяц",
              "fragments": [
                {
                  "created": 1668083991767,
                  "fragment": "ром нефть» и ее ДЗО",
                  "attributes": [],
                  "subNer": []
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Возвращает разметку документов из указанного проекта, содержащие указанную сущность. Если в проекте нет экспертов, команда вернет разметку разметчиков Если в проекте есть эксперты, то будет возвращена только разметка экспертов

Запрос принимает параметры сортировки, фильтров и пейджинга в параметре Search. Применяется к полям модели Task. Доступные поля для фильтрации и виды фильтров по ним:

Поле Виды фильтров Комментарии
taskId InSetQuery, LikeQuery По id
title InSetQuery, LikeQuery
markerId InSetQuery, LikeQuery
expertId InSetQuery, LikeQuery
documentid InSetQuery, LikeQuery
status InSetQuery, LikeQuery
data.status InSetQuery, LikeQuery

Сортировка выполняется всегда по полю modified модели Labeling.

Имя команды для вызова: marker_listTaskWithFragment. Поддерживается только синхронный вызов.

ListSettingsByField

На входе поле настроек

"nerField1"

На выходе настройки с данным полем

[
  {
    "id": "nerField1",
    "title": "Животное",
    "projectId": "b0d79c75-82be-4b4d-893e-55f995455e3e"
  },
  {
    "id": "nerField1",
    "title": "Тех. задание",
    "projectId": "b0d79c75-82be-4b4d-893e-55f995455e3e"
  }
]

Возвращает список настроек (NerSetting и ClassificationSetting) в обобщенном виде с запрошенным полем (кодом).

Имя команды для вызова: marker_listSettingsByField. Поддерживается только синхронный вызов.

ListCompletedLabelings

На входе пагинация

{
  "page": 1,
  "count": 10
}

На выходе список разметок

{
  "items": [
    {
      "id": "f41d1d65-6530-40b8-b601-43be45d3f195",
      "projectId": "f41d1d65-6530-40b8-b601-43be45d3f195",
      "userId": "f41d1d65-6530-40b8-b601-43be45d3f195",
      "created": 1668083991767,
      "modified": 1668083991767,
      "data": {
        "nerField1": []
      },
      "version": 1
    }
  ],
  "total": 10
}

Возвращает список разметок в статусе 'Завершено'. Имя команды для вызова: marker_listCompletedLabelings

ListAllNerSettings

На входе search-объект

{
  "query": "",
  "context": {},
  "sorting": {
    "fieldName": "title",
    "order": "asc"
  },
  "paging": {
    "page": 1,
    "count": 1
  }
}

На выходе список всех уникальных настроек выделения сущностей

{
  "items": [
    {
      "id": "testNerField",
      "projectIds": [
        "9ebbd15c-2be8-4055-a8ed-5d457b36e12c"
      ],
      "title": "Тестовая сущность",
      "selectionColor": "#000000",
      "showInDocList": true,
      "attributes": [],
      "subNers": [
        {
          "id": "testSubNerField",
          "projectIds": [
            "9ebbd15c-2be8-4055-a8ed-5d457b36e12c"
          ],
          "title": "Тестовая подсущность",
          "selectionColor": "#101010",
          "showInDocList": false,
          "attributes": [],
          "subNers": []
        }
      ]
    }
  ],
  "total": 10
}

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

Доступные поля для фильтрации и виды фильтров по ним:

Поле Виды фильтров
id InSetQuery, LikeQuery
title InSetQuery, LikeQuery

Доступные поля для сортировки:

Если поле sorting отсутствует, то список сортируется по дате создания настройки в порядке возрастания

ListAllClassificationSettings

На входе search-объект

{
  "query": "",
  "context": {},
  "sorting": {
    "fieldName": "title",
    "order": "asc"
  },
  "paging": {
    "page": 1,
    "count": 1
  }
}

На выходе список всех уникальных настроек классификации

{
  "items": [
    {
      "id": "testClass",
      "projectIds": [
        "0201a55f-50e3-45de-acdb-86e294e3ec8d"
      ],
      "title": "Тестовая классификация",
      "classificationAction": "classificationAction_fromList4",
      "optionsList": [
        "раз",
        "два",
        "три"
      ],
      "showInDocList": true
    }
  ],
  "total": 10
}

Возвращает список уникальных настроек классификации по всем проектам, не копированных ниоткуда. Уникальность определяется по признаку копирования. Имя команды для вызова: marker_listAllClassificationSettings. Поддерживается только синхронный вызов.

Доступные поля для фильтрации и виды фильтров по ним:

Поле Виды фильтров
id InSetQuery, LikeQuery
title InSetQuery, LikeQuery

Доступные поля для сортировки:

Если поле sorting отсутствует, то список сортируется по дате создания настройки в порядке возрастания

GetTask

На входе ID проекта и задачи

{
  "projectId": "c187a081-87aa-4962-bcfb-3d02de66aee4",
  "taskId": "24330347-d7e6-4ad0-b153-a299e04612d2"
}

На выходе список всех уникальных настроек классификации

{
  "id": "24330347-d7e6-4ad0-b153-a299e04612d2",
  "projectId": "c187a081-87aa-4962-bcfb-3d02de66aee4",
  "title": "TestDoc.pdf",
  "created": 1649146493990,
  "status": "projectTaskStatus_draft",
  "documentId": "24330347-d7e6-4ad0-b153-a299e04612d2",
  "skipReason": "Document not valid",
  "skipDate": 1649146493990,
  "ner": {
    "data": {
      "nerField1": [
        {
          "start": 54,
          "length": 10
        },
        {
          "start": 1976,
          "length": 10
        }
      ]
    },
    "version": 4
  },
  "checkingTask": "2408012d-4f06-442d-b7ac-c3221fdbdcd5"
}

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

ImportRndLabeling

На входе идентификатор файла во временном бакете и параметры импорта

{
  "fileId": "d0cd48f3-8c9e-4c47-a640-83d2d1e4871c",
  "include": {
    "fields": [
      "UnilateralChange"
    ],
    "docIds": [
      "24793790-787e-4865-94b0-8eeb5b37db37"
    ]
  },
  "exclude": {}
}

Предполагаемый формат файла:

{"docId": "356be847-b5c5-459a-9315-5cb2596a7e31", "start": 32128, "end": 32575, "entityType": "UnilateralChange", "text": "коротки хитрый текст"}
{"docId": "b326453e-128c-4ae3-a50b-3f8510b7b6a5", "start": 32129, "end": 32577, "entityType": "UnilateralChange", "text": "хитрый странный очень текст побольше"}
{"docId": "b326453e-128c-4ae3-a50b-3f8510b7b6a5", "start": 32578, "end": 32983, "entityType": "UnilateralChange", "text": "еще один очень хитрый текст"}

На выходе количество измененных версий разметки (Labeling)

9

Загружает в систему разметку в формате RnD. Имя команды для вызова: marker_importRndLabeling. Поддерживается синхронный и асинхронный вызов.

RemoveRndLabeling

На входе параметры для удаления

{
  "include": {
    "nerSettingIds": [
      "ArbitrationClause"
    ]
  },
  "exclude": {
    "docIds": [
      "24793790-787e-4865-94b0-8eeb5b37db37"
    ]
  }
}

На выходе количество измененных версий разметки (Labeling)

3620

Удаляет из системы разметку, загруженную в формате RnD. Имя команды для вызова: marker_removeRndLabeling. Поддерживается синхронный и асинхронный вызов.

StartLearning

На входе проект и список кодов сущностей для обучения

{
  "projectId": "238837d3-54fe-4685-ae73-48728b93ea0a",
  "nerSettingIds": [
    "Limited",
    "Unlimited"
  ]
}

На выходе количество запущенных обучений (Learning)

2

Запускает обучение в сервисе обучения ML-моделей (/train)

Имя команды для вызова: marker_startLearning. Поддерживается синхронный и асинхронный вызов.

StopLearning

На входе проект

"238837d3-54fe-4685-ae73-48728b93ea0a"

На выходе ничего

{}

Запускает soft restart в сервисе обучения ML-моделей (/soft_restart)

Имя команды для вызова: marker_stopLearning. Поддерживается синхронный и асинхронный вызов.

ListLearnings

На входе параметры поиска, сортировки и пагинации (Search)

{
  "query": "",
  "context": {},
  "sorting": null,
  "paging": {
    "page": 1,
    "count": 1
  }
}

На выходе список обучений (Learning) по страницам

{
  "items": [
    {
      "nerSetting": {
        "id": "Limited",
        "title": "Ограниченная ответственность",
        "projectIds": [
          "5b950949-05b1-439a-a864-94a19e46c453"
        ]
      },
      "learningItems": [
        {
          "project": {
            "id": "5b950949-05b1-439a-a864-94a19e46c453",
            "title": "Проект",
            "created": 1711734922172,
            "startDate": 1648114231,
            "endDate": 1648114231,
            "labelingType": "labelingType_ner",
            "projectStatus": "projectStatus_draft",
            "version": 1,
            "tasksTotal": 0,
            "documentsTotal": 0,
            "participantsTotal": 0
          },
          "learning": {
            "nerSettingId": "Limited",
            "projectId": "5b950949-05b1-439a-a864-94a19e46c453",
            "status": "Draft",
            "error": null,
            "labelingId": null,
            "modelId": null,
            "metricsId": null,
            "created": 1711734923053,
            "createdBy": "eaf08f3f-d074-4c7d-82e1-2b65d88621e4",
            "modified": 1711734923053,
            "modifiedBy": "eaf08f3f-d074-4c7d-82e1-2b65d88621e4",
            "version": 1
          }
        }
      ]
    }
  ],
  "total": 15
}

Перечень обучений, сгруппированный по сущностям. Для сущностей, не добавленных ни в один проект, придет: "learningItems": [].

Имя команды для вызова: marker_listLearnings. Поддерживается синхронный и асинхронный вызов.

Доступные поля для фильтрации и виды фильтров по ним:

Поле Виды фильтров
nerSetting.id InSetQuery, LikeQuery
nerSetting.title InSetQuery, LikeQuery
project.id InSetQuery, LikeQuery
project.title InSetQuery, LikeQuery

Доступные поля для сортировки (обучения у каждой сущности расположены всегда в порядке убывания modified - последннее запущенное обучение сверху):

Поле Примечание
nerSetting.created По умолчанию - по убыванию
nerSetting.title

GetProjectFields

На входе Search объект (поддерживается только пагинация)

{
   "query": "",
   "context": {},
   "paging": {
      "page": 1,
      "count": 10
   }
}

На выходе статистика по спанам проекта

{
   "items": [
      {
         "id": "db77be48-6ffb-4d8f-983a-c20411043e10",
         "title":  "Проект 1",
         "startDate": 1649146493990,
         "endDate": 1649146493990,
         "projectStatus": "db77be48-6ffb-4d8f-983a-c20411043e10",
         "labelingType": "db77be48-6ffb-4d8f-983a-c20411043e10",
         "taskCount": 10,
         "nerSettings": [
            {
               "field": "nerField1",
               "title": "Город",
               "selectionColor": "#783f13",
               "showInDocList": true,
               "nerHint": "размечай обдумывая",
               "minLabelingCount": 10,
               "attributes": [],
               "subNers": [
                  {
                     "field": "nerField1SubNer3",
                     "title": "Город",
                     "selectionColor": "#783f13",
                     "showInDocList": true,
                     "nerHint": "размечай обдумывая",
                     "minLabelingCount": 10,
                     "subNers": []
                  }
               ]
            }
         ],
        "spanCounts": [
           {
              "field": "nerField1",
              "count": 3
           }
        ]
      }
   ],
   "total": 1
}

Получение статистики по спанам проекта

Имя команды для вызова: marker_getProjectFields. Поддерживается только синхронный вызов.

GetProjectStatistics

На входе ID проекта

"db77be48-6ffb-4d8f-983a-c20411043e10"

На выходе свойства и статистика проекта

{
  "id": "db77be48-6ffb-4d8f-983a-c20411043e10",
  "title": "TestProject",
  "startDate": 1649146493990,
  "endDate": 1649146493990,
  "projectStatus": "6fae306e-9120-4b84-a79e-530a0be5617c",
  "instructionContent": {
     "fileId": "3e47c8bb-5cc9-4bf0-b1c8-18028c217915"
  },
  "labelingType": "9d08b328-9882-4ea2-bbc9-c44d341e028c",
  "statistics": {
    "taskStatuses": [
      {
        "status": "18388b51-3c31-4530-a76b-24404f32ae3c",
        "count": 0
      },
      {
        "status": "66d92292-10da-48e2-81c7-6189725ed813",
        "count": 1
      },
      {
        "status": "a0305766-bb9d-499a-92a4-a34cc6333355",
        "count": 2
      },
      {
        "status": "25e5128f-7e8b-44d6-b515-d1c0c3e0bf3d",
        "count": 3
      }
    ]
  }
}

Или ошибка, если проект отсутствует

{
    "businessError": null,
    "message": "ERROR: Object not found",
    "stackTrace": null,
    "data": null
}

Получение статистики проекта по его ID

Имя команды для вызова: marker_getProjectStatistics. Поддерживается только синхронный вызов.

GetFullProjectStatistics

На входе ID проекта

"db77be48-6ffb-4d8f-983a-c20411043e10"

На выходе статистика проекта

{
   "distributedUsersCount": 20,
   "newUsersCount": 20,
   "distributedTasksCount": 10,
   "newTasksCount": 10
}

Или ошибка, если проект отсутствует

{
    "businessError": null,
    "message": "ERROR: Object not found",
    "stackTrace": null,
    "data": null
}

Получение статистики проекта по его ID без учета пользователя

Имя команды для вызова: marker_getFullProjectStatistics. Поддерживается только синхронный вызов.

ListProjectStatistics

На входе параметры поиска и пагинации проектов (Search)

{
  "query": "",
  "context": {},
  "paging": {"page": 1, "count": 5}
}

На выходе свойства и статистика проектов из выборки

{
  "items": [
    {
      "id": "9bc7e8c6-f71c-4a53-abc6-222a8a431e84",
      "title": "Test Classification",
      "startDate": 1649146493990,
      "endDate": 1649146493990,
      "labelingType": "9d08b328-9882-4ea2-bbc9-c44d341e028c",
      "projectStatus": "6fae306e-9120-4b84-a79e-530a0be5617c",
      "statistics": {
        "taskStatuses": [
          {
            "status": "18388b51-3c31-4530-a76b-24404f32ae3c",
            "count": 0
          },
          {
            "status": "66d92292-10da-48e2-81c7-6189725ed813",
            "count": 1
          },
          {
            "status": "a0305766-bb9d-499a-92a4-a34cc6333355",
            "count": 2
          },
          {
            "status": "25e5128f-7e8b-44d6-b515-d1c0c3e0bf3d",
            "count": 3
          }
        ]
      }
    }
  ],
  "total": 1
}

Получение статистики проектов

Имя команды для вызова: marker_listProjectStatistics. Поддерживается только синхронный вызов.

ListProjectUsers

На входе ID проекта

{
  "projectId": "db77be48-6ffb-4d8f-983a-c20411043e10",
  "role": "userRole_marker",
  "search": {
    "query": "",
    "context": {},
    "sorting": null,
    "paging": {
      "page": 1,
      "count": 5
    }
  }
}

На выходе страница с пользователями проекта

{
  "total": 300,
  "items": [
    {
      "userId": "f0ed4aa8-2090-4e48-82e5-62a2ef5623cf",
      "role": "userRole_marker",
      "taskStatuses": [
        {
          "status": "18388b51-3c31-4530-a76b-24404f32ae3c",
          "count": 0
        },
        {
          "status": "66d92292-10da-48e2-81c7-6189725ed813",
          "count": 1
        },
        {
          "status": "a0305766-bb9d-499a-92a4-a34cc6333355",
          "count": 2
        },
        {
          "status": "25e5128f-7e8b-44d6-b515-d1c0c3e0bf3d",
          "count": 3
        }
      ]
    }
  ]
}

Возвращает список пользователей в проекте. На данный момент Search объект поддерживает только Paging

Имя команды для вызова: marker_listProjectUsers. Поддерживается только синхронный вызов.

ListEntityStats

На входе ID проекта

"09e65817-e136-4f7c-913b-cb04f4edbef1"

На выходе статистика по сущностям

[
   {
      "entityCode": "nerField1",
      "documentCount": 28
   },
   {
      "entityCode": "nerField10",
      "documentCount": 5
   }
]

Возвращает статистику по сущностям указанного проекта.

Имя команды для вызова: marker_listEntityStats. Поддерживается только синхронный вызов.

Объекты сервиса разметчика

CreateProjectReq

Поле Тип Обязательное Описание
title string да Наименование проекта
startDate timestamp нет Дата и время начала проекта
endDate timestamp нет Дата и время окончания проекта
instruction string нет Инструкция
instructionFile string нет Url файла с инструкцией полученное из upload
labelingType string да ID вида разметки (из справочника)
nerSettings object[] нет Настройки выделения сущностей
classificationSettings object[] нет Настройки классификации
markupSuggesters string[] да Список Id ролей, которые могу предлагать разметку

UpdateProjectReq

Поле Тип Обязательное Описание
id uuid string да ID обновляемого проекта
version number да Версия обновляемого проекта для оптимистичных блокировок
title string да Наименование проекта
startDate timestamp нет Дата и время начала проекта
endDate timestamp нет Дата и время окончания проекта
instruction string нет Инструкция
instructionUrl string нет Url файла с инструкцией полученное из upload
labelingType string да ID вида разметки (из справочника)
nerSettings object[] нет Настройки выделения сущностей
classificationSettings object[] нет Настройки классификации
markupSuggesters string[] да Список Id ролей, которые могу предлагать разметку

UpdateProjectStatusReq

Поле Тип Обязательное Описание
id uuid string да ID обновляемого проекта
version number да Версия обновляемого проекта для оптимистичных блокировок
projectStatus string да ID статуса проекта (из справочника)

AddFilesToProject (dto)

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
fileIds uuid string[] да Список ID файлов

UpsertNerSetting

Поле Тип Обязательное Описание
id uuid string нет ID настройки, если она существует
title string да Наименование настройки
selectionColor string да Цвет выделения
attributes object[] нет Атрибуты сущности
subNers object[] нет Подсущности
showInDocList boolean да Показывать в списке документов
nerHint string нет Подсказка
minLabelingCount string нет Минимальное количество разметки для обучения

UpsertClassificationSetting

Поле Тип Обязательное Описание
id uuid string нет ID настройки, если она существует
title string да Наименование настройки
classificationAction string да ID действия при классификации
optionsList string[] нет Перечень вариантов
maxLength number нет Ограничение длины
classificationHint string нет Подсказка для настройки
showInDocList boolean да Показывать в списке документов
minLabelingCount string нет Минимальное количество разметки для обучения

Project

Поле Тип Обязательное Описание
id uuid string да ID проекта
created timestamp да Дата создания проекта
title string да Наименование проекта
startDate timestamp нет Дата и время начала проекта
endDate timestamp нет Дата и время окончания проекта
instruction string нет Инструкция
instructionFile object нет Файл инструкции
labelingType string да ID вида разметки (из справочника)
projectStatus string да ID статуса проекта (из справочника)
documentEntityType string да Тип сущности в модели данных, с которым сохраняются документы для этого проекта
nerSettings object[] нет Настройки выделения сущностей
classificationSettings object[] нет Настройки классификации
version number да Версия проекта для оптимистичных блокировок
markupSuggesters string[] да Список Id ролей, которые могу предлагать разметку

NerSetting

Поле Тип Обязательное Описание
id string да ID (код) настройки
projectIds uuid string[] да ID проекта, в котором определена эта настройка
title string да Наименование настройки
selectionColor string да Цвет выделения
attributes object[] нет Атрибуты сущности
subNers object[] нет Подсущности
showInDocList boolean да Показывать в списке документов
nerHint string нет Подсказка
minLabelingCount string нет Минимальное количество разметки для обучения

ClassificationSetting

Поле Тип Обязательное Описание
id string да ID (код) настройки
projectIds uuid string[] да ID проекта, в котором определена эта настройка
title string да Наименование настройки
classificationAction string да ID действия при классификации
optionsList string[] нет Перечень вариантов
maxLength number нет Ограничение длины
classificationHint string нет Подсказка для настройки
showInDocList boolean да Показывать в списке документов
minLabelingCount string нет Минимальное количество разметки для обучения

ListProjectDocumentsReq

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
search Search да Фильтры, сортировка, пагинация

GetDocumentReq

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
documentId uuid string да ID документа в проекте

Document

Поле Тип Обязательное Описание
id uuid string да ID документа
projectId uuid string да ID проекта
title string да Наименование документа
created timestamp да Дата и время создания объекта документа (не путать с датой создания файла)
entityType string да Тип сущности соответствующей этому документу в модели данных
data object да Метаданные документа. В этом поле будут возвращены все поля документа, хранящиеся в модели данных. По умолчанию как пример всем документам разметчика создается модель DocumentData.

DocumentData

Поле Тип Обязательное Описание
file file object да Файл документа
name string да Наименование документа
path string нет Путь до файла в источнике
created timestamp да Дата и время создания файла (в источнике)
modified timestamp нет Дата и время изменения файла (в источнике)
owner object нет Владелец документа (в источнике файла)

GetTaskPositionInProjectReq

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
taskId uuid string да ID задачи в проекте
search Search да Фильтры, сортировка, пагинация

CreateTasksDto

Поле Тип Обязательное Описание
title string нет Название всех задач
markerId uuid string да ID пользователя - разметчика
expertId uuid string да ID пользователя - эксперта
projectId uuid string да ID проекта
documentIds string[] да Список ID документов

Task

Поле Тип Обязательное Описание
id uuid string да ID задачи
projectId uuid string да ID проекта
documentId uuid string да ID документа задачи
userId uuid string да ID пользователя, которому назначено задание
title string да Наименование задачи
created timestamp да Дата и время создания задачи
createdBy uuid string да ID пользователя создавшего запись
modified timestamp да Дата и время изменения задачи
modifiedBy uuid string да ID пользователя последним изменившего запись
status string да Код статуса задачи (из справочника)
skipReason string нет Причина пропуска задачи
skipDate timestamp нет Дата и время пропуска
ner object нет Выделенные сущности
classification object нет Классификация
checkingTask uuid string нет ссылка на задание, проверяющее текущее (задание эксперта для разметчика)
checkedTask uuid string нет ссылка на исходное задание, которое проверяется текущим (задание разметчика для эксперта)

TaskShort

Поле Тип Обязательное Описание
id uuid string да ID задачи
title string да Название задачи
projectId uuid string да ID проекта
documentId uuid string да ID документа задачи
skipReason string нет Причина пропуска задачи
skipDate timestamp нет Дата пропуска задачи
created timestamp да Дата и время создания
modified timestamp да Дата и время изменения
createdBy uuid string да ID пользователя создавшего запись
modifiedBy uuid string да ID пользователя последним изменившего запись
status string да Код статуса задачи (из справочника)
markerId uuid string нет ID пользователя - разметчика
expertId uuid string нет ID пользователя - эксперта
version int да Версия для оптимистичной блокировки

TaskShortInfo

Поле Тип Обязательное Описание
taskId uuid string да ID задачи
projectId uuid string да ID проекта
title string да Название задачи
status string да Код статуса задачи (из справочника)
markerUserInfo User нет Информация об разметчике
expertUserInfo User нет Информация об эксперте
authorUserInfo User нет Информация об авторе
documentId uuid string да ID документа задачи

TaskLabeling

Поле Тип Обязательное Описание
version number да Версия разметки
data LabelingData да Данные (в зависимости от вида разметки, см. примеры в Confluence)

LabelingData:

ProjectListItem

Поле Тип Обязательное Описание
id uuid string да ID проекта
created timestamp да Дата создания проекта
title string да Наименование проекта
startDate timestamp нет Дата и время начала проекта
endDate timestamp нет Дата и время окончания проекта
instructionFile uuid string нет Файл инструкции
labelingType uuid string да ID вида разметки (из справочника)
projectStatus uuid string да ID статуса проекта (из справочника)
version number да Версия проекта для оптимистичных блокировок
tasksTotal number да Количество задач в проекте
documentsTotal number да Количество документов в проекте
participantsTotal number да Количество участников в проекте

ProjectStatistics

Поле Тип Обязательное Описание
id uuid string да ID проекта
created timestamp да Дата создания проекта
title string да Наименование проекта
startDate timestamp нет Дата и время начала проекта
endDate timestamp нет Дата и время окончания проекта
instruction string нет Инструкция
instructionFile uuid string нет Файл инструкции
labelingType uuid string да ID вида разметки (из справочника)
projectStatus uuid string да ID статуса проекта (из справочника)
version number да Версия проекта для оптимистичных блокировок
statistics object да Статистика проекта

ProjectStatisticsData

Поле Тип Обязательное Описание
taskStatuses object да Статистика статусов заданий запросившего статистику пользователя

ProjectTaskStatusStatItem

Поле Тип Обязательное Описание
status uuid string да ID Статус задачи (из справочника)
count number да Количество заданий в данном статусе

LabelDocumentReq

Поле Тип Обязательное Описание
projectId uuid string да ID проекта задачи
taskId uuid string да ID задачи на разметку
ner Map нет Новое выделение сущностей
classification object нет Новая классификация
version number да Версия разметки

NerLabelingItem

Поле Тип Обязательное Описание
fragment string да Текст фрагмента
start number да Координаты начала фрагмента
end number да Координаты оконачания фрагмента
created TimeStamp да Время создания спана
byExpert boolean нет Спан создан экспертом
uncertain boolean нет Уверен ли пользователь в спане
segments List[{start: number, end: number}] нет Сегменты спана
userId uuid string нет Id пользователя, кто создал спан
___ List[NerLabelingItem] нет Подсущности спана
___Attribute String \ List[String] нет

ProjectTaskIdentity

Поле Тип Обязательное Описание
projectId uuid string да ID проекта, к которому относится задание
taskId uuid string да ID задачи на разметку
reason string да Причина пропуска

SkipTaskReq

Поле Тип Обязательное Описание
projectId uuid string да ID проекта, к которому относится задание
taskId uuid string да ID задачи на разметку

ListDocumentAssessorsReq

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
documents uuid string[] да ID документов проекта

ListDocumentAssessorsResult

Поле Тип Обязательное Описание
documentUsers object[] да Разметчики документов

SingleDocumentAssessors

Поле Тип Обязательное Описание
documentId uuid string да ID документа
assessors object[] да Разметчики документа, разбитые по статусу разметки

TaskStatusAssessors

Поле Тип Обязательное Описание
status string да ID статуса из справочника
assessors object[] да Данные пользователей-разметчиков

TaskAssessor

Поле Тип Обязательное Описание
id uuid string да ID пользователя
modified timestamp да Последнее время изменения статуса задачи на разметку
skipReason string нет Причина пропуска задачи
skipDate timestamp нет Дата и время пропуска задачи

ListProjectUsers (dto)

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
role string нет ID роли, пользователей с которой нужно вернуть. Если не указан, вернет всех пользователей
search Search Да Объект поиска аналогичный другим сервисам

ProjectUser

Поле Тип Обязательное Описание
userId uuid string да ID пользователя
role string да Код роли в справочнике
taskStatuses object[] да Статистика статусов заданий запросившего статистику пользователя

AddUsersToProject (dto)

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
userIds uuid string[] да ID пользователей
role string нет Код роли в справочнике

DeleteUsersFromProject (dto)

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
userId uuid string[] да ID пользователей

UserWithProjects

Поле Тип Обязательное Описание
userId uuid string да ID пользователя
projects UserProjectInfo[] да Список с ифнформациями о проектах пользователя

UserProjectInfo

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
role string да ID роли в справочнике
addedToProject timestamp Да Дата, когда пользователя добавили в проект

ExportLabeling (dto)

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
nerSettingIds string[] нет Список сущностей для выгрузки (отсутствие сущностей == all)
format string (Jsonl/Csv) нет Формат выгрузки разметки (Jsonl или Csv) По дефолту Jsonl

ExportLabelingItem

Поле Тип Обязательное Описание
documentId uuid string да ID документа
documentUrl url string нет Ссылка на файл документа
extractedTextUrl url string нет Ссылка на извлеченный текст документа
classificationFieldN (где N - номер поля) object для проектов типа Classification Поля со значениями проставленных классов
nerFieldN (где N - номер поля) object для проектов типа Ner (выделение сущностей) Поля с выделенными сущностями

ListTaskWithFragment (dto)

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
field string да Поле, документы с которым нужно получить
search Search да Search объект

TaskWithFragment

Поле Тип Обязательное Описание
id uuid string да ID документа
projectId uuid string да ID проекта
taskId uuid string да ID задачи
status LabelingStatus string да Статус разметки
title string Да Название документа
fragments Fragment[] Да Фрагменты

Fragment

Поле Тип Обязательное Описание
created TimeStamp да Дата создания разметки
fragment string да Фрагмент
attributes Atribute[] да Аттрибуты
subNer SubNer[] да Дочерние разметки

Attribute

Поле Тип Обязательное Описание
key string да Ключ аттрибута
value string нет Значение аттрибута

SubNer

Поле Тип Обязательное Описание
title string да Название разметки
fragments Fragment[] Да Фрагменты

Labeling

Поле Тип Обязательное Описание
id uuid string да ID разметки
projectId uuid string да ID проекта
userId uuid string да ID пользователя
created TimeStamp да Дата создания разметки
modified TimeStamp да Дата изменения разметки
data object да Данные разметки
version number да Версия разметки

Setting

Настройка (nerSetting или classificationSetting) в обобщенном виде

Поле Тип Обязательное Описание
id string да ID настройки
title string да название
projectIds uuid string да ID проекта

ImportLabeling

Поле Тип Обязательное Описание
fileId string нет ID файла JSON Lines из временного хранилища (для импорта)
include ImportItems нет Объекты, которые будут включены в импорт/удаление
exclude ImportItems нет Объекты, которые будут исключены из импорта/удаления

ImportItems

Поле Тип Обязательное Описание
nerSettingIds string[] нет Список кодов полей
docIds uuid string[] нет Список ID документов

StartLearningDTO

Поле Тип Обязательное Описание
projectId uuid string да ID проекта
nerSettingIds string[] да ID настройки выделения сущности

LearningListDTO

Поле Тип Обязательное Описание
nerSetting Setting да Настройка выделения сущности в сокращенном виде
learningItems LearningItemDTO[] да Элемент проекта и обучения

LearningItemDTO

Поле Тип Обязательное Описание
project ProjectListItem да Атрибуты проекта со счетчиками задач, документов, участников
learning Learning да ID настройки выделения сущности

Learning

Поле Тип Обязательное Описание
nerSettingId string да ID настройки выделения сущности
projectId uuid string да ID проекта
status LearningStatus да Статус обучения
error string нет Сообщение об ошибке при обучении
labelingId string нет ID файла экспорта разметки
modelId string нет ID файла модели
metricsId string нет ID файла метрик
created TimeStamp да Дата и время создания
createdBy uuid string да ID пользователя создавшего запись
modified TimeStamp да Дата и время изменения
modifiedBy uuid string да ID пользователя последним изменившего запись
version number да Версия для оптимистичной блокировки

LearningStatus

Значение Описание
Draft Черновик обучения
Running Обучение запущено
Error Обучение завершено с ошибкой
Stopped Обучение остановлено пользователем
Finished Обучение завершено успешно

User

Поле Тип Обязательное Описание
id uuid string да ID пользоваетля
email string да Email пользователя
info UserInfo нет Информация о пользователе

UserInfo

Поле Тип Обязательное Описание
firstName string нет Имя пользователя
lastName string нет Фамилия пользователя
middleName string нет Отчествао пользователя

EntityStatsItem

Поле Тип Обязательное Описание
entityCode string да Код сущности
documentCount number да Количество документов с этой сущностью

FullProjectStatistics

Поле Тип Обязательное Описание
distributedUsersCount number да Кол-во распределенных пользователей
newUsersCount number да Кол-во нераспределенных пользователей
distributedTasksCount number да Кол-во распределенных документов
newTasksCount number да Кол-во нераспределенных документов

ProjectFields

Поле Тип Обязательное Описание
id uuid string да ID проекта
title string да Название проекта
startDate timestamp нет Дата и время начала проекта
endDate timestamp нет Дата и время окончания проекта
projectStatus uuid string да ID статуса проекта (из справочника)
labelingType uuid string да ID вида разметки (из справочника)
taskCount number да Количество документов в проекте
nerSettings object[] да Настройки выделения сущностей
spanCounts object[] да Информация по количеству спанов

UpdateTaskDTO

Поле Тип Обязательное Описание
id uuid string да ID задачи
title string нет Название задачи, если пусто, то используется название документа
status string да Код статуса задачи (из справочника)
markerId uuid string нет ID пользователя - разметчика
expertId uuid string нет ID пользователя - эксперта