diff --git a/GUIDE.md b/GUIDE.md index c45af03..226b006 100644 --- a/GUIDE.md +++ b/GUIDE.md @@ -72,6 +72,10 @@ TEXT_RULES = [ ] ``` +**TEXT_RULES покрывает только типовые модели** (fio, date, phone, mfc, zags...) — те, для которых по ключевому слову можно угадать подходящий текст. Одно правило покрывает десятки похожих моделей. + +Для узкоспецифичных моделей проекта, где ключевое слово не даёт нужной точности, используй `text` в asserts (см. [Шаг 3.6](#36-когда-text_rules-не-хватает)). + ## Шаг 2: Первый запуск без asserts Запусти тест с `-v` (verbose), чтобы увидеть каждую модель и её ответ: @@ -218,6 +222,34 @@ SMC возвращает классы с полями `class` и `confidence`: {"model": "zags~ffb403fff9f5802d53aac8a5c844af26", "text": "загс центрального района", "checks": {"min_found": 0}} ``` +### 3.6 Когда TEXT_RULES не хватает + +**Философия тестов — два уровня проверки:** + +| Уровень | Инструмент | Вопрос | +|---------|-----------|--------| +| 1 — санитарный | TEXT_RULES | Модель живая? Отвечает хоть что-то? | +| 2 — проверочный | asserts | Модель отвечает **правильно**? | + +TEXT_RULES даёт быстрый ответ «живая/мёртвая» для типовых моделей. Но есть модели, которым нужен специфичный текст, недоступный для угадывания по ключевому слову. + +**Пример:** модель `Конкретика по УК~ffb403...` — TEXT_RULES по ключевому слову `"конкретик"` возвращает `"конкретный вопрос"`. Текст слишком размытый, модель не находит сущностей и возвращает пустой ответ. + +**Решение:** добавить `text` в assert с точной формулировкой: + +```json +{ + "model": "Конкретика по УК~ffb403fff9f5802d53aac8a5c844af26", + "text": "Найти свою УК", + "checks": {"min_found": 0} +} +``` + +**Это не баг, а дизайн:** +- TEXT_RULES универсален и переносим между проектами (скопировал тесты — работает) +- asserts пишется под конкретный проект и покрывает специфичные модели +- Без asserts — быстрый санитарный прогон, с asserts — полная валидация + ## Шаг 4: Запуск с asserts ```bash