Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
tech:customer:rsv:install [2025/11/21 10:02] dmitry_kalashnikov [Проверка работы] |
tech:customer:rsv:install [2025/11/21 10:47] (текущий) dmitry_kalashnikov [Инструкция по установке Модуля проверки] |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Инструкция по установке Модуля проверки ====== | ====== Инструкция по установке Модуля проверки ====== | ||
| - | Создано тестовое приложение в виде server.js-файла, | + | Модуль проверки представляет собой |
| Исходный код находится в репозитории: | Исходный код находится в репозитории: | ||
| Строка 65: | Строка 66: | ||
| Полный цикл установки проверен на чистой системе Ubuntu 22.04.2 LTS, в которую был установлен только docker и его компоненты. | Полный цикл установки проверен на чистой системе Ubuntu 22.04.2 LTS, в которую был установлен только docker и его компоненты. | ||
| </ | </ | ||
| - | ===== Проверка работы ===== | + | ===== Программный интерфейс и параметры ===== |
| + | Адрес порта задаётся в конфигурации модуля при установке. Модуль проверки имеет точку входа через вызов функции '' | ||
| - | Создано тестовое приложение в виде server.js-файла, | + | POST http:// |
| - | '' | + | Content-type: |
| - | '' | + | |
| - | '' | + | |
| - | При заданных параметрах сервер вернёт HTTP-код | + | Тело запроса JSON: |
| + | <code javascript> | ||
| + | { | ||
| + | dictId: string, //идентификатор | ||
| + | dictSubId: string, // | ||
| + | userId: string, //идентификатор пользователя, | ||
| + | text: string, //текст диктанта, | ||
| + | returnStats: | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Ответ: | ||
| + | <code javascript> | ||
| + | { | ||
| + | userId: string, // | ||
| + | skipped: boolean, // флаг пропуска проверки; | ||
| + | skipDetails: | ||
| + | reason: string, // | ||
| + | textSizePercent: | ||
| + | obsceneWords: | ||
| + | penaltyErrors: | ||
| + | }, | ||
| + | errors: { | ||
| + | orfo: int, // число орфографических ошибок; | ||
| + | punct: int, // | ||
| + | typo: int //число опечаток; | ||
| + | } | ||
| + | stats: // массив с аналитической статистикой, | ||
| + | { | ||
| + | name: string, // имя столбца, | ||
| + | value: string // значение в этом столбце; | ||
| + | }[] | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Подмодуль фильтрации ===== | ||
| - | Сервер | + | Подмодуль фильтрации текстов включает в себя следующие функции: |
| - | Если какой-то параметр пропущен, | + | * Фильтрация текстов по признаку объема (текст отличается от текста в задании, |
| + | * Предобработка текста на аберрантное поведение (в тексте нет обсценной лексики, | ||
| + | * После проверки каждого текстового задания на выходе | ||
| + | * флаг пропуска проверки (параметр '' | ||
| + | * причина пропуска, | ||
| + | * процент соответствия объёма текста, | ||
| + | * список найденных стоп-слов из словаря обсценной лексики (параметр '' | ||
| ===== Пример приложения ===== | ===== Пример приложения ===== | ||
| + | |||
| + | Ниже указан javascript-код, | ||
| <code javascript> | <code javascript> | ||
| Строка 110: | Строка 153: | ||
| const start = process.hrtime(); | const start = process.hrtime(); | ||
| - | // POST-запрос на сервер с содержимым файла и метаданными | + | // POST-запрос на сервер с содержимым файла и параметрами |
| request.post( | request.post( | ||
| url, | url, | ||
| Строка 153: | Строка 196: | ||
| console.log(global.txtFiles) | console.log(global.txtFiles) | ||
| </ | </ | ||
| + | |||