Откуда берутся замечания¶
Список замечаний в «Очереди решений» - это не один отчёт, а объединение нескольких проверок. У карточки есть важность, цитата, правило и обозначение источника. Интерфейс не запускает движки по отдельности: их вызывает пайплайн задачи.
Как задача доходит до этого списка: как проходит проверка.
Vale¶
Бинарник Vale 3.9.1 лежит в образе backend. Текст пишется во временный файл, Vale отдаёт JSON. Правила берутся из каталога backend/vale/ и из выбранного Style Guide.
Vale ищет то, что записано правилом: запрещённые конструкции, словарь, требования к тону. Он не «понимает» абзац. Если собственного гайда нет, используется встроенный набор из styleguide/rules.yaml.
Импорт docx разбирает документ на правила и словарь. Формулировки затем правятся вручную.
Морфология¶
custom_checks.py, pymorphy3 и razdel. То, что регуляркой Vale не выразить:
- пассивный залог
- антропоморфизм (система «думает», сервер «хочет»)
- слишком длинное предложение
- «Вы» с заглавной в неуместном месте
- согласование прилагательного с существительным и подлежащего со сказуемым
На карточке источник виден как морфология / style-guide, в зависимости от правила.
LanguageTool¶
Отдельный контейнер, HTTP /v2/check, язык ru. Грамматика, пунктуация, типовые ошибки. Около 1.5 ГБ RAM и до 90 с на первый старт.
Пока healthcheck не пройден, этот слой молчит. Пустой список при включённом «Язык и ясность» чаще значит именно это.
В пайплайне v2 находка LanguageTool привязывается к правилу гайда «Базовая.Орфография». Если такого правила в гайде нет, сигнал в отчёт не попадает.
Слияние¶
Три движка работают параллельно (checker.check_text). Одинаковые находки по строке, колонке и тексту схлопываются. Если гайд уже пометил фрагмент, повтор LanguageTool на том же месте отбрасывается.
Пользовательские regex (/api/rules) тоже входят в этот список. Длина паттерна ограничена, на исполнение стоит таймаут, чтобы плохое выражение не подвесило процесс.
Языковая модель¶
Только при непустом адресе с протоколом OpenAI, метод chat/completions. Проходы v2: язык, гайд, структура, термины, согласованность, словарь, верификатор. Верификатор сверяет кандидата с исходным блоком и отсекает слабые.
Пустой адрес систему не ломает. Галочки на форме по-прежнему выбирают, какие группы замечаний войдут в отчёт.
Соответствие форме «Вычитка»¶
| Параметр | Без модели | С моделью |
|---|---|---|
| Язык и ясность | LanguageTool, часть морфологии | плюс проход language |
| Style Guide | Vale по выбранному гайду | плюс проходы guide и lexicon |
| Термины и согласованность | словарь гайда, морфология | плюс terminology и consistency |