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.pngpré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:sqliteavec 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
.envexistant.
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.mdetprompts/course-imm1033.md) ; - le professeur peut corriger ces prompts depuis l'administration.
7. Recommandations retenues
- Ingestion LaTeX-first (source .tex), PDF en secours seulement.
- SQLite (
node:sqlite) en développement avec FTS5 + embeddings locaux ; chemin PostgreSQL/pgvector documenté pour la production (docs/deployment.md). - Embeddings locaux (multilingual-e5-small via transformers.js) : gratuits, privés, hors-ligne — OpenRouter n'offre pas d'API d'embeddings.
- Espaces de connaissances isolés par cours +
instructor-privatepour tout matériel d'examen. - Réutiliser la palette UQO comme fondation de l'identité visuelle d'Immbot AI.