Avoid false garbage classification for UPD mentions
Deploy contracts-flask / validate (push) Canceled after 0s
Deploy contracts-flask / validate (push) Canceled after 0s
This commit is contained in:
@@ -81,3 +81,57 @@ Kubernetes проверялся только командами чтения ч
|
||||
- frontend upload-тесты — успешно;
|
||||
- layer 2 upload-тесты — успешно;
|
||||
- архивы `duplicates_inside.zip` и `mixed_with_error.zip` прошли `unzip -t`.
|
||||
|
||||
## Реальный end-to-end тест сверки
|
||||
|
||||
27.08.2026 выполнен тест через deployed API `v2.0.19` на batch
|
||||
`0dd0d3a7-3e52-4888-95eb-1b6d3e37f40e`.
|
||||
|
||||
Загружены через VM-поток два реальных DOCX:
|
||||
|
||||
- `договор-XXX001-03700.docx` — распарсен, 20 элементов;
|
||||
- `допник-1-XXX001-03700.docx` — распарсен, 16 элементов.
|
||||
|
||||
Классификация завершилась `2/2`, но результат классификации неожиданен:
|
||||
|
||||
- допсоглашение попало в группу `03700`;
|
||||
- базовый договор попал в `__unresolved__` со статусом `garbage` и причиной
|
||||
отсутствия matching-договора.
|
||||
|
||||
Это функциональный дефект/проблема классификации тестовой пары: без базового
|
||||
договора группа не проверяет корректное сравнение договора с приложением.
|
||||
|
||||
Тем не менее реальный pipeline сверки для сформированной группы проверен:
|
||||
|
||||
- `/api/apply-groups` — `200`, создан contract ID
|
||||
`b859e813-bac9-4eb9-82b5-6b5666f2ba4a`;
|
||||
- `/process-v2` — SSE завершён событием `complete`;
|
||||
- LLM вернул `6` операций в режиме `partial`;
|
||||
- применено: `added=6`, `updated=0`, `deleted=0`;
|
||||
- ошибок соединения и SSE не было;
|
||||
- время pipeline: `9.4с`.
|
||||
|
||||
Следующий обязательный тест для проверки matching — загрузить базовый договор с
|
||||
точным именем/содержимым, которое классификатор ожидает как базовый, и повторить
|
||||
ту же пару. Код после этого прогона не изменялся.
|
||||
|
||||
## Исправление ложного garbage для базового договора
|
||||
|
||||
При повторной проверке реального файла `договор-XXX001-03700.docx` установлена
|
||||
точная причина ошибочной классификации: второй garbage-фильтр искал подстроку
|
||||
`УПД` в первых 2000 символах. В договоре эта аббревиатура встречается в
|
||||
обычном условии оплаты: «на основании УПД и счета». Из-за этого договор
|
||||
получал `garbage=header_keywords`, хотя его заголовок начинается со слова
|
||||
«Договор».
|
||||
|
||||
Исправление в `site/services/classify.py`:
|
||||
|
||||
- удалено общее substring-срабатывание для `УПД`;
|
||||
- добавлено распознавание `УПД` и полного названия только с начала строки,
|
||||
когда это заголовок самого документа.
|
||||
|
||||
Добавлены регрессионные тесты: упоминание УПД внутри договора не является
|
||||
garbage, а заголовок документа `УПД № ...` является garbage.
|
||||
|
||||
Версия приложения повышена до `2.0.20`, cache-buster обновлён в
|
||||
`site/templates/index.html`.
|
||||
|
||||
Reference in New Issue
Block a user