feat(assistant): долгая память об ученике (персонализация)
Производный профиль (без LLM): слабые предметы, трудные темы экзамена, цель/дата, серия — из test_sessions/exam_attempts/exam_user_plan. Подмешивается в системный промпт → персональные ответы; такие не кэшируются глобально. Заметки: таблица assistant_memory + фоновый LLM-экстрактор (дросселирован), дедуп + лимит 15. Панель ученика «Что я о тебе помню» (профиль + заметки, удаление). Админ-тумблер. API GET/DELETE /assistant/memory (/:id под authMiddleware, владелец проверяется в хендлере). Заодно: сверка стабильного baseline route-auth 56→66 (долг от branch-merge, хук не идёт на merge) — новых незащищённых маршрутов не добавлено. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
-- Долгая память Квантика об ученике: короткие устойчивые заметки
|
||||
-- (трудности/предпочтения/цели). Производный профиль считается на лету.
|
||||
CREATE TABLE IF NOT EXISTS assistant_memory (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL,
|
||||
kind TEXT NOT NULL DEFAULT 'note', -- note | difficulty | preference | goal
|
||||
text TEXT NOT NULL,
|
||||
weight REAL NOT NULL DEFAULT 1,
|
||||
source TEXT NOT NULL DEFAULT 'extractor', -- extractor | signal | manual
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_assistant_memory_user ON assistant_memory(user_id);
|
||||
Reference in New Issue
Block a user