SPB Git forge

spb/immbot-ai

Public
1commits 1branches 0releases
1.5 MBsize
maindefault branch
20 days agolast push
TypeScript 98.3% CSS 0.9% Shell 0.7%
3.2 KB

# Modèle de données — Immbot AI

Schéma complet : lib/db/schema.ts (SQLite, portable PostgreSQL — types simples, FTS5 remplaçable par tsvector, blob d'embedding par pgvector).

# Domaines

# Identité et sécurité

  • users — rôles student|instructor|admin, must_change_password, is_initial_admin, auth_provider (préparé pour un SSO futur).
  • sessions — jeton haché SHA-256 (jamais en clair), expiration 14 j.
  • auth_events — journal (connexions, échecs, resets, actions admin).
  • enrollments — accès par cours (toute route cours vérifie l'inscription).

# Contenu et RAG

  • courses — IMM1003 / IMM1033 (chemins sources, couleur, session).
  • documents — fichier ingéré : space (official-*, instructor-private, student-*), type, semaine, somme de contrôle SHA-256, statut, visibilité étudiante.
  • chunks — fragment : référence exacte (ref_type slide/section/exercise/glossary/page, ref_number, ref_label « Séance 4 — Diapositive 18 »), contenu indexable + affichable, types de boîtes sémantiques, embedding (blob Float32 384d), propriétaire éventuel.
  • chunks_fts — FTS5 (unicode61 remove_diacritics 2), rowid = chunks.id.
  • ingestion_runs — exécutions avec rapport.

# Conversations

  • conversations — cours, mode, mode de connaissances, modèle, dossier/épingle/archive, branches (parent_conversation_id, branched_from_message_id).
  • messages — contenu, citations résolues (JSON), pièces jointes, jetons, coût, feedback, signalement, sauvegarde.
  • uploads — fichiers étudiants (texte extrait, persistant ou lié à une conversation).
  • report_flags — signalements à traiter par le professeur.

# Modèles et usage

  • model_overrides — surcharges admin du registre OpenRouter.
  • usage_log — chaque appel LLM (jetons, coût, latence, erreur) → budgets et statistiques.
  • settings — clé/valeur JSON : budgets, intégrité, presets, croisement inter-cours, partage.
  • prompt_versions — prompts système versionnés (actif = dernière version active).
  • announcements — annonces ciblées par cours.

# Apprentissage

  • concepts + concept_links — la carte des connaissances (préalable/relation/application/ approfondissement), 36 concepts par cours.
  • mastery (score composite par utilisateur×concept) + mastery_events (chaque observation : type de tâche, difficulté, autonomie, confiance) — voir learning-science-strategy.md.
  • flashcards + card_states (SM-2 : EF, intervalle, échéance) + review_log (historique complet, permet une migration FSRS sans perte).
  • quiz_questions (banque : type, difficulté 1-5, options JSON, explication) + quiz_sessions + quiz_answers.
  • mock_exams (composition de questions, durée, type) + exam_attempts (réponses, note, analyse par concept/axe JSON).
  • study_plans — plan généré (JSON jours/items cochables) + configuration.
  • error_notebook — erreurs capturées (quiz/examen) avec statut étudiant.
  • summaries — résumés générés avec citations.
  • saved_items — bibliothèque personnelle.
  • activity_log — activité (séries de jours, temps d'étude estimé).
  • weekly_goals — objectifs hebdomadaires.