Перейти к содержимому

Daily LLM-обзор

Кнопка → Pages Function → Anthropic API → текстовое резюме. Доступно две аудитории:

  • Учитель. Сводка по когорте: где класс силён, где проседает, какие микроскиллы в ZPD большинства, на ком сфокусироваться.
  • Ученик. Персональный взгляд: что освоено, что в зоне роста, где сделать ещё попыток.
demo-cohort · 2026-05-08
Nupp kutsub Pages Function'it /api/daily-review, mis arvutab agregaadid koodis, saadab need Claude'ile ja saab lühikese kokkuvõtte. Arvud, mis mudelisse läksid, on avatavas plokis.

В проекте есть жёсткое правило: математика не идёт через LLM (см. web/lib/explain.ts). Эта фича границу не нарушает — LLM получает только агрегированные числа, посчитанные детерминированно в src/lib/review-stats.ts. В подсказке прямо запрещено выдумывать pKnown, имена и темы. Под раскрываемым блоком «Исходные числа» виден тот же JSON, что ушёл в модель — можно сверить факт за фактом.

[виджет DailyReviewPanel]
│ POST /api/daily-review { audience, snapshotKey, focusUserId? }
[Pages Function functions/api/daily-review.ts]
1. валидирует payload
2. FileSnapshotLoader → student_skill_state-совместимый JSON
3. cohortAggregates / studentAggregates (медианы, ZPD-разбивка)
4. system + user → Anthropic Messages API (prompt caching)
5. парсит JSON-ответ модели
6. возвращает { markdown, actionItems, rawNumbers, usage }

Снимок сейчас читается из src/data/snapshots/demo-cohort.json (сгенерирован скриптом scripts/seed-demo-snapshot.mjs поверх data/matx-define). Когда companion MATx даст HTTP-эндпойнт student_skill_state, в Pages Function меняется одна строка на HttpSnapshotLoader — формат идентичен схеме PR-1 (user_id, competency_id, pKnown, attempts, last_updated).

По умолчанию claude-haiku-4-5-20251001 — короткий обзор по таблице чисел, длинного reasoning не нужно. Системный блок помечен cache_control: ephemeral, так что повторные нажатия в течение 5 минут читают его из кэша. Триггер только ручной — ни cron, ни автоматических вызовов.

В Cloudflare Pages → Settings → Environment variables добавить ANTHROPIC_API_KEY (Encrypted). Локально: cp study-guide/.dev.vars.example study-guide/.dev.vars, вписать ключ, и npx wrangler pages dev dist.