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%
6.2 KB · 93 lines markdown
Rendered Raw Blame History
1# Analyse du dépôt — Immbot AI23Date : 2026-08-04 · Racine analysée : `~/Desktop/UQO/UQO_PREPARATION_COURS/`45## 1. Structure du dépôt67```8UQO_PREPARATION_COURS/9├── IMM1003-20/            # Cours « Éléments d'évaluation immobilière » (dépôt git autonome)10│   ├── plan_de_cours.tex11│   ├── description_moodle.md / .html12│   ├── slides/seance01.tex … seance14.tex   (+ PDF compilés, style uqo-style.sty)13│   ├── exercices/          # énoncés + solutions ateliers 1-3 (.tex/.pdf), aide_memoire.tex,14│   │                       # examen_final.pdf, scripts Python de génération de données15│   └── plateforme_ateliers/ # prototype FastAPI (soumission d'ateliers) + submissions.db16├── IMM1033-20/            # Cours « Méthodes du coût en évaluation immobilière » (dépôt git autonome)17│   ├── plan_de_cours.tex18│   ├── slides/seance01_introduction.tex … seance14_synthese_revision.tex19│   ├── exercices/          # ateliers 1-3, aide_memoire.tex, glossaire.tex, examen_mi_session.tex20│   └── plateforme_data/    # données d'ateliers JSON21├── IMM-QUEBEC/            # Rapport LaTeX d'analyse du marché immobilier québécois (figures, tables, données FRED/CREA)22├── output/23│   ├── course-analysis/    # analyses pédagogiques détaillées des deux cours (blueprints d'examens)24│   ├── IMM1003-20/, IMM1033-20/  # examens intra/final générés + solutionnaires + grilles25├── scripts/               # build LaTeX (latexmk/LuaLaTeX)26└── immbot-ai/             # ← la présente plateforme (nouveau)27```2829## 2. Fichiers et contenus détectés3031| Catégorie | IMM1003-20 | IMM1033-20 |32|---|---|---|33| Diapositives (source .tex beamer) | 14 séances, ~731 frames | 14 séances, ~940 frames |34| Plan de cours | `plan_de_cours.tex` (Automne 2026) | `plan_de_cours.tex` (Automne 2026) |35| Ateliers | 3 énoncés + 3 solutions (.tex) | 3 énoncés + 3 solutions (.tex) |36| Aide-mémoire | `aide_memoire.tex` | `aide_memoire.tex` |37| Glossaire | — | `glossaire.tex` (bilingue) |38| Examens existants | `examen_final.pdf` (corrigé embarqué) | `examen_mi_session.tex` (corrigé embarqué) |39| Analyses pédagogiques | `output/course-analysis/IMM1003-20-analysis.md` | `…/IMM1033-20-analysis.md` |40| Examens générés | `output/IMM1003-20/{intra,final}/` | `output/IMM1033-20/{intra,final}/` |4142**Format dominant : LaTeX source.** C'est un atout majeur : l'ingestion RAG peut travailler sur la43source structurée (frames titrées, `\section`, boîtes sémantiques `defbox`/`importbox`/`alertbox`,44équations, tableaux) plutôt que sur de l'extraction PDF avec perte. Chaque frame beamer = une45diapositive numérotable → citations précises **[Cours — Séance N — Diapositive M]**.4647## 3. Technologies réutilisables4849- **Style visuel UQO** : couleurs officielles dans `uqo-style.sty` (bleu #003E7E, or #C6A300,50  gris #58595B, vert #008046, rouge #B42318) — réutilisées comme base de la palette Immbot AI.51- **Logo UQO** : `uqo-logo.png` présent dans chaque dossier (utilisable dans l'interface, avec le logo Immbot AI original).52- **Prototype `plateforme_ateliers`** (FastAPI + SQLite) : preuve que les étudiants ont des comptes53  « code permanent + mot de passe ». Non réutilisé comme base de code (pile différente), mais ses54  **paramètres pédagogiques** (ratios de dépenses, taux, ajustements) documentent les conventions du cours.55- **Scripts Python de génération d'ateliers** : documentent les conventions de calcul (profit sur56  directs+indirects, seuils 15/25 %, intérêts intercalaires ½).57- **Analyses `output/course-analysis/`** : cartographie pédagogique déjà faite (objectifs, difficultés,58  incohérences connues) — réutilisée pour la carte des concepts et classée **instructor-private**.5960## 4. Dépendances et environnement6162- Node v25.9.0 (inclut `node:sqlite` avec FTS5 + `remove_diacritics` — vérifié), pnpm, Python 3.14,63  SQLite 3.54, PostgreSQL 17 (installé), Docker 29.64- Aucun projet Next.js/React existant, aucune intégration OpenRouter existante, aucun `.env` existant.6566## 5. Données sensibles et risques6768| Risque | Détail | Mitigation |69|---|---|---|70| **`submissions.db`** (plateforme_ateliers) | Contient potentiellement codes permanents et soumissions d'étudiants | **Exclu de l'indexation** ; jamais copié dans immbot-ai |71| **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** |72| **Blueprints d'examens** (`output/course-analysis/`) | Contiennent la stratégie d'évaluation du professeur | `instructor-private` |73| Clés API | Clé OpenRouter fournie par le professeur | `.env` local uniquement, jamais commitée, jamais envoyée au navigateur |74| Secrets du prototype | `ADMIN_KEY`/`APP_SECRET` en dur dans `app.py` | Non réutilisés ; signalés au professeur |75| Solutions d'ateliers | Publiées aux étudiants dans le cours actuel | Indexées comme contenu officiel (catégorie `solution`) |7677## 6. Incohérences connues du matériel (héritées des analyses)7879Les analyses de cours documentent des incohérences internes (seuils 15/25 % vs 25/50 %, base du80profit de l'entrepreneur, ratios de dépenses, sessions Automne/Hiver). Immbot AI les gère ainsi :81- le RAG cite la source exacte, donc une divergence entre deux documents reste **traçable** ;82- les prompts par cours signalent à l'assistant les conventions retenues (documentées dans83  `prompts/course-imm1003.md` et `prompts/course-imm1033.md`) ;84- le professeur peut corriger ces prompts depuis l'administration.8586## 7. Recommandations retenues87881. Ingestion **LaTeX-first** (source .tex), PDF en secours seulement.892. SQLite (`node:sqlite`) en développement avec FTS5 + embeddings locaux ; chemin PostgreSQL/pgvector documenté pour la production (`docs/deployment.md`).903. Embeddings **locaux** (multilingual-e5-small via transformers.js) : gratuits, privés, hors-ligne — OpenRouter n'offre pas d'API d'embeddings.914. Espaces de connaissances isolés par cours + `instructor-private` pour tout matériel d'examen.925. Réutiliser la palette UQO comme fondation de l'identité visuelle d'Immbot AI.93