feat(assistant): источники в ответах, режим-наставник, оценки, утренний бриф

- Источники: RAG возвращает sources (slug/§/ref), под ответом ссылка «по учебнику
  X, §N» на параграф (миграция 064: section_ref в textbook_chunks; headless-индексатор
  его заполняет). Статический индексатор теперь не затирает headless-данные.
- Режим-наставник: переключатель Ответ/Подсказка/Проверить решение в «Спроси»
  (mode в ask + промпт); на карточке экзамена кнопка «Подсказка» (mode hint).
- Оценка ответов: лайк/дизлайк под ответом (assistant_feedback) + сводка в админке.
- Утренний бриф на дашборде: «занимался N из 5 дн + план на сегодня».

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-04 19:38:47 +03:00
parent 0119ea0f15
commit 4224a22092
9 changed files with 155 additions and 40 deletions
@@ -0,0 +1,18 @@
-- ═══════════════════════════════════════════════════════════════
-- 064: Ассистент — источники в ответах + оценки качества
--
-- section_ref — id параграфа (sec-<id>) у куска учебника, чтобы под RAG-ответом
-- давать ссылку «по учебнику X, §N» прямо на параграф (/textbook/<slug>#sec-<ref>).
-- assistant_feedback — лайк/дизлайк на ответы (для оценки качества в админке).
-- ═══════════════════════════════════════════════════════════════
ALTER TABLE textbook_chunks ADD COLUMN section_ref TEXT;
CREATE TABLE assistant_feedback (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER,
rating INTEGER NOT NULL, -- 1 = лайк, -1 = дизлайк
q TEXT,
created_at TEXT NOT NULL DEFAULT (datetime('now'))
);
CREATE INDEX idx_assistant_feedback_created ON assistant_feedback(created_at);