SPB Git forge

spb/immbot-ai

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

# Analyse du dépôt — Immbot AI

Date : 2026-08-04 · Racine analysée : ~/Desktop/UQO/UQO_PREPARATION_COURS/

# 1. Structure du dépôt

text
UQO_PREPARATION_COURS/
├── IMM1003-20/            # Cours « Éléments d'évaluation immobilière » (dépôt git autonome)
│   ├── plan_de_cours.tex
│   ├── description_moodle.md / .html
│   ├── slides/seance01.tex … seance14.tex   (+ PDF compilés, style uqo-style.sty)
│   ├── exercices/          # énoncés + solutions ateliers 1-3 (.tex/.pdf), aide_memoire.tex,
│   │                       # examen_final.pdf, scripts Python de génération de données
│   └── plateforme_ateliers/ # prototype FastAPI (soumission d'ateliers) + submissions.db
├── IMM1033-20/            # Cours « Méthodes du coût en évaluation immobilière » (dépôt git autonome)
│   ├── plan_de_cours.tex
│   ├── slides/seance01_introduction.tex … seance14_synthese_revision.tex
│   ├── exercices/          # ateliers 1-3, aide_memoire.tex, glossaire.tex, examen_mi_session.tex
│   └── plateforme_data/    # données d'ateliers JSON
├── IMM-QUEBEC/            # Rapport LaTeX d'analyse du marché immobilier québécois (figures, tables, données FRED/CREA)
├── output/
│   ├── course-analysis/    # analyses pédagogiques détaillées des deux cours (blueprints d'examens)
│   ├── IMM1003-20/, IMM1033-20/  # examens intra/final générés + solutionnaires + grilles
├── scripts/               # build LaTeX (latexmk/LuaLaTeX)
└── immbot-ai/             # ← la présente plateforme (nouveau)

# 2. Fichiers et contenus détectés

Catégorie IMM1003-20 IMM1033-20
Diapositives (source .tex beamer) 14 séances, ~731 frames 14 séances, ~940 frames
Plan de cours plan_de_cours.tex (Automne 2026) plan_de_cours.tex (Automne 2026)
Ateliers 3 énoncés + 3 solutions (.tex) 3 énoncés + 3 solutions (.tex)
Aide-mémoire aide_memoire.tex aide_memoire.tex
Glossaire glossaire.tex (bilingue)
Examens existants examen_final.pdf (corrigé embarqué) examen_mi_session.tex (corrigé embarqué)
Analyses pédagogiques output/course-analysis/IMM1003-20-analysis.md …/IMM1033-20-analysis.md
Examens générés output/IMM1003-20/{intra,final}/ output/IMM1033-20/{intra,final}/

Format dominant : LaTeX source. C'est un atout majeur : l'ingestion RAG peut travailler sur la source structurée (frames titrées, \section, boîtes sémantiques defbox/importbox/alertbox, équations, tableaux) plutôt que sur de l'extraction PDF avec perte. Chaque frame beamer = une diapositive numérotable → citations précises [Cours — Séance N — Diapositive M].

# 3. Technologies réutilisables

  • Style visuel UQO : couleurs officielles dans uqo-style.sty (bleu #003E7E, or #C6A300, gris #58595B, vert #008046, rouge #B42318) — réutilisées comme base de la palette Immbot AI.
  • Logo UQO : uqo-logo.png présent dans chaque dossier (utilisable dans l'interface, avec le logo Immbot AI original).
  • Prototype plateforme_ateliers (FastAPI + SQLite) : preuve que les étudiants ont des comptes « code permanent + mot de passe ». Non réutilisé comme base de code (pile différente), mais ses paramètres pédagogiques (ratios de dépenses, taux, ajustements) documentent les conventions du cours.
  • Scripts Python de génération d'ateliers : documentent les conventions de calcul (profit sur directs+indirects, seuils 15/25 %, intérêts intercalaires ½).
  • Analyses output/course-analysis/ : cartographie pédagogique déjà faite (objectifs, difficultés, incohérences connues) — réutilisée pour la carte des concepts et classée instructor-private.

# 4. Dépendances et environnement

  • Node v25.9.0 (inclut node:sqlite avec FTS5 + remove_diacritics — vérifié), pnpm, Python 3.14, SQLite 3.54, PostgreSQL 17 (installé), Docker 29.
  • Aucun projet Next.js/React existant, aucune intégration OpenRouter existante, aucun .env existant.

# 5. Données sensibles et risques

Risque Détail Mitigation
submissions.db (plateforme_ateliers) Contient potentiellement codes permanents et soumissions d'étudiants Exclu de l'indexation ; jamais copié dans immbot-ai
Examens réels et solutionnaires (output/…/exam, examen_final.pdf, examen_mi_session.tex) Révéleraient les évaluations Classés instructor-private : indexés mais invisibles aux étudiants
Blueprints d'examens (output/course-analysis/) Contiennent la stratégie d'évaluation du professeur instructor-private
Clés API Clé OpenRouter fournie par le professeur .env local uniquement, jamais commitée, jamais envoyée au navigateur
Secrets du prototype ADMIN_KEY/APP_SECRET en dur dans app.py Non réutilisés ; signalés au professeur
Solutions d'ateliers Publiées aux étudiants dans le cours actuel Indexées comme contenu officiel (catégorie solution)

# 6. Incohérences connues du matériel (héritées des analyses)

Les analyses de cours documentent des incohérences internes (seuils 15/25 % vs 25/50 %, base du profit de l'entrepreneur, ratios de dépenses, sessions Automne/Hiver). Immbot AI les gère ainsi :

  • le RAG cite la source exacte, donc une divergence entre deux documents reste traçable ;
  • les prompts par cours signalent à l'assistant les conventions retenues (documentées dans prompts/course-imm1003.md et prompts/course-imm1033.md) ;
  • le professeur peut corriger ces prompts depuis l'administration.

# 7. Recommandations retenues

  1. Ingestion LaTeX-first (source .tex), PDF en secours seulement.
  2. SQLite (node:sqlite) en développement avec FTS5 + embeddings locaux ; chemin PostgreSQL/pgvector documenté pour la production (docs/deployment.md).
  3. Embeddings locaux (multilingual-e5-small via transformers.js) : gratuits, privés, hors-ligne — OpenRouter n'offre pas d'API d'embeddings.
  4. Espaces de connaissances isolés par cours + instructor-private pour tout matériel d'examen.
  5. Réutiliser la palette UQO comme fondation de l'identité visuelle d'Immbot AI.