projet_ia_vault_ok

This commit is contained in:
Ladebeze66 2026-04-23 19:41:58 +02:00
parent 2878495e7a
commit c879fc1830
17 changed files with 705 additions and 85 deletions

View File

@ -59,7 +59,12 @@ DOMAIN_KEYWORDS: dict[str, list[str]] = {
"web": ["next.js", "nextjs", "react", "django", "api rest", "websocket", "strapi"],
"devops": ["docker", "nginx", "mariadb", "wordpress", "inception", "conteneur"],
"securite": ["born2beroot", "ssh", "fail2ban", "ufw", "lvm", "cybersécurité"],
"ia": ["llm", "ollama", "ia locale", "intelligence artificielle", "chatbot", "embedding"],
"ia": [
"llm", "ollama", "ia locale", "intelligence artificielle", "chatbot", "embedding",
# Spécialisation Data / IA (ft_linear_regression, piscine Python data, etc.)
"machine learning", "régression", "régression linéaire", "descente de gradient",
"numpy", "pandas", "scikit-learn", "data science", "dataframe",
],
"graphique": ["minilibx", "raycasting", "cub3d", "fract-ol", "wolfenstein"],
"3d": ["impression 3d", "3d printing", "prusa", "slicer", "filament"],
"domotique": ["domotique", "home assistant", "zigbee", "iot"],
@ -74,6 +79,11 @@ TAG_KEYWORDS: dict[str, list[str]] = {
"concurrence": ["thread", "mutex", "philosopher"],
"docker": ["docker", "inception"],
"makefile": ["makefile"],
"data-ia": [
"ft_linear_regression", "ft-linear-regression",
"régression linéaire", "descente de gradient",
"piscine python", "numpy", "pandas", "scikit-learn",
],
"projet-perso": [], # drapeau manuel (futur)
}

View File

@ -2,7 +2,7 @@
title: MOC — Algorithmique
slug: MOC-Algorithmique
type: moc
source: vault/generated
source: manual
domains: [algorithmique]
tags: [moc]
aliases:
@ -19,12 +19,12 @@ answers:
- Que fait-il en algorithmique ?
priority: 7
linked:
updated: 2026-04-22
updated: 2026-04-23
visibility: public
---
Notes du domaine *algorithmique* (13 au total).
Notes du domaine *algorithmique* (15 au total).
## Notes liées
@ -32,10 +32,12 @@ Notes du domaine *algorithmique* (13 au total).
- [[cpp-partie1|cpp-partie1]] — _algorithmique, c, cpp, ecole-42, reseau_
- [[cpp-partie2|cpp-partie2]] — _algorithmique, c, cpp, devops, domotique, ecole-42, reseau_
- [[fract-ol|fract-ol]] — _algorithmique, domotique, ecole-42, graphique, reseau, systeme_
- [[ft-linear-regression|ft_linear_regression]] — _algorithmique, ecole-42, ia_
- [[ft-transcendence|ft_transcendence]] — _algorithmique, devops, ecole-42, reseau, web_
- [[inception|inception]] — _algorithmique, devops, ecole-42, reseau, systeme_
- [[libft|libft]] — _algorithmique, c, domotique, ecole-42, reseau_
- [[minishell|minishell]] — _algorithmique, domotique, ecole-42, reseau, systeme_
- [[piscine-python-data-science|Piscine Python — Data Science]] — _algorithmique, ecole-42, ia_
- [[ia|Mon Exploration et Maîtrise de lIntelligence Artificielle]] — _algorithmique, ecole-42, ia_
- [[competence|Mon expérience dans la domotique]] — _algorithmique, domotique, ia, reseau_
- [[impression-3d|Mon parcours dans limpression 3D]] — _3d, algorithmique, reseau_

View File

@ -2,7 +2,7 @@
title: MOC — Devops
slug: MOC-Devops
type: moc
source: vault/generated
source: manual
domains: [devops]
tags: [moc]
aliases:
@ -19,15 +19,19 @@ answers:
- Que fait-il en devops ?
priority: 7
linked:
updated: 2026-04-22
updated: 2026-04-23
visibility: public
---
Notes du domaine *devops* (3 au total).
Notes du domaine *devops* (7 au total).
## Notes liées
- [[cpp-partie2|cpp-partie2]] — _algorithmique, c, cpp, devops, domotique, ecole-42, reseau_
- [[fernandgrascalvet-com|fernandgrascalvet.com (portfolio)]] — _devops, ia, web_
- [[ft-transcendence|ft_transcendence]] — _algorithmique, devops, ecole-42, reseau, web_
- [[grasbot|GrasBot — chatbot IA du portfolio]] — _devops, ia, web_
- [[inception|inception]] — _algorithmique, devops, ecole-42, reseau, systeme_
- [[newsletter-ia|Newsletter IA — Ollama + Listmonk + Directus]] — _devops, ia, web_
- [[transcription-video|Transcription vidéo automatique]] — _devops, ia_

View File

@ -2,7 +2,7 @@
title: MOC — École 42
slug: MOC-Ecole-42
type: moc
source: vault/generated
source: manual
domains: [ecole-42]
tags: [moc]
aliases:
@ -21,7 +21,7 @@ answers:
- Que fait-il en ecole-42 ?
priority: 7
linked:
updated: 2026-04-22
updated: 2026-04-23
visibility: public
---
@ -36,6 +36,7 @@ Tout ce qui est rattaché à la formation 42 Perpignan.
- [[cub3d|cub3d]] — _domotique, ecole-42, graphique, reseau_
- [[fract-ol|fract-ol]] — _algorithmique, domotique, ecole-42, graphique, reseau, systeme_
- [[ft-irc|ft-irc]] — _cpp, ecole-42, reseau, systeme_
- [[ft-linear-regression|ft_linear_regression]] — _algorithmique, ecole-42, ia_
- [[ft-printf|Ft-printf]] — _c, ecole-42, reseau_
- [[ft-transcendence|ft_transcendence]] — _algorithmique, devops, ecole-42, reseau, web_
- [[get-next-line|Get_next_line]] — _c, ecole-42, reseau_
@ -46,5 +47,6 @@ Tout ce qui est rattaché à la formation 42 Perpignan.
- [[ia|Mon Exploration et Maîtrise de lIntelligence Artificielle]] — _algorithmique, ecole-42, ia_
- [[netpractice|netpractice]] — _algorithmique, ecole-42, reseau_
- [[philosopher|philosopher]] — _c, ecole-42, reseau, systeme_
- [[piscine-python-data-science|Piscine Python — Data Science]] — _algorithmique, ecole-42, ia_
- [[presentation-ecole-42|Présentation école 42]] — _ecole-42, reseau, systeme_
- [[push-swap|push_swap]] — _algorithmique, ecole-42, reseau_

View File

@ -2,7 +2,7 @@
title: MOC — Ia
slug: MOC-Ia
type: moc
source: vault/generated
source: manual
domains: [ia]
tags: [moc]
aliases:
@ -28,11 +28,15 @@ visibility: public
---
Notes du domaine *ia* (4 au total : 2 compétences + 2 projets / techniques liés).
Notes du domaine *ia* (8 au total : 2 compétences + 6 projets liés).
## Notes liées
- [[grasbot|GrasBot — assistant IA du portfolio]] — _devops, ecole-42, ia, web_
- [[grasbot|GrasBot — chatbot IA du portfolio]] — _devops, ia, web_
- [[newsletter-ia|Newsletter IA — Ollama + Listmonk + Directus]] — _devops, ia, web_
- [[transcription-video|Transcription vidéo automatique]] — _devops, ia_
- [[ft-linear-regression|ft_linear_regression]] — _algorithmique, ecole-42, ia_
- [[piscine-python-data-science|Piscine Python — Data Science]] — _algorithmique, ecole-42, ia_
- [[ia|Mon Exploration et Maîtrise de lIntelligence Artificielle]] — _algorithmique, ecole-42, ia_
- [[competence|Mon expérience dans la domotique]] — _algorithmique, domotique, ia, reseau_
- [[fernandgrascalvet-com|fernandgrascalvet.com (portfolio)]] — _devops, ia, reseau, securite, web_ (couverture transversale du site)
- [[fernandgrascalvet-com|fernandgrascalvet.com (portfolio)]] — _devops, ia, web_ (couverture transversale du site)

View File

@ -2,7 +2,7 @@
title: MOC — Projets
slug: MOC-Projets
type: moc
source: vault/generated
source: manual
domains: []
tags: [moc]
aliases:
@ -28,18 +28,22 @@ Hub des projets de Fernand Gras-Calvet, triés par titre.
- [[cpp-partie1|cpp-partie1]] — _algorithmique, c, cpp, ecole-42, reseau_
- [[cpp-partie2|cpp-partie2]] — _algorithmique, c, cpp, devops, domotique, ecole-42, reseau_
- [[cub3d|cub3d]] — _domotique, ecole-42, graphique, reseau_
- [[fernandgrascalvet-com|fernandgrascalvet.com (portfolio)]] — _devops, ia, reseau, securite, web_
- [[fernandgrascalvet-com|fernandgrascalvet.com (portfolio)]] — _devops, ia, web_
- [[fract-ol|fract-ol]] — _algorithmique, domotique, ecole-42, graphique, reseau, systeme_
- [[ft-irc|ft-irc]] — _cpp, ecole-42, reseau, systeme_
- [[ft-linear-regression|ft_linear_regression]] — _algorithmique, ecole-42, ia_
- [[ft-printf|Ft-printf]] — _c, ecole-42, reseau_
- [[ft-transcendence|ft_transcendence]] — _algorithmique, devops, ecole-42, reseau, web_
- [[get-next-line|Get_next_line]] — _c, ecole-42, reseau_
- [[grasbot|GrasBot — assistant IA du portfolio]] — _devops, ecole-42, ia, web_
- [[grasbot|GrasBot — chatbot IA du portfolio]] — _devops, ia, web_
- [[inception|inception]] — _algorithmique, devops, ecole-42, reseau, systeme_
- [[libft|libft]] — _algorithmique, c, domotique, ecole-42, reseau_
- [[minishell|minishell]] — _algorithmique, domotique, ecole-42, reseau, systeme_
- [[minitalk|minitalk]] — _c, ecole-42, reseau, systeme_
- [[netpractice|netpractice]] — _algorithmique, ecole-42, reseau_
- [[newsletter-ia|Newsletter IA — Ollama + Listmonk + Directus]] — _devops, ia, web_
- [[philosopher|philosopher]] — _c, ecole-42, reseau, systeme_
- [[piscine-python-data-science|Piscine Python — Data Science]] — _algorithmique, ecole-42, ia_
- [[presentation-ecole-42|Présentation école 42]] — _ecole-42, reseau, systeme_
- [[push-swap|push_swap]] — _algorithmique, ecole-42, reseau_
- [[transcription-video|Transcription vidéo automatique]] — _devops, ia_

View File

@ -2,7 +2,7 @@
title: MOC — Web
slug: MOC-Web
type: moc
source: vault/generated
source: manual
domains: [web]
tags: [moc]
aliases:
@ -25,10 +25,12 @@ visibility: public
---
Notes du domaine *web* (3 au total).
Notes du domaine *web* (5 au total).
## Notes liées
- [[developpement-web-and-hebergement-sur-serveur-windows|Développement Web & Hébergement sur serveur Windows]] — _reseau, securite, web_
- [[fernandgrascalvet-com|fernandgrascalvet.com (portfolio)]] — _devops, ia, reseau, securite, web_
- [[fernandgrascalvet-com|fernandgrascalvet.com (portfolio)]] — _devops, ia, web_
- [[grasbot|GrasBot — chatbot IA du portfolio]] — _devops, ia, web_
- [[newsletter-ia|Newsletter IA — Ollama + Listmonk + Directus]] — _devops, ia, web_
- [[ft-transcendence|ft_transcendence]] — _algorithmique, devops, ecole-42, reseau, web_

View File

@ -1,27 +1,27 @@
---
title: "fernandgrascalvet.com — site portfolio (Next.js / Strapi)"
title: "fernandgrascalvet.com — site portfolio"
slug: fernandgrascalvet-com
type: projet
source: manual
domains: [web, devops, securite, reseau, ia]
tags: [nextjs, strapi, iis, tailwind, grasbot]
domains: [web, devops, ia]
tags: [nextjs, strapi, portfolio]
aliases:
- fernandgrascalvet
- fernandgrascalvet.com
- site fernand grascalvet
- portfolio next strapi
- mon site
- digital atelier
- site portfolio
- portfolio en ligne
- son site
- ton site
- site perso
- site web de fernand
answers:
- "Comment est fait le site fernandgrascalvet.com ?"
- Quelle est la stack de ton site ?
- Parle de ton site portfolio
- Next.js et Strapi sur ton serveur
- "Quel est le site de Fernand ?"
- "Parle-moi de son site portfolio."
- "Où peut-on voir ses projets en ligne ?"
- "Sur quel site est hébergé GrasBot ?"
priority: 6
linked:
- "[[MOC-Projets]]"
- "[[MOC-Web]]"
- "[[MOC-Technique]]"
related:
- "[[developpement-web-and-hebergement-sur-serveur-windows]]"
- "[[grasbot]]"
@ -31,15 +31,41 @@ updated: 2026-04-23
visibility: public
---
**Produit courant** : le portfolio public **fernandgrascalvet.com** — contenu géré par **Strapi 5**, rendu par **Next.js 15** (App Router, Tailwind, refonte visuelle *Digital Atelier* : Manrope + Newsreader, cartes *vellum*, etc.), servi derrière **IIS** sur **Windows Server 2025** avec certificats **Lets Encrypt** (Win-ACME).
# fernandgrascalvet.com — site portfolio
## Fonctionnalités notables (20252026)
> [!info] Rôle de cette note
> Fiche **projet** dédiée au site public lui-même. Pour le *comment* technique
> (stack détaillée, pipeline de build, ports) voir [[architecture-site]] ;
> pour la *posture métier* (hébergement IIS, sécurité, SSL) voir la fiche
> compétence [[developpement-web-and-hebergement-sur-serveur-windows]].
- **Portfolio** : projets, fiches détail avec Markdown riche, carrousels, glossaire.
- **Compétences** : fiches richtext *ou* vues **vignettes** lorsque des entrées **Strapi** `realisation-ia` sont liées (ex. réalisations IA) ; fiche fille **`/competences/[slug]/[realisation]`** identique en gabarit à une fiche projet.
- **GrasBot** : assistant IA global, voir [[grasbot]].
- **Contact** : envoi de-mail via l**API Brevo** (route Next `POST /api/contact`) — **plus** de stockage des messages dans Strapi.
## En une phrase
## Périmètre
Portfolio public de Fernand Gras-Calvet, **auto-hébergé** sur un serveur
personnel (Windows Server + IIS), construit en **Next.js 15** et alimenté
par **Strapi 5**, avec un assistant IA intégré ([[grasbot|GrasBot]]).
Ce dépôt documente l**implémentation** ; lhébergement, IIS et la sécurité de base sont alignés sur la fiche de compétence [[developpement-web-and-hebergement-sur-serveur-windows]] et sur [[architecture-site]].
## Ce que le visiteur y trouve
- **Portfolio** : fiches projets (école 42 et perso) avec Markdown riche
et galeries.
- **Compétences** : fiches richtext ou **vignettes** de *réalisations IA*
quand le Strapi contient des entrées `realisation-ia` liées — route fille
`/competences/[slug]/[realisation]` pour le détail.
- **Contact** : e-mail transactionnel via **Brevo** (plus de stockage
Strapi des messages).
- **GrasBot** : bouton flottant disponible sur toutes les pages.
## Différentiation avec les notes voisines
| Note | Angle |
|------|-------|
| `fernandgrascalvet-com` (cette note) | **Projet public** (ce qu'on *voit*) |
| [[architecture-site]] | Schéma technique interne (stack, flux, ports) |
| [[developpement-web-and-hebergement-sur-serveur-windows]] | Compétence / savoir-faire web + hébergement |
| [[grasbot]] | Fonctionnalité IA du site |
## Liens
- [[MOC-Projets]] — hub projets
- [[MOC-Web]] — hub domaine *web*

View File

@ -0,0 +1,131 @@
---
title: "ft_linear_regression"
slug: ft-linear-regression
type: projet
source: manual
domains: [ia, ecole-42, algorithmique]
tags: [data-ia]
aliases:
- ft linear regression
- ft_linear_regression
- ft-linear-regression
- régression linéaire
- linear regression
- descente de gradient
- régression 42
- premier projet ia 42
- régression linéaire from scratch
answers:
- "Qu'est-ce que ft_linear_regression ?"
- "Parle-moi de ft_linear_regression."
- "Comment a-t-il implémenté une régression linéaire ?"
- "Quel est le premier projet Data / IA à l'École 42 ?"
- "A-t-il codé une descente de gradient ?"
priority: 6
linked:
- "[[MOC-Projets]]"
- "[[MOC-Ecole-42]]"
- "[[MOC-Ia]]"
related:
- "[[piscine-python-data-science]]"
- "[[ia]]"
- "[[grasbot]]"
updated: 2026-04-23
visibility: public
---
# ft_linear_regression
> [!info] Contexte
> **Premier projet de la branche Data Science / IA de l'École 42**, enchaîné
> après la [[piscine-python-data-science|Piscine Python — Data Science]].
> Socle mathématique pour les travaux IA côté [[ia]] et [[grasbot]].
## Résumé
Implémenter **from scratch** un algorithme de **régression linéaire simple**
entraînée par **descente de gradient**, sans utiliser de fonction toute
faite (`numpy.polyfit`, `sklearn.LinearRegression`, etc.). L'exercice
force à comprendre les **fondations mathématiques du machine learning**
avant de manipuler les bibliothèques de haut niveau.
## Objectifs pédagogiques
- Découvrir les concepts fondamentaux du ML : **hypothèse**, **fonction de
coût**, **paramètres**, **convergence**.
- Implémenter la **descente de gradient** à la main, avec mise à jour
simultanée de θ₀ (biais) et θ₁ (pente) via des variables temporaires
pour éviter un couplage entre les deux mises à jour.
- Comprendre le rôle du **learning rate** : un pas trop grand fait osciller
l'algorithme, un pas trop petit le ralentit artificiellement.
- Travailler la **préparation des données** : détection des valeurs
aberrantes via l'**IQR** (*Interquartile Range*), gestion des valeurs
manquantes, **normalisation min-max** pour que la descente converge
malgré des échelles différentes (kilométrages en milliers, prix en
dizaines de milliers).
## Stack technique
| Outil | Rôle |
|-------|------|
| **Python 3** | Langage principal |
| **pandas** | Chargement et exploration du CSV (`describe()`, quartiles, détection d'aberrants) |
| **NumPy** | Calculs vectoriels pour la descente de gradient |
| **Matplotlib + Seaborn** | Visualisation du nuage de points et de la droite de régression |
| **scikit-learn** | **Uniquement** pour les métriques d'évaluation (`mean_squared_error`, `r2_score`), pas pour l'entraînement |
| **Tkinter** | Interface graphique native : saisie d'un kilométrage, affichage du prix estimé en temps réel |
## Architecture du code
Modules thématiques dans `src/` :
- `data_process.py` — chargement, nettoyage, normalisation du dataset.
- `cost_function.py` — fonction de coût *Mean Squared Error* :
`J(θ₀, θ₁) = (1 / 2m) · Σ(hθ(x) y)²`.
- `gradient_descent.py` — boucle d'entraînement (mise à jour simultanée
des paramètres).
- `training_model.py` — orchestration de l'entraînement + sauvegarde des
paramètres optimaux.
- `prediction.py` — rechargement des paramètres pour prédire sur une
nouvelle entrée.
- `evaluate_model.py` — calcul MSE + R² pour mesurer la qualité du modèle.
- `visualization.py` — tracé du nuage de points + droite de régression.
- `gui.py` — interface Tkinter (bonus).
## Parties bonus réalisées
- **Graphe** du nuage de points avec droite de régression superposée.
- **Mesure de précision** via MSE et **coefficient de détermination R²**
(proche de 1 → modèle pertinent, proche de 0 → modèle inutile, négatif
→ pire qu'une moyenne).
- **Interface graphique utilisateur** (Tkinter).
## Compétences mobilisées
- **Mathématiques appliquées** : dérivées partielles, minimisation d'une
fonction de coût, interprétation géométrique d'une régression.
- **Programmation scientifique Python** : vectorisation NumPy, DataFrames
pandas, patterns de préparation de données.
- **Visualisation de données** : IQR, distribution, scatter plot —
comprendre ses données avant de modéliser.
- **Évaluation de modèle** : différence entre *loss* d'entraînement et
métriques de qualité, interprétation du R².
## Valeur pour la suite
Ce projet constitue la **base intellectuelle** de tout ce qui suit en IA.
Comprendre ce qui se passe sous `model.fit(X, y)` change radicalement la
manière d'aborder les bibliothèques de haut niveau (scikit-learn,
PyTorch, TensorFlow) et d'interpréter les comportements inattendus d'un
modèle (non-convergence, explosion du learning rate, overfitting).
---
## Liens
- [[MOC-Projets]] — hub projets
- [[MOC-Ecole-42]] — contexte pédagogique
- [[MOC-Ia]] — domaine *ia*
- [[piscine-python-data-science]] — pré-requis pratique
- [[ia]] — compétence IA (fiche)
- [[grasbot]] — projet IA appliqué au portfolio

View File

@ -1,55 +1,144 @@
---
title: "GrasBot — assistant IA du portfolio"
title: "GrasBot — chatbot IA du portfolio"
slug: grasbot
type: projet
source: manual
domains: [ia, devops, web, ecole-42]
tags: [ollama, fastapi, langfuse, nextjs, rag]
domains: [ia, web, devops]
tags: [ollama, fastapi, langfuse, chatbot, qwen3]
aliases:
- GrasBot
- grasbot
- assistant grasbot
- chatbot du site
- chatbot fernandgrascalvet
- grasbot v3
- retrieval bm25
- chatbot ia du portfolio
- assistant du site
- assistant ia locale
- qwen3
- ia locale test
- bot du site
- bouton flottant
answers:
- "Qu'est-ce que GrasBot ?"
- Comment fonctionne le chatbot sur le site ?
- Parle-moi de GrasBot
- Avec quoi l'assistant du site est-il branché ?
priority: 6
- "Parle-moi de GrasBot."
- "Quel est l'assistant IA sur le site ?"
- "Comment fonctionne le chatbot du site ?"
- "Sur quelles sources GrasBot s'appuie-t-il ?"
- "GrasBot hallucine-t-il ?"
priority: 7
linked:
- "[[MOC-Projets]]"
- "[[MOC-Ia]]"
- "[[MOC-Technique]]"
related:
- "[[ia]]"
- "[[grasbot-retrieval]]"
- "[[architecture-site]]"
- "[[fernandgrascalvet-com]]"
- "[[newsletter-ia]]"
- "[[transcription-video]]"
link: "https://fernandgrascalvet.com"
updated: 2026-04-23
visibility: public
---
**Slug site / fiche compétence IA :** `grasbot` (réalisation liée à la compétence [[ia]], comme lentité Strapi `realisation-ia`).
# GrasBot — chatbot IA du portfolio
## Résumé
> [!info] Rôle de cette note
> Fiche **projet** (réalisation IA exposée sur `/competences/ia`). Pour
> l'algorithme de retrieval détaillé voir [[grasbot-retrieval]] ; pour
> l'architecture globale du site voir [[architecture-site]].
**GrasBot** est lassistant conversationnel intégré à tout le site (bouton flottant, proxy Next → API FastAPI). Depuis la **v3** (2026), la réponse sappuie sur le vault Obsidian `vault-grasbot/` (structure + wikilinks) avec un **retrieval déterministe** (scores multi-signaux + BM25 + expansion de graphe), **sans** base vectorielle ni embeddings. Le modèle de chat est un **Qwen3 8B** servi par **Ollama** (machine locale côté API).
## Le défi
## Chaîne technique (aperçu)
Permettre à un visiteur de **poser des questions libres** sur le parcours,
les projets et les compétences de Fernand, **sans qu'il doive naviguer**
dans dix pages, et **sans que le chatbot invente** des informations qui
ne sont pas dans les notes.
- **Next.js** : `GrasBotFab` + `ChatBot.js``askAI``/api/proxy``https://llmapi.fernandgrascalvet.com/ask`
- **FastAPI** : `llm-api/search.py` (retrieval, construction du prompt, appel génération)
- **Observabilité** : **Langfuse** (3.x) sur les spans retrieval / construction de prompt / génération, avec scores utiles en traçage (`grounded`, etc.)
- **Règles de réponse** : system prompt anti-hallucination, troncature contrôlée des sources secondaires, note canonique `bio-fernand` pour les questions biographiques
## Pipeline technique
## Liens internes
GrasBot n'est pas un simple wrapper ChatGPT : c'est un vrai pipeline **RAG
(Retrieval-Augmented Generation)** construit de bout en bout.
- Détail algorithme et scoring : [[grasbot-retrieval]]
- Où cela sinscrit dans larchitecture globale : [[architecture-site]]
- Compétence [[ia]] (contexte personnel et pédagogique 42)
- Même site, volet *stack web* : [[fernandgrascalvet-com]]
### 1. Vault Obsidian comme source de vérité
Un coffre Obsidian structuré (`vault-grasbot/`) contient les notes de
parcours, projets École 42, compétences et glossaires. Chaque note porte
un **frontmatter YAML** avec `aliases`, `answers`, `priority`, `domains`
— autant de **signaux** pour le scoring.
### 2. Retrieval déterministe par graphe + BM25
Contrairement à un RAG classique à **embeddings vectoriels**, GrasBot
exploite directement la **structure du vault** : score multi-signaux
(aliases / titre / answers / domaines / BM25 sur le body), puis
**expansion par graphe** via les wikilinks `[[...]]`. Résultat : retrieval
en **~50 ms**, **100 % traçable**, sans dépendance à ChromaDB ni à des
embeddings. Détail : [[grasbot-retrieval]].
### 3. Génération locale avec Qwen3 + Ollama
Un modèle **Qwen3 8B** (quantization Q4_K_M) tourne **en local** sur le
serveur, servi par **Ollama**. Paramètres tunés après audit des premières
traces :
- `num_ctx = 8192` pour éviter la **troncature silencieuse** du contexte
(défaut Ollama trop bas quand plusieurs notes entières sont injectées).
- `num_predict = 1024` pour les réponses longues complètes.
- `think = false` pour **désactiver** le mode raisonnement interne qui
consommait du budget de sortie.
### 4. Observabilité Langfuse de bout en bout
Chaque conversation déclenche une trace Langfuse avec **3 spans** :
- `retrieval` (notes remontées, scores, *reasons*),
- `prompt_build` (system + user complets, sources tronquées, flag
*grounded*),
- `ollama-chat` (tokens, latence, paramètres).
Scores automatiques `grounded` et `retrieval_relevance` pour suivre la
qualité dans le temps.
### 5. Règles anti-hallucination
System prompt strict : **interdiction** d'inventer un fait absent des
notes, **priorité** aux sources `type=parcours` pour les questions
biographiques, mention explicite *« non précisé dans les notes »* quand
l'info manque. La source canonique [[bio-fernand]] (priority 10) couvre
les *« qui est Fernand ? »*.
## Stack complète
| Couche | Outils |
|--------|--------|
| **Front** | Next.js 15 + composant React `ChatBot.js` ; session / user IDs anonymes (UUID v4 en `sessionStorage` / `localStorage`). |
| **Proxy** | Route API Next qui valide une whitelist de paramètres (`q`, `session_id`, `user_id`) et forward vers l'API Python. |
| **Backend** | FastAPI + Ollama ; pipeline `search.py` (graph + BM25) + `observability.py` (Langfuse). |
| **Infra** | Windows Server 2025 + IIS reverse proxy + HTTPS Let's Encrypt + VPN pour l'admin. |
## Ce que ce projet démontre
- **Chaîne RAG complète** maîtrisée (ingestion, retrieval, génération,
observabilité).
- Choisir la **bonne brique** selon le contexte : un vault de quelques
dizaines de notes ne justifie pas des embeddings vectoriels — **BM25 +
graphe** suffit largement.
- **Tuning des modèles** plutôt que subir leurs défauts (audit via
Langfuse → correctifs ciblés).
- Déploiement en **production** sur une infra maîtrisée **bout en bout**.
## Différentiation avec les notes voisines
| Note | Angle | Quand elle remonte en premier |
|------|-------|-------------------------------|
| `grasbot` (cette note) | Fiche **produit / vignette réalisation** IA | *« Qu'est-ce que GrasBot ? »*, *« Pipeline technique ? »* |
| [[grasbot-retrieval]] | Technique interne (scoring, BM25, graphe) | *« Comment le chatbot trouve-t-il ses réponses ? »* |
| [[architecture-site]] | Stack globale Next + Strapi + FastAPI | *« Comment est fait le site ? »* |
| [[ia]] | Compétence (parcours IA de Fernand) | *« Quelles sont ses compétences en IA ? »* |
## Liens
- [[MOC-Projets]] — hub projets
- [[MOC-Ia]] — hub domaine *ia*
- [[ia]] — compétence IA (fiche) ; GrasBot y apparaît en réalisation
- [[fernandgrascalvet-com]] — le site qui héberge GrasBot
- [[newsletter-ia]] · [[transcription-video]] — autres réalisations IA

View File

@ -0,0 +1,86 @@
---
title: "Newsletter IA — Ollama + Listmonk + Directus"
slug: newsletter-ia
type: projet
source: manual
domains: [ia, web, devops]
tags: [ollama, langfuse, listmonk, directus, newsletter, docker, chatbot]
aliases:
- newsletter ia
- newsletter automatisée
- newsletter ollama listmonk
- listmonk directus ollama
- génération de newsletter
- newsletter homelab
- diffusion newsletter auto-hébergée
answers:
- "Qu'est-ce que la newsletter IA de Fernand ?"
- "Parle-moi du projet newsletter automatisée."
- "Comment génère-t-il une newsletter avec un LLM local ?"
- "Utilise-t-il Listmonk pour ses envois ?"
- "Sur quelles briques repose sa newsletter auto-hébergée ?"
priority: 6
linked:
- "[[MOC-Projets]]"
- "[[MOC-Ia]]"
related:
- "[[ia]]"
- "[[grasbot]]"
- "[[architecture-site]]"
updated: 2026-04-23
visibility: public
---
# Newsletter IA — Ollama + Listmonk + Directus
> [!info] Rôle de cette note
> Fiche **projet** *Newsletter IA*, exposée sur le site en `realisation-ia`
> rattachée à la compétence [[ia]]. Démontre la capacité à orchestrer une
> chaîne de publication **auto-hébergée** avec de la génération LLM locale.
## L'objectif
Construire un système de newsletter **complètement auto-hébergé**, capable
de **générer automatiquement** le contenu éditorial (intro, sélection des
articles) à partir d'un corpus d'information, puis de le **diffuser** à une
liste d'abonnés — sans dépendre d'un service SaaS propriétaire (Substack,
Mailchimp, Beehiiv…).
## Les briques
| Brique | Rôle |
|--------|------|
| **Listmonk** | Diffusion — open-source (Go), API REST complète, segmentation, stats, templates HTML. Dans un conteneur Docker derrière IIS reverse proxy pour HTTPS. |
| **Directus** | Édition — CMS headless : chaque édition est un document avec ses articles, sa thématique, sa date. Permet de **réviser** le contenu généré par l'IA avant envoi. |
| **Ollama** | Génération LLM locale (Qwen3, Mistral). Deux usages : **(1) sélection bornée** des 3-5 articles les plus pertinents par thématique, **(2) rédaction d'introduction** éditoriale à partir des résumés. |
| **Langfuse** | Observabilité — chaque génération est tracée (prompt, sortie, tokens, latence) pour suivre la qualité dans le temps et itérer sur les prompts **sans régression**. |
## Ce que ce projet démontre
- **Self-hosting complet** d'une chaîne de publication (serveur, DNS, HTTPS,
VM, Docker, reverse proxy, SMTP).
- **Orchestration** de plusieurs services (Listmonk + Directus + Ollama)
plutôt que coller des briques opaques.
- **Usage ciblé de l'IA** là où elle apporte de la valeur (sélection +
rédaction d'intro), **sans basculer** dans un 100 % automatique qui
perdrait en qualité.
- **Observabilité dès le départ** : Langfuse connecté **avant** le moindre
envoi en production.
## Roadmap
- Enrichissement LLM multi-passes (extraction de citations, tags
automatiques).
- Interface d'arbitrage humain dans Directus pour valider l'intro avant
envoi.
- Dashboard Langfuse dédié à la newsletter (taux d'ouverture ↔ ton de
l'intro).
---
## Liens
- [[MOC-Projets]] — hub projets
- [[MOC-Ia]] — hub domaine *ia*
- [[ia]] — compétence IA (fiche)
- [[grasbot]] — autre réalisation IA, même esprit *self-hosted + observable*

View File

@ -0,0 +1,118 @@
---
title: "Piscine Python — Data Science"
slug: piscine-python-data-science
type: projet
source: manual
domains: [ia, ecole-42, algorithmique]
tags: [42-piscine, data-ia]
aliases:
- piscine python
- python piscine
- piscine data science
- piscine python 42
- piscine data
- python 42
- data science 42
- numpy pandas 42
answers:
- "Qu'est-ce que la Piscine Python de 42 ?"
- "Parle-moi de la Piscine Python Data Science."
- "Comment s'est-il formé à Python et à la data ?"
- "Qu'a-t-il appris en Python à l'École 42 ?"
- "A-t-il travaillé avec NumPy et pandas ?"
priority: 6
linked:
- "[[MOC-Projets]]"
- "[[MOC-Ecole-42]]"
- "[[MOC-Ia]]"
related:
- "[[ft-linear-regression]]"
- "[[ia]]"
updated: 2026-04-23
visibility: public
---
# Piscine Python — Data Science
> [!info] Contexte
> Sprint d'apprentissage intensif de la branche **Data Science / IA** à l'École 42,
> structuré en **5 modules (Python 0 à 4)**. Complément naturel du projet
> [[ft-linear-regression]] et socle pratique pour les travaux IA décrits dans
> [[ia]] et [[grasbot]].
## Objectif
Bâtir la **boîte à outils Python** d'un futur spécialiste Data / IA, en
privilégiant la compréhension des **paradigmes** plutôt que la simple
collection de syntaxes. Chaque module est une piscine courte : exercices
quotidiens, correction par les pairs, rythme soutenu.
## Les 5 modules
### Python 0 — Starting
Bases du langage : variables, structures de contrôle, fonctions, listes /
tuples / sets / dictionnaires, compréhensions, fichiers, exceptions,
`argparse`. Règles strictes de la Piscine : **Python 3.10 obligatoire**,
imports explicites, pas de variables globales, fonctions qui ne plantent
jamais, tests écrits par l'étudiant.
### Python 1 — Array
Programmation vectorisée avec **NumPy** : création et manipulation
d'arrays multidimensionnels, slicing avancé, **broadcasting**, fonctions
universelles (`ufunc`), opérations matricielles. Apprentissage du réflexe
*« remplacer une boucle Python par une opération vectorielle »* — fondamental
pour la performance en ML.
### Python 2 — DataTable
Manipulation de **DataFrames** avec **pandas** : chargement CSV / Excel,
sélection par index / label, `groupby`, `merge` / `join`, pivots,
nettoyage de données, détection de valeurs manquantes et aberrantes,
statistiques descriptives (`describe()`, quantiles). Le module charnière
pour les projets de régression et d'analyse.
### Python 3 — Object-Oriented Programming
Programmation orientée objet : classes, héritage, composition,
encapsulation, méthodes spéciales (`__init__`, `__repr__`, `__eq__`…),
polymorphisme. Introduction aux design patterns utiles en data science :
modélisation de datasets comme objets, classes de modèles avec méthodes
`fit` / `predict` (préparation à **scikit-learn**).
### Python 4 — Data Oriented Design
Changement de perspective : **DOD** (*Data Oriented Design*) — organiser
le code autour des **données** et de leur accès mémoire plutôt qu'autour
d'objets. *Cache-friendliness*, *structure of arrays* vs *array of
structures*, profilage basique. Un pont entre Python de haut niveau et les
contraintes de performance qu'on retrouvera en deep learning (PyTorch /
TensorFlow) ou en traitement de gros volumes.
## Compétences mobilisées
- **Python moderne** : idiomes 3.10+, typage, gestion d'erreurs robuste.
- **NumPy** : vectorisation, broadcasting, algèbre linéaire appliquée.
- **pandas** : nettoyage, agrégation, transformation de données tabulaires.
- **POO Python** : architecture de classes, héritage, méthodes spéciales.
- **Rigueur École 42** : tests écrits, code sans crash, peer-evaluation,
respect strict des contraintes de rendu.
## Valeur pour la suite
Cette Piscine est le **socle pratique** de tous les projets Data / IA qui
suivent. [[ft-linear-regression]] (régression linéaire par descente de
gradient), les expérimentations LLM / agents locaux et la manipulation des
jeux de données côté chatbot ([[grasbot]]) reposent **directement** sur
les acquis de ces 5 modules.
---
## Liens
- [[MOC-Projets]] — hub projets
- [[MOC-Ecole-42]] — contexte pédagogique
- [[MOC-Ia]] — domaine *ia*
- [[ft-linear-regression]] — premier projet Data / IA 42 après cette piscine
- [[ia]] — compétence IA (fiche)

View File

@ -0,0 +1,100 @@
---
title: "Transcription vidéo automatique"
slug: transcription-video
type: projet
source: manual
domains: [ia, devops]
tags: [ollama, openwebui, ovh, transcription, multimedia]
aliases:
- transcription vidéo
- transcription automatique
- transcription auto
- speech to text
- sous-titres automatiques
- résumé de vidéo
- pipeline transcription
answers:
- "Comment transcrit-il des vidéos automatiquement ?"
- "Parle-moi du projet de transcription vidéo."
- "Quel pipeline utilise-t-il pour la transcription ?"
- "A-t-il testé OVHcloud AI Endpoints ?"
priority: 6
linked:
- "[[MOC-Projets]]"
- "[[MOC-Ia]]"
related:
- "[[ia]]"
- "[[newsletter-ia]]"
- "[[grasbot]]"
updated: 2026-04-23
visibility: public
---
# Transcription vidéo automatique
> [!info] Rôle de cette note
> Fiche **projet** *Transcription vidéo*, exposée sur le site en
> `realisation-ia` rattachée à la compétence [[ia]]. Montre la maîtrise
> d'un pipeline **multimédia** (décodage → segmentation → transcription →
> post-processing) et la capacité à **comparer** des fournisseurs de
> modèles (OVHcloud AI Endpoints vs modèles locaux Ollama).
## Contexte
Pouvoir **transcrire automatiquement** une vidéo longue (conférence,
tutoriel, cours), **segmenter les moments clés**, et **post-traiter** le
résultat pour obtenir un document éditable directement utilisable.
Exploration en **sept parties**, de l'intégration d'OVHcloud dans
Open WebUI jusqu'au calcul fin des **intervalles d'images** selon le mode
retenu.
## Pipeline
### 1. Préparation
- Intégration d'**OVHcloud AI Endpoints** dans **Open WebUI** comme
fournisseur complémentaire aux modèles locaux Ollama.
- Mise en place d'une pipeline vidéo sur la **VM dédiée** (calculs,
décodage, extraction audio).
### 2. Traitement vidéo
- Extraction de l'**audio** de la vidéo source.
- **Segmentation temporelle** avec calcul d'intervalles d'images adaptés
au mode choisi (transcription pure, analyse d'images-clés, ou les deux).
- **Transcription** par modèle *speech-to-text*.
### 3. Post-processing
- Nettoyage des hésitations, **reformulation légère** par LLM local.
- **Structuration en chapitres** avec timestamps.
- Export au format exploitable.
### 4. Analyse et corrections
Phase d'analyse des résultats sur des vidéos tests, qui a permis
d'identifier une liste de correctifs (**segmentation**, **gestion des
silences**, **précision des timestamps**) **avant** d'industrialiser le
workflow — démarche itérative et mesurée.
## Ce que ce projet démontre
- Maîtrise d'un **pipeline multimédia complet** (décodage, segmentation,
transcription, post-processing).
- Capacité à **comparer** des fournisseurs de modèles (**OVHcloud** vs
**Ollama local**) et à choisir selon le contexte.
- Intégration de plusieurs briques (**Open WebUI**, scripts Python,
modèles distants + locaux) dans un workflow cohérent.
- **Démarche itérative** : identification des régressions **avant** la mise
en production.
---
## Liens
- [[MOC-Projets]] — hub projets
- [[MOC-Ia]] — hub domaine *ia*
- [[ia]] — compétence IA (fiche)
- [[newsletter-ia]] — autre réalisation IA orchestrée (Listmonk + Directus + Ollama)
- [[grasbot]] — réalisation IA : assistant du portfolio

View File

@ -41,9 +41,9 @@ visibility: public
J'ai réalisé ce projet afin d'étendre mes compétences en développement Web.
### Mise à jour 20252026 — refonte, réalisations et contact
### Le site en production
Le site a évolué en profondeur : **refonte visuelle** (*Digital Atelier* : Manrope, Newsreader, cartes *vellum*, tokens Tailwind), **Strapi 5** avec le type **`realisation-ia`** (réalisations liées aux compétences, vignettes + routes `/competences/[slug]/[realisation]`), et **GrasBot** (assistant sur tout le site) documenté en projet [[grasbot]] dans le vault. Le **formulaire de contact** envoie désormais les messages via l**API Brevo** (plus de stockage des messages côté Strapi). Voir la synthèse produit [[fernandgrascalvet-com]].
Le site **fernandgrascalvet.com** est la mise en pratique courante de cette compétence. La fiche projet [[fernandgrascalvet-com]] décrit ce que le visiteur voit (portfolio, compétences avec `realisation-ia`, contact via Brevo, assistant [[grasbot|GrasBot]]).
---

View File

@ -3,12 +3,15 @@ title: Mon Exploration et Maîtrise de lIntelligence Artificielle
slug: ia
type: competence
source: manual
domains: [algorithmique, ecole-42, ia]
tags: [tri]
domains: [ia, ecole-42, algorithmique]
tags: [chatbot, ollama, langfuse, data-ia]
aliases:
- mon exploration et maîtrise de lintelligence artificielle
- ia
- intelligence artificielle
- ia locale
- ia self-hosted
- ia auto-hébergée
- llm
- llms
- modèles de langage
@ -18,19 +21,24 @@ aliases:
- deep learning
- data science
- ollama
- langfuse
answers:
- Quelles sont ses compétences en IA ?
- "Quelles sont ses compétences en IA ?"
- "A-t-il de l'expérience en IA ?"
- Parle-moi de son expérience en IA
- "Parle-moi de son expérience en IA."
- "Utilise-t-il des LLMs locaux ?"
- "Qu'est-ce qui l'intéresse dans l'IA ?"
priority: 7
linked:
- "[[MOC-Competences]]"
- "[[MOC-Ia]]"
related:
- "[[grasbot]]"
- "[[newsletter-ia]]"
- "[[transcription-video]]"
- "[[ft-linear-regression]]"
- "[[piscine-python-data-science]]"
- "[[fernandgrascalvet-com]]"
- "[[born2beroot]]"
- "[[cpp-partie1]]"
- "[[cpp-partie2]]"
updated: 2026-04-23
visibility: public
---
@ -39,23 +47,42 @@ visibility: public
---
Comme beaucoup, jai découvert lintelligence artificielle grand public avec larrivée de ChatGPT, qui a marqué un tournant décisif dans laccessibilité et la démocratisation de cette technologie. En lespace de quelques mois, le domaine a connu une expansion fulgurante, avec lémergence dune multitude de solutions exploitant lIA sous diverses formes. Fasciné par ces avancées, jai rapidement développé un vif intérêt pour plusieurs applications, notamment la génération dimages, les chatbots intelligents et plus largement les modèles de langage avancés (LLMs).
## Mon exploration des LLM et de l'IA : un intérêt devenu spécialisation
Dans cette quête dexploration, jai expérimenté des solutions dIA locale, notamment avec Ollama, LLM Studio, et dautres outils permettant une plus grande maîtrise et personnalisation des modèles. Mon objectif a été de comprendre en profondeur les capacités dintégration de ces intelligences artificielles locales, en explorant lentraînement de modèles personnalisés, loptimisation des performances et laffinement des interactions par lingénierie des prompts (cliquez sur IA locale test mistral 7b sur mon serveur).
Comme beaucoup, j'ai découvert l'intelligence artificielle grand public avec l'arrivée de ChatGPT, qui a marqué un tournant décisif dans l'accessibilité et la démocratisation de cette technologie. Fasciné par la vitesse d'évolution du domaine, j'ai rapidement développé un intérêt pour plusieurs applications : **génération d'images**, **chatbots**, et plus largement les **modèles de langage (LLMs)**.
Actuellement, je suis en phase dinstallation et de déploiement de solutions dIA locale sur mon propre serveur, un projet en cours de développement qui me permet dexpérimenter les configurations avancées et dadapter ces modèles à des cas dusage spécifiques. Cette démarche sinscrit dans une volonté de maîtriser lIA en environnement auto-hébergé, offrant ainsi une meilleure compréhension de la gestion des ressources, du fine-tuning des modèles et des défis liés à linfrastructure.
## De l'expérimentation à l'auto-hébergement
Parallèlement, jai entrepris une spécialisation en Data Science et Intelligence Artificielle au sein de lÉcole 42, afin dapprofondir mes connaissances théoriques et pratiques dans ce domaine en perpétuelle évolution. Cette formation me permet daller encore plus loin dans lanalyse des algorithmes de machine learning et deep learning, dexplorer des approches avancées en traitement des données massives, et de perfectionner mes compétences en développement et intégration de solutions IA appliquées.
Rapidement, j'ai voulu sortir de la dépendance aux API propriétaires et comprendre ce qui se passe sous le capot. J'ai expérimenté des solutions d'**IA locale** avec **Ollama**, **LM Studio**, **Open WebUI**, en explorant le fine-tuning léger, l'ingénierie de prompts, et l'intégration de modèles dans des workflows métier.
### GrasBot — assistant intégré au site
Aujourd'hui, toute ma pile IA tourne sur **mon serveur personnel** :
Sur **fernandgrascalvet.com**, jai réalisé **GrasBot** : un assistant basé sur un **LLM local** (Qwen3 via Ollama), une API **FastAPI**, et une **base de connaissances** dérivée de ce vault (`vault-grasbot/`) avec retrieval **graph + BM25** (v3, sans embeddings). Le chat est disponible sur toutes les pages (FAB), avec **observabilité Langfuse** pour le débogage et lamélioration continue. Les réponses visent la **fidélité aux sources** (prompt et troncatures documentés). Voir la fiche projet [[grasbot]] et la note technique [[grasbot-retrieval]].
- **LLM locaux** (Qwen3, Llama, Mistral, modèles d'embedding),
- **observabilité** via **Langfuse** self-hosted,
- **recherche web privée** via **SearxNG** et **Firecrawl** pour alimenter des agents.
### Sur le site — rubrique compétence IA
Cette infrastructure me permet d'expérimenter **sans plafond de tokens**, **sans fuite de données**, et avec une compréhension fine du **coût** et de la **performance** de chaque modèle.
Les **réalisations** liées à cette compétence (entité Strapi `realisation-ia`) apparaissent en **vignettes** sur `/competences/ia` avec un détail `/competences/ia/<slug>` aligné sur les fiches portfolio. Cela permet de présenter GrasBot et dautres travaux IA comme des **projets navigables**, pas seulement du texte statique.
## Une spécialisation formalisée à l'École 42
Animé par une passion pour lintelligence artificielle et ses innombrables possibilités, je continue de minformer, dexpérimenter et dappliquer ces technologies à des projets concrets. Mon objectif est dacquérir une expertise approfondie pour concevoir des systèmes intelligents performants, adaptables et innovants, tout en restant à la pointe des avancées technologiques.
Parallèlement, je me spécialise en **Data Science et Intelligence Artificielle à l'École 42**, ce qui me permet d'approfondir les **fondations mathématiques** (régression, descente de gradient, fonctions de coût, métriques d'évaluation) plutôt que de rester au niveau de l'utilisation des bibliothèques de haut niveau. Les projets [[ft-linear-regression]] (premier modèle **from scratch**) et la [[piscine-python-data-science|Piscine Python for Data Science]] (5 modules) posent les briques essentielles avant les modèles plus complexes.
## Mon angle
Je privilégie trois axes :
1. **Autonomie** — héberger moi-même pour comprendre réellement les contraintes, les coûts et les limites.
2. **Observabilité** — chaque appel LLM que je produis est tracé (Langfuse). On ne peut pas améliorer ce qu'on ne mesure pas.
3. **Utilité concrète** — pas d'IA pour l'IA : chaque projet résout un problème réel (newsletter automatisée, chatbot de portfolio, transcription vidéo…).
## Réalisations IA exposées sur le site
La rubrique `/competences/ia` présente ces travaux en **vignettes navigables** (entité Strapi `realisation-ia`) :
- [[grasbot|GrasBot — chatbot IA du portfolio]] — RAG maison (graph + BM25) + Qwen3 local + Langfuse.
- [[newsletter-ia|Newsletter IA — Ollama + Listmonk + Directus]] — chaîne de publication auto-hébergée avec génération LLM ciblée.
- [[transcription-video|Transcription vidéo automatique]] — pipeline multimédia (décodage → segmentation → STT → post-processing).
- *Parcours / formation* : voir [[ft-linear-regression]] et [[piscine-python-data-science]].
---
@ -66,6 +93,6 @@ Animé par une passion pour lintelligence artificielle et ses innombrables po
## Liens
- [[MOC-Competences]] — vue d'ensemble des compétences
- [[MOC-Ia]] — domaine *ia*
- [[MOC-Algorithmique]] — domaine *algorithmique*
- [[MOC-Ecole-42]] — domaine *ecole-42*
- [[MOC-Ia]] — domaine *ia*

View File

@ -10,7 +10,7 @@ graph + BM25, sans embeddings.
## Structure
- `00-MOC/` — Maps of Content (hubs thématiques)
- `10-Projets/` — 17 projets Strapi + **2 notes manuelles** (`10-Projets/grasbot.md`, `10-Projets/fernandgrascalvet-com.md`)
- `10-Projets/` — 17 projets Strapi + **6 notes manuelles** (`grasbot.md`, `newsletter-ia.md`, `transcription-video.md`, `fernandgrascalvet-com.md`, `ft-linear-regression.md`, `piscine-python-data-science.md`)
- `20-Competences/` — 4 compétences extraites de Strapi
- `30-Parcours/` — Parcours personnel, CV, bio (version curatée `source: manual`)
- `40-Glossaire/` — Termes techniques (vide, à remplir manuellement ou depuis Strapi plus tard)

View File

@ -52,6 +52,21 @@ actuellement utilisés :
| `concurrence` | Threads, mutex, synchronisation |
| `docker` | Conteneurisation |
| `makefile` | Build system GNU Make |
| `chatbot` | Assistants conversationnels |
| `ollama` | Serveur de LLM local |
| `fastapi` | API Python FastAPI |
| `langfuse` | Observabilité LLM |
| `nextjs` | Framework React Next.js |
| `strapi` | CMS headless Strapi |
| `portfolio` | Site portfolio personnel |
| `qwen3` | Modèle LLM Qwen3 |
| `listmonk` | Diffusion de newsletters open-source |
| `directus` | CMS headless Directus |
| `newsletter` | Chaîne de publication newsletter |
| `openwebui` | Open WebUI (front LLM) |
| `ovh` | OVHcloud AI Endpoints |
| `transcription` | Speech-to-text / sous-titres |
| `multimedia` | Traitement audio / vidéo |
## Aliases (`aliases:`)