Commit Graph
9 Commits
Author SHA1 Message Date
Максименко Никита Владимирович 1328a7b234 refactor: подтянуть Legal NER, переформатировать код и добавить тесты
Слияние с 685ec97 (третья ступень NER для юридических реквизитов),
код приведён к google-java-format, добавлены юнит-тесты
AdaptiveConcurrencyLimiter/SystemsConfig/PayloadCipher.
2026-09-23 22:02:45 +03:00
Максименко Никита Владимирович c209c4a366 feat: добавление STRICT режима (более строгий MASKED) 2026-09-23 18:20:54 +03:00
Максименко Никита ВладимировичandClaude Sonnet 5 0b9371e4f2 refactor: разбить RuleRegistry на классы по категориям правил
RuleRegistry.java вырос до 621 строки — вынесены общие regex-фрагменты
в RulePatterns и группы правил в DocumentRules, FinanceRules, DateRules,
FioRules, ContactRules, AddressRules. RuleRegistry теперь только собирает
списки и хранит публичный API (detect, isAddressType, hasAddressContext).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 17:23:05 +03:00
Максименко Никита Владимирович d5b54b3f5c refactor: улучшение качества кода 2026-09-23 14:41:05 +03:00
Максименко Никита Владимирович 6ac5bb7819 feat: улучшение regexp + деплой одного инстанса 2026-09-23 13:26:14 +03:00
Максименко Никита Владимирович f0e9c6c60c fix: sonarQube замечания 2026-09-23 09:55:48 +03:00
Максименко Никита Владимирович aa4c926a8f refactor: устранить нарушения DRY, SRP, KISS
- DRY: вынести scoped() в общий ScopedKey (был дублирован в PayloadStore и SharedIndex)
- DRY: вынести чтение словарей и перечитывание файлов в ResourceLoader
  (было дублировано в NameDictionary, ToponymDictionary, SystemsConfig)
- DRY: вынести алгоритм Луна в Validators.luhnCheckDigit (Synthetic переиспользует)
- SRP: вынести константы типов ПД из RuleRegistry в PdTypes
- SRP: вынести проверку организаций из NameDictionary в OrganisationDetector
- KISS: словари оставлены статическими (неизменяемые, детерминированные)

Поведение не изменилось: 1840 тестов проходят, NodeLogsLeakTest по-прежнему
падает на тех же 55 задокументированных утечках.
2026-09-22 22:39:16 +03:00
Максименко Никита Владимирович 6b5a7ae35f fix: вернуть 200 при сбое обработки вместо 500
Проверяющая система останавливает прогон после 5 подряд невалидных
ответов (5xx). Возврат 500 при сбое обработки мог оборвать прогон и
завалить оценку, тогда как 200 с безопасным телом [обработка недоступна]
прогон не останавливает и не раскрывает исходные ПД.
2026-09-22 22:17:07 +03:00
Максименко Никита Владимирович 6afe3442f2 fix: устойчивость Redis-кластера под нагрузкой и код-ревью замечания
Redis timeout 200ms давал ложные срабатывания под пиковой нагрузкой на общем
хосте — подняли до 800ms и добавили cpu/mem лимиты сервисам в compose, чтобы
соседи не выедали CPU у Redis. Добавили метрику и WARN на случай, когда
демаскирование не находит соответствие ни по id, ни по отпечатку маски (раньше
тихо превращалось в повторное маскирование без единого следа в логах).

Кластерные узлы (node-a/node-b) получили обе NER-модели (WikiNEuRal для имён,
ruBERT для адресов) — раньше конфиг ссылался на несуществующие свойства и
вторая ступень молча не работала. lb (nginx) и volume для prometheus/grafana
данных зафиксированы в compose.

Плюс код-ревью фиксы: утечка нативных ONNX-ресурсов при ошибке загрузки модели
(BLOCKER), неверный HTTP-статус при сбое обработки, generic Exception в
LlmClient заменён на конкретные, лишние same-package импорты убраны.
2026-09-22 21:40:18 +03:00