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
|
## Шаг 2: Первый запуск без asserts
|
||||||
|
|
||||||
Запусти тест с `-v` (verbose), чтобы увидеть каждую модель и её ответ:
|
Запусти тест с `-v` (verbose), чтобы увидеть каждую модель и её ответ:
|
||||||
@ -218,6 +222,34 @@ SMC возвращает классы с полями `class` и `confidence`:
|
|||||||
{"model": "zags~ffb403fff9f5802d53aac8a5c844af26", "text": "загс центрального района", "checks": {"min_found": 0}}
|
{"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
|
## Шаг 4: Запуск с asserts
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user