Загрузка комплекта и задание клиента
POST /runs принимает multipart/form-data. Передавайте каждый файл отдельным полем files. Можно загрузить архив ZIP, RAR или 7z. curl или HTTP-библиотека задаёт Content-Type и границу multipart. Не задавайте этот заголовок вручную.
| Поле | Обязательно | Что передать |
|---|---|---|
| files | Да | Документы или архивы. Для каждого файла повторите поле files. |
| object_address | Нет | Адрес объекта. Допустимая длина указана в справочнике POST /runs. |
| user_request | Нет | Задание проверяющему. Сервер сохраняет его с комплектом. Допустимая длина указана в справочнике POST /runs. |
| kinds | Нет | JSON-строка с именами файлов и кодами разделов. Пример: {"AR.pdf":"АР"}. Получите справочник через GET /docset. Получите профиль организации через GET /me. |
| bundle_id | Нет | bundle_id из ответа POST /bundles. Он связывает проверки одного проекта в истории. |
| roles | Нет | JSON-строка с точными путями документов и ролями context или review. При разделении ролей укажите каждый документ. Назначьте хотя бы один review. |
Отправка двух файлов
curl --fail-with-body "$NK_BASE/runs" \
-H "Authorization: Bearer $NK_KEY" \
-H "Idempotency-Key: object-001-v1" \
-F "files=@AR.pdf" \
-F "files=@EOM.pdf" \
--form-string "object_address=г. Москва, ул. Примерная, д. 1" \
--form-string "user_request=Сопоставьте нагрузки ЭОМ с архитектурными решениями." \
--form-string 'kinds={"AR.pdf":"АР"}' \
--output accepted.jsonПример ответа 201 — новый комплект принят
{
"run_id": "9f1c3b7a-2d4e-4c8b-9a1f-6e5d4c3b2a10",
"status": "queued",
"checks_left": 11,
"double_volume": false,
"volume_units": 1,
"user_request": "Сопоставьте нагрузки ЭОМ с архитектурными решениями.",
"bundle": null,
"object": {"address": "г. Москва, ул. Примерная, д. 1", "works": null},
"documents": [
{"index": 1, "name": "AR.pdf", "kind": "АР", "kind_chosen": true,
"kind_guess": null, "pages": null, "converted": false, "page_from": null, "page_to": null},
{"index": 2, "name": "EOM.pdf", "kind": null, "kind_chosen": false,
"kind_guess": null, "pages": null, "converted": false, "page_from": null, "page_to": null}
]
}Ответ 201 означает, что сервер принял комплект. Проверка ещё не завершена. Повтор того же запроса с прежним Idempotency-Key может вернуть 200 и прежний run_id. После приёма status обычно равен queued или running. Сервер запускает обработку автоматически.
Для длинного задания используйте файл UTF-8: -F "user_request=<task.txt". kinds задаёт раздел документа. user_request содержит задание проверяющему. roles задаёт роль: context для справочного документа или review для проверяемого документа. Указывайте точные пути файлов в roles.
Сервер также распознаёт папки Context и Reviews в архиве. Роль из roles имеет приоритет над именем папки.
Основные форматы: PDF, Word, Excel, JPEG, PNG и XML. Сервер распаковывает архивы ZIP, RAR и 7z при приёме. После загрузки проверьте documents.
После проверки прочитайте ограничения в отчёте.