docs: философия TEXT_RULES (типовые) vs asserts (специфичные), §3.6
This commit is contained in:
parent
4867e4cebc
commit
5ecdb71ae1
32
GUIDE.md
32
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user