mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 18:05:03 +00:00
51 lines
2.6 KiB
Markdown
51 lines
2.6 KiB
Markdown
## Design
|
|
|
|
### Единый канон направлений
|
|
|
|
Создать константу в `classifier/keywords.py` (или отдельный `directions.py`):
|
|
|
|
```python
|
|
# Канонический список направлений (AGENT.MD, веб-форма): linux, tech, politics, games, electronics, llm
|
|
DIRECTIONS_CANON = ["linux", "tech", "politics", "games", "electronics", "llm"]
|
|
```
|
|
|
|
### classify.py:87
|
|
|
|
```python
|
|
from classifier.keywords import DIRECTIONS_CANON # или импорт по месту
|
|
...
|
|
"direction": "одно из: " + ", ".join(sorted(DIRECTIONS_CANON)),
|
|
```
|
|
|
|
(убрать локальный список `['linux','dev','ai','tech','games','electronics','media']`).
|
|
|
|
### web/app.py:130
|
|
|
|
```python
|
|
directions=DIRECTIONS_CANON # вместо ['linux','dev','ai','tech','games','electronics','media']
|
|
```
|
|
|
|
(импортировать из classifier.keywords, чтобы список был один).
|
|
|
|
### keywords.py DIRECTIONS
|
|
|
|
Привести ключи к канону:
|
|
- оставить: linux, tech, games, electronics
|
|
- добавить: politics (ключевые слова: политика, президент, выборы, закон, санкции, война, мир, госдума, кремль, etc.)
|
|
- llm (ключевые слова: llm, gpt, нейросеть, claude, gemini, ollama, qwen, transformer, диффузия, sota, промпт, токен, fine-tune)
|
|
- dev/media/ai — в каноне их НЕТ: dev-ключевые слова перенести частично в tech (разработка, программирование, код, api, backend) или оставить под tech; отсутствующие направления удалить (или оставить с пустым списком — классификатор их не выберет, т.к. канон в промпте ограничивает).
|
|
|
|
### Переклассификация
|
|
|
|
```bash
|
|
cd /opt/vesti
|
|
CLASSIFY_TIMEOUT=20 .venv/bin/python -m classifier.classify --db db/vesti.db --limit 1000
|
|
```
|
|
(обработает все 466 своих без direction; новые направления — только канонические).
|
|
|
|
### Верификация
|
|
|
|
- `openspec validate unify-directions` — чисто.
|
|
- В БД после переклассификации: 0 постов is_own=1 без direction (или минимум),
|
|
нет направлений вне канона (dev/media/ai остаются только legacy, не вновь).
|
|
- Веб /candidates: фильтр по направлению показывает только канонические. |