devsite/vault-grasbot/50-Technique/vault-structure.md
2026-04-22 20:11:16 +02:00

133 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "Structure du vault GrasBot"
slug: vault-structure
type: technique
source: manual
domains: [ia]
tags: [obsidian, vault, moc, taxonomie]
aliases:
- structure du vault
- organisation du vault
- vault obsidian
- structure de la base de connaissance
answers:
- "Comment est organisé le vault ?"
- "Quelle est la structure de la base de connaissance ?"
- "Où sont stockées les notes ?"
priority: 6
linked:
- "[[MOC-Ia]]"
- "[[architecture-site]]"
- "[[grasbot-retrieval]]"
updated: 2026-04-22
visibility: public
---
# Structure du vault GrasBot
Le vault `vault-grasbot/` est la base de connaissance du chatbot. Il est
conçu pour être ouvert directement dans Obsidian (comme vault séparé, ou
fusionné avec un vault perso existant) et pour alimenter le pipeline de
retrieval décrit dans [[grasbot-retrieval]].
## Arborescence
- **`00-MOC/`** — *Maps of Content*, hubs thématiques qui recensent les
notes d'un domaine. Générés automatiquement par `build-vault.py`.
- **`10-Projets/`** — une note par projet Strapi (École 42 +
projets perso). Source : `source: strapi/projects`.
- **`20-Competences/`** — une note par compétence Strapi (IA, Web,
Impression 3D, Domotique). Source : `source: strapi/competences`.
- **`30-Parcours/`** — CV, bio, étapes du parcours. La version curatée
`cv-grascalvet-fernand.md` est protégée (`source: manual`).
- **`40-Glossaire/`** — termes techniques référencés par les fiches
compétences (réservé pour quand le content-type `glossaire` sera
ajouté au script d'extraction).
- **`50-Technique/`** — auto-documentation : [[architecture-site]],
[[grasbot-retrieval]], [[vault-structure]] (cette note). Permet à
GrasBot de répondre aux questions *« comment es-tu fait ? »*.
- **`README.md`** — résumé utilisateur (généré).
- **`TAXONOMIE.md`** — vocabulaire contrôlé pour domaines, tags, aliases,
answers, priority. **À éditer manuellement** avant tout changement de
vocabulaire structurant.
## Frontmatter YAML
Chaque note porte une en-tête structurée :
```yaml
---
title: "push_swap"
slug: push-swap
type: projet # projet | competence | parcours | moc | technique
source: strapi/projects # strapi/... | pdf/... | manual | vault/generated
domains: [algorithmique, c, ecole-42]
tags: [42-commun, tri, makefile]
aliases:
- push swap
- push_swap
- algo de tri 42
answers:
- "Parle-moi de push-swap"
- "Comment fonctionne push-swap ?"
priority: 5 # 1..10, boost léger au scoring
linked:
- "[[MOC-Projets]]"
related:
- "[[minishell]]"
updated: 2026-04-22
visibility: public # public | private
---
```
### Signification des champs pour le retrieval
Ces champs sont **exploités directement** par `llm-api/search.py` :
| Champ | Usage |
|---|---|
| `aliases` | Synonymes forts (matchés avant tout). **+10 au score** par hit. |
| `answers` | Questions-types ; si overlap ≥ 3 tokens, **+12 au score**. |
| `domains` | Domaines contrôlés. **+5 par match strict** de token. |
| `tags` | Tags libres. **+3 par match strict**. |
| `priority` | 1-10. Boost léger (0.3 × (priority 5)) si déjà scoré. |
| `linked` / `related` | Voisins du graphe, activés par `expand_by_graph()`. |
| `visibility` | Si `private`, la note est **exclue** du retrieval. |
## Règles de régénération
`strapi_extraction/build-vault.py` **écrase** les notes dont le frontmatter
a `source: strapi/*` ou `source: pdf/*`. Il **ne touche jamais** aux notes
`source: manual`. Sécurité simple pour pouvoir enrichir le vault à la main
sans craindre qu'un rebuild efface le travail.
Le script génère automatiquement :
- `aliases` depuis le slug + le titre + les domaines (via `DOMAIN_ALIASES`).
- `answers` adaptés au type de note (projet, compétence, MOC, parcours).
- `priority` par défaut (5 pour projets, 7 pour MOCs/compétences, 10 pour CV).
Pour **enrichir davantage** une note stratégique (comme le CV ou la fiche IA),
passer son frontmatter en `source: manual` et ajouter à la main des aliases /
answers plus précis.
## Agrémentation avec un vault perso
Deux approches :
1. **Vault séparé (recommandé)** : on ouvre `vault-grasbot/` comme vault
Obsidian indépendant. Le chatbot n'indexe que ce qui s'y trouve ;
le vault perso reste privé.
2. **Fusion** : on copie `vault-grasbot/` comme sous-dossier d'un vault
existant. Les wikilinks restent valides tant que les noms sont uniques.
Attention à placer les notes perso avec `source: manual` (évite
l'écrasement) et `visibility: private` (exclue du retrieval automatique).
## Évolutions prévues
- Extraction du content-type `glossaire` Strapi dans `40-Glossaire/`.
- Fix du cleaner `homepages` dans `clean-api-data.js`.
- Enrichissement manuel progressif des aliases/answers pour les compétences
phares (IA, domotique, 3D) — la génération auto est une base, pas un
optimum.