2026-05-10 11:10:06 +02:00

3.4 KiB

Vault GrasBot — Base de connaissances

Vault Obsidian généré par strapi_extraction/build-vault.py à partir des contenus Strapi du site (projets + compétences) et du CV PDF. Alimente directement le pipeline de recherche de GrasBot (llm-api/search.py) : graph + BM25, sans embeddings.

Dernière génération : 2026-04-23 (complété manuellement : +2 projets source: manual, maj compétences IA/Web ; 2026-05-10 : compétence transcription-audio-fgc-transcription — pyannote + Mistral Small 24b, corpus Strapi aligné dans strapi_extraction/)

Structure

  • 00-MOC/ — Maps of Content (hubs thématiques)
  • 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/ — compétences Strapi extraites par build-vault.py et note manuelle transcription-audio-fgc-transcription.md (alignée Strapi / GrasBot, non écrasée tant que source: manual)
  • 30-Parcours/ — Parcours personnel, CV, bio (version curatée source: manual)
  • 40-Glossaire/ — Termes techniques (vide, à remplir manuellement ou depuis Strapi plus tard)
  • 50-Technique/ — Auto-documentation (architecture, retrieval, vault)
  • TAXONOMIE.md — Vocabulaire contrôlé (domaines, tags, aliases, answers, priority)

Conventions

Chaque note porte un frontmatter YAML enrichi :

---
title: ...
slug: ...
type: projet | competence | parcours | glossaire | moc | technique
source: strapi/... | pdf/... | manual | vault/generated
domains: [ia, web, systeme, ...]       # taxonomie contrôlée
tags: [tag-1, tag-2]
aliases:                                # synonymes pour le retrieval
  - "alias court"
  - "autre formulation"
answers:                                # questions-types auxquelles répond la note
  - "Question formulée naturellement ?"
priority: 5                             # 1..10, boost léger au scoring
linked: ["[[MOC-...]]"]                 # voisins du graphe (sortants)
related: ["[[autre-note]]"]
route_parent: ia                        # optionnel (compétence) : lien source `/competences/ia/{slug}`
updated: YYYY-MM-DD
visibility: public | private            # `private` exclu du retrieval
---

Voir TAXONOMIE.md pour le vocabulaire contrôlé des domaines/tags et les règles de rédaction des aliases/answers.

Règle de régénération : le script build-vault.py écrase sans prévenir les notes dont le frontmatter a source: strapi/* ou source: pdf/*. Il ne touche jamais aux notes source: manual que tu ajoutes toi-même. Les aliases, answers et priority des notes générées sont calculés automatiquement à partir du titre, du slug et des domaines ; les notes stratégiques méritent un enrichissement manuel en passant source: manual.

Fusion avec un vault personnel

Pour agrémenter ce vault avec ton vault Obsidian perso :

  1. Copier vault-grasbot/ dans ton vault existant comme sous-dossier, ou
  2. Ouvrir vault-grasbot/ comme vault séparé dans Obsidian (plus simple pour démarrer).

Les wikilinks [[nom]] restent valides tant que les noms de notes sont uniques dans le vault courant. Les notes source: manual que tu crées ne seront jamais écrasées par une régénération. Pour une note privée qui ne doit pas apparaître côté chatbot, ajouter visibility: private : elle sera exclue de load_vault().