4.9 KiB
| title | slug | type | source | domains | tags | aliases | answers | priority | linked | updated | visibility | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Structure du vault GrasBot | vault-structure | technique | manual |
|
|
|
|
6 |
|
2026-04-22 | 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 parbuild-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éecv-grascalvet-fernand.mdest protégée (source: manual).40-Glossaire/— termes techniques référencés par les fiches compétences (réservé pour quand le content-typeglossairesera 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 :
---
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 :
aliasesdepuis le slug + le titre + les domaines (viaDOMAIN_ALIASES).answersadaptés au type de note (projet, compétence, MOC, parcours).prioritypar 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 :
- 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é. - 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 avecsource: manual(évite l'écrasement) etvisibility: private(exclue du retrieval automatique).
Évolutions prévues
- Extraction du content-type
glossaireStrapi dans40-Glossaire/. - Fix du cleaner
homepagesdansclean-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.