распознаётся намерение открыть или зарегистрировать ОсОО/ЖЧК
в выдачу поднимаются только действующие подтверждённые акты: положение о регистрации (230044970) и закон о хозяйственных товариществах и обществах (667)
остальные запросы используют прежнее полнотекстовое ранжирование
реальный локальный OpenSearch: RU и KY возвращают [230044970, 667]
## Изменения
- распознаётся намерение открыть или зарегистрировать ОсОО/ЖЧК
- в выдачу поднимаются только действующие подтверждённые акты: положение о регистрации (230044970) и закон о хозяйственных товариществах и обществах (667)
- остальные запросы используют прежнее полнотекстовое ранжирование
- backend обновлён до 0.5.2
## Проверки
- `PYTHONPATH=backend python3 -m unittest backend/test_minjust_cbd.py backend/test_minjust_normalization.py backend/test_minjust_opensearch.py backend/test_search_relevance.py -v`
- реальный локальный OpenSearch: RU и KY возвращают `[230044970, 667]`
Изменение находится только в backend/search/evaluate_relevance.py, который вызывается лишь CLI-оценкой (rg не находит других потребителей search_body/company_registration_clauses). Поэтому пользовательская поисковая выдача не меняется. Правило нужно применить в фактическом поисковом пути либо явно ограничить PR изменением evaluator.
Intent определяется подстроками и даёт ложные срабатывания: ОсОО зарегистрирован?, кто зарегистрировал ОсОО и ЖЧК ачык маалымат все получают curated docs. Для юридического поиска это меняет топ выдачи не по намерению открытия/регистрации. Нужны более точные признаки намерения и отрицательные тесты для этих запросов.
Проверки из описания: 13 тестов проходят, но текущий тест покрывает только два положительных случая. Review завершён с блокирующими замечаниями.
Найдены блокирующие замечания:
1. Изменение находится только в `backend/search/evaluate_relevance.py`, который вызывается лишь CLI-оценкой (`rg` не находит других потребителей `search_body`/`company_registration_clauses`). Поэтому пользовательская поисковая выдача не меняется. Правило нужно применить в фактическом поисковом пути либо явно ограничить PR изменением evaluator.
2. Intent определяется подстроками и даёт ложные срабатывания: `ОсОО зарегистрирован?`, `кто зарегистрировал ОсОО` и `ЖЧК ачык маалымат` все получают curated docs. Для юридического поиска это меняет топ выдачи не по намерению открытия/регистрации. Нужны более точные признаки намерения и отрицательные тесты для этих запросов.
Проверки из описания: 13 тестов проходят, но текущий тест покрывает только два положительных случая. Review завершён с блокирующими замечаниями.
Предыдущий блокер про недоступность поиска устранён: python -m search.query --help работает, CLI документирован, а evaluator вызывает общий search_documents. Заявленный набор проходит: 14 тестов.
Остаётся ложное срабатывание intent rule: как открыть счет ОсОО, как открыть филиал ОсОО и ЖЧК кантип банк эсебин ачуу получают boosted 230044970/667, хотя это запросы о счёте/филиале, а не об открытии компании. Проверил вызовом company_registration_clauses на текущем HEAD. Добавьте отрицательные тесты и сузьте правило так, чтобы оно сопоставляло действие именно с созданием/регистрацией ОсОО/ЖЧК.
Повторный review полного текущего PR: **blocking**.
Предыдущий блокер про недоступность поиска устранён: `python -m search.query --help` работает, CLI документирован, а evaluator вызывает общий `search_documents`. Заявленный набор проходит: 14 тестов.
Остаётся ложное срабатывание intent rule: `как открыть счет ОсОО`, `как открыть филиал ОсОО` и `ЖЧК кантип банк эсебин ачуу` получают boosted `230044970`/`667`, хотя это запросы о счёте/филиале, а не об открытии компании. Проверил вызовом `company_registration_clauses` на текущем HEAD. Добавьте отрицательные тесты и сузьте правило так, чтобы оно сопоставляло действие именно с созданием/регистрацией ОсОО/ЖЧК.
Последний конкретный блокер исправлен: как открыть счет ОсОО, как открыть филиал ОсОО и ЖЧК кантип банк эсебин ачуу больше не включают curated clauses; 14 unit-тестов проходят.
Но условие отсутствия ложных срабатываний пока не выполнено: токеновая эвристика по-прежнему продвигает 230044970/667 для нерелевантных запросов как создать договор для ОсОО, порядок создания логотипа ОсОО, ЖЧК кантип келишим түзүү и ЖЧК кантип логотип түзүү. Проверено на текущем HEAD через company_registration_clauses. Исключения для отдельных слов масштабируют blacklist, а не связывают действие с созданием компании. Нужен более точный положительный шаблон/разбор intent и эти отрицательные кейсы в тестах.
Финальный повторный review: **blocking**.
Последний конкретный блокер исправлен: `как открыть счет ОсОО`, `как открыть филиал ОсОО` и `ЖЧК кантип банк эсебин ачуу` больше не включают curated clauses; 14 unit-тестов проходят.
Но условие отсутствия ложных срабатываний пока не выполнено: токеновая эвристика по-прежнему продвигает `230044970`/`667` для нерелевантных запросов `как создать договор для ОсОО`, `порядок создания логотипа ОсОО`, `ЖЧК кантип келишим түзүү` и `ЖЧК кантип логотип түзүү`. Проверено на текущем HEAD через `company_registration_clauses`. Исключения для отдельных слов масштабируют blacklist, а не связывают действие с созданием компании. Нужен более точный положительный шаблон/разбор intent и эти отрицательные кейсы в тестах.
Предыдущие замечания устранены: точные RU/KY положительные шаблоны срабатывают на целевых запросах (как открыть ОсОО, ЖЧК ачуу тартиби) и не срабатывают на счёте, филиале, договоре, логотипе и остальных ранее указанных отрицательных кейсах. Общий query builder остаётся доступен через CLI и используется evaluator.
Полный заявленный набор: 14 тестов успешно. Новых блокирующих замечаний по текущему PR нет.
Финальный независимый review: **non-blocking**.
Предыдущие замечания устранены: точные RU/KY положительные шаблоны срабатывают на целевых запросах (`как открыть ОсОО`, `ЖЧК ачуу тартиби`) и не срабатывают на счёте, филиале, договоре, логотипе и остальных ранее указанных отрицательных кейсах. Общий query builder остаётся доступен через CLI и используется evaluator.
Полный заявленный набор: 14 тестов успешно. Новых блокирующих замечаний по текущему PR нет.
Итоговый независимый review после changelog-коммита: non-blocking.
CHANGELOG.md обновлён в разделе «Не выпущено», описывает только изменения этого PR и соответствует текущим CLI и правилам выдачи. Предыдущие исправления сохранены: целевые RU/KY запросы и отрицательные сценарии остаются покрыты. Полный набор проверок: 14 тестов успешно. Новых блокирующих замечаний нет.
Итоговый независимый review после changelog-коммита: **non-blocking**.
`CHANGELOG.md` обновлён в разделе «Не выпущено», описывает только изменения этого PR и соответствует текущим CLI и правилам выдачи. Предыдущие исправления сохранены: целевые RU/KY запросы и отрицательные сценарии остаются покрыты. Полный набор проверок: 14 тестов успешно. Новых блокирующих замечаний нет.
admin
merged commit 7a656cfc1a into main2026-08-20 20:17:18 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Изменения
Проверки
PYTHONPATH=backend python3 -m unittest backend/test_minjust_cbd.py backend/test_minjust_normalization.py backend/test_minjust_opensearch.py backend/test_search_relevance.py -v[230044970, 667]Найдены блокирующие замечания:
backend/search/evaluate_relevance.py, который вызывается лишь CLI-оценкой (rgне находит других потребителейsearch_body/company_registration_clauses). Поэтому пользовательская поисковая выдача не меняется. Правило нужно применить в фактическом поисковом пути либо явно ограничить PR изменением evaluator.ОсОО зарегистрирован?,кто зарегистрировал ОсООиЖЧК ачык маалыматвсе получают curated docs. Для юридического поиска это меняет топ выдачи не по намерению открытия/регистрации. Нужны более точные признаки намерения и отрицательные тесты для этих запросов.Проверки из описания: 13 тестов проходят, но текущий тест покрывает только два положительных случая. Review завершён с блокирующими замечаниями.
Повторный review полного текущего PR: blocking.
Предыдущий блокер про недоступность поиска устранён:
python -m search.query --helpработает, CLI документирован, а evaluator вызывает общийsearch_documents. Заявленный набор проходит: 14 тестов.Остаётся ложное срабатывание intent rule:
как открыть счет ОсОО,как открыть филиал ОсООиЖЧК кантип банк эсебин ачууполучают boosted230044970/667, хотя это запросы о счёте/филиале, а не об открытии компании. Проверил вызовомcompany_registration_clausesна текущем HEAD. Добавьте отрицательные тесты и сузьте правило так, чтобы оно сопоставляло действие именно с созданием/регистрацией ОсОО/ЖЧК.Финальный повторный review: blocking.
Последний конкретный блокер исправлен:
как открыть счет ОсОО,как открыть филиал ОсООиЖЧК кантип банк эсебин ачуубольше не включают curated clauses; 14 unit-тестов проходят.Но условие отсутствия ложных срабатываний пока не выполнено: токеновая эвристика по-прежнему продвигает
230044970/667для нерелевантных запросовкак создать договор для ОсОО,порядок создания логотипа ОсОО,ЖЧК кантип келишим түзүүиЖЧК кантип логотип түзүү. Проверено на текущем HEAD черезcompany_registration_clauses. Исключения для отдельных слов масштабируют blacklist, а не связывают действие с созданием компании. Нужен более точный положительный шаблон/разбор intent и эти отрицательные кейсы в тестах.Финальный независимый review: non-blocking.
Предыдущие замечания устранены: точные RU/KY положительные шаблоны срабатывают на целевых запросах (
как открыть ОсОО,ЖЧК ачуу тартиби) и не срабатывают на счёте, филиале, договоре, логотипе и остальных ранее указанных отрицательных кейсах. Общий query builder остаётся доступен через CLI и используется evaluator.Полный заявленный набор: 14 тестов успешно. Новых блокирующих замечаний по текущему PR нет.
Итоговый независимый review после changelog-коммита: non-blocking.
CHANGELOG.mdобновлён в разделе «Не выпущено», описывает только изменения этого PR и соответствует текущим CLI и правилам выдачи. Предыдущие исправления сохранены: целевые RU/KY запросы и отрицательные сценарии остаются покрыты. Полный набор проверок: 14 тестов успешно. Новых блокирующих замечаний нет.