Files

2.6 KiB

Design

Единый канон направлений

Создать константу в classifier/keywords.py (или отдельный directions.py):

# Канонический список направлений (AGENT.MD, веб-форма): linux, tech, politics, games, electronics, llm
DIRECTIONS_CANON = ["linux", "tech", "politics", "games", "electronics", "llm"]

classify.py:87

from classifier.keywords import DIRECTIONS_CANON  # или импорт по месту
...
  "direction": "одно из: " + ", ".join(sorted(DIRECTIONS_CANON)),

(убрать локальный список ['linux','dev','ai','tech','games','electronics','media']).

web/app.py:130

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; отсутствующие направления удалить (или оставить с пустым списком — классификатор их не выберет, т.к. канон в промпте ограничивает).

Переклассификация

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: фильтр по направлению показывает только канонические.