Автодетализация: теги, приоритет и оценка времени (0.93)
ИИ переписывал заголовок и описание — и портил их: контекста задачи у модели нет,
поэтому сжатый текст терял важные детали или менял суть. А карточка предложения
принимает всё или ничего, так что верно угаданные теги приходилось отклонять
из-за кривого описания. Теперь ИИ предлагает только то, где он полезен: теги,
градацию приоритета и оценку длительности.

- теги ДОПОЛНЯЮТ назначенные, а не заменяют их — потому существующие теги задачи
  идут в контекст промпта отдельной строкой с правилом «не повторяй» (раньше теги
  предлагались, только когда у задачи нет ни одного);
- приоритет просим градацией интерфейса (very_low…urgent), число шкалы 0-10
  считаем сами: маленькой модели выбрать слово проще, чем откалибровать число.
  Выдуманные ею градации («Very High», «critical», «normal») притягиваются к
  ближайшей из пяти, иначе ответ пропадал бы целиком;
- оценка в минутах, границы 5…1440 (как ge=1, le=24*60 в схеме), округление до
  5 минут. Она же включает задачу в режим «3 варианта», куда задачи без оценки
  попадали лишь фолбэком;
- применение безопасно по определению: теги сливаются, приоритет и оценка пишутся
  только в пустое поле. Проверка «пусто» стоит в apply_proposal, а не только в
  промпте: владелец мог проставить приоритет, пока модель думала, — перетирать его
  нельзя. Заголовок и описание не трогаются вовсе;
- флаг force у detail_task убран: переспрос всё равно ничего не перетирает,
  «перепредложить всё» потеряло смысл. «Переспросить ИИ» теперь сбрасывает
  предложение и анализирует текущий текст задачи;
- пустой ответ модели («добавить нечего») карточку не показывает — молчим, как и
  просил владелец. Сырую задачу в этом случае утверждают из меню шапки (и в стеке
  кнопка утверждения остаётся); «Детализация подбирается…» в стеке показывается
  только пока ai_proposal === null, то есть пока ИИ думает;
- в интерфейсе из предложения ушли строки заголовка, описания и проекта; сниппет
  карточки в списке сводится к тегам («Средний · ≈ 30 мин» текстом задачи не
  читается), из промпта внешнего агента описание тоже уходит.

Живой прогон на qwen3.5:2b-q4_K_M (временный пользователь): оценки осмысленны, но
шумны (одна задача давала 15/25/30/45/60 мин от прогона к прогону), приоритет в
основном попадает, но бывает завышен (смазка петель двери → urgent), теги — слабое
место: модель редко переиспользует русский каталог и придумывает английские.
Понижение температуры до 0.1 даёт стабильность, но выравнивает всё (приоритет
почти всегда low, оценка всегда 15), поэтому оставлено как есть.

ТЗ 0.93: §3.2, §3.4, §3.11, §3.22, §5, §7, §8 п.2 (решение 2026-09-22 отменено,
решение 2026-09-19 подтверждено).
1 parent 24204b9 commit 4837d2821f24e0d55c194cac9b629ee4d017d016
@root root authored 3 hours ago
Showing 15 changed files
View
backend/app/api/tasks.py
View
backend/app/models.py
View
backend/app/services/detailing.py
View
backend/tests/test_detailing.py
View
backend/tests/test_predict.py
View
docs/TZ.md
View
frontend/src/aiPrompt.ts
View
frontend/src/api.ts
View
frontend/src/components/TaskCard.vue
View
frontend/src/locales/en.ts
View
frontend/src/locales/ru.ts
View
frontend/src/locales/uk.ts
View
frontend/src/taskui.ts
View
frontend/src/views/StackView.vue
View
frontend/src/views/TaskView.vue