Documentation — Wiki
Wiki interne, arborescence d'articles, édition et Aide IA (mise en forme, génération depuis des notes). Le module IA peut s'appuyer sur le contenu des articles.
Les modules Blueprint Modular font partie de l'application Next.js. Il n'y a pas de package séparé par module (pas de pip install blueprint-modular-wiki ni npm install blueprint-modular-wiki) : on installe l'application une fois, puis on configure la base PostgreSQL et le serveur IA (Ollama) selon les besoins. Cette documentation décrit comment le Wiki fonctionne, comment l'installer (application, base de données, serveur IA et dépendances), où et comment sont sauvegardés les articles (aucun fichier sur disque — tout est en base PostgreSQL), les lignes de commande pour installer le Wiki et toutes ses dépendances (Node, Prisma, Ollama, modèle Qwen), et la gestion des $ dans l'assistant IA pour appeler ou référencer le Wiki dans vos questions.
Comment fonctionne le Wiki
Le module Wiki permet de créer et organiser des articles en arborescence (parent / enfants). Chaque article a un titre, un slug unique (URL), un contenu en Markdown, un éventuel parent pour la hiérarchie, et un statut publié / brouillon. Seul l'auteur (ou un admin) peut modifier ou supprimer un article ; les visiteurs ne voient que les articles publiés.
Workflow typique : vous vous connectez, vous allez sur /modules/wiki, vous cliquez sur « Nouvel article » et renseignez titre et slug (ou laissez le slug être déduit du titre). Vous choisissez éventuellement un article parent pour placer la page dans l'arbre. Vous rédigez le contenu en Markdown dans l'éditeur, vous pouvez utiliser « Mettre en forme » ou « Générer depuis des notes » (Aide IA). Une fois satisfait, vous publiez l'article ; il devient visible pour les autres. Les articles restent modifiables ; vous pouvez changer le parent plus tard en éditant l'article.
- Arborescence : les articles peuvent avoir un
parentIdpour former un arbre (sections, sous-pages). La liste des articles est affichée en arbre dans la page/modules/wiki. - Édition : l'éditeur propose une barre d'outils (gras, listes, titres, etc.) et du Markdown. Les articles sont sauvegardés via l'API
PUT /api/wiki/[slug]. - Aide IA : depuis l'éditeur, vous pouvez « Générer depuis des notes » (l'IA structure vos notes en article Markdown) ou « Mettre en forme » (amélioration du texte existant). Ces actions appellent
POST /api/wiki/generateet utilisent le serveur IA configuré (Ollama / Qwen). - Intégration avec l'assistant IA : le module Wiki est enregistré dans le registry des modules. Quand vous discutez avec l'assistant et que le module Wiki est sélectionné, le contenu des articles récents (titres + corps) est injecté dans le contexte pour que l'IA puisse s'y référer.
Base de données et prérequis production : tables WikiArticle, WikiRevision, WikiComment, WikiBacklink ; détail dans docs/DATABASE.md du dépôt.
Où sont sauvegardés les articles
Les articles sont stockés uniquement en base de données (PostgreSQL), dans la table WikiArticle du schéma Prisma. Il n'y a pas de fichiers sur le disque pour le contenu des articles : tout est persistant en base via Prisma. Vous ne choisissez donc pas un « dossier » ou un chemin de fichiers ; vous choisissez un article parent dans l'interface (ou aucun, pour un article à la racine). Les champs principaux en base sont : id, title, slug (unique), content (texte Markdown), parentId (optionnel, pour l'arborescence), authorId, isPublished, createdAt, updatedAt. Le slug est normalisé (minuscules, espaces → tirets, suppression des accents) via lib/slug.ts pour garantir des URLs stables.
Choisir où « placer » un article (parent) :
Lors de la création d'un article (formulaire « Nouvel article »), vous pouvez optionnellement choisir un article parent. Seuls les articles existants sont proposés dans une liste déroulante ; si vous ne choisissez pas de parent, l'article sera à la racine de l'arbre. La position dans l'arbre est donc déterminée uniquement par le champ parentId en base (pas par un chemin de type /dossiers/sous-dossier). Vous pouvez modifier le parent plus tard en éditant l'article (champ parent dans le formulaire d'édition) ou en appelant l'API PUT /api/wiki/[slug] avec un nouveau parentId.
Installation du Wiki et des dépendances
Le Wiki fait partie de l'application Next.js. Il n'y a pas de package séparé à installer pour le Wiki lui-même. En revanche, il faut installer l'application, la base de données, et éventuellement le serveur IA pour les fonctionnalités « Générer depuis des notes » et « Mettre en forme », ainsi que pour l'assistant conversationnel qui s'appuie sur le contenu du Wiki.
1. Installer l'application (dépendances Node et base)
# Cloner ou ouvrir le projet, puis :
npm install
npx prisma generate --schema=prisma/schema.prisma
# Créer la base PostgreSQL (locale ou distante) et appliquer les migrations :
npx prisma migrate deploy
# (Optionnel) Peupler la base avec des données de test :
# npx prisma db seedLa variable DATABASE_URL doit être définie dans .env (voir section Variables d'environnement). Le schéma Prisma inclut le modèle WikiArticle ; la migration crée la table correspondante.
2. Installer et lancer le serveur IA (Ollama + modèle Qwen)
Les fonctionnalités « Générer depuis des notes », « Mettre en forme » dans l'éditeur Wiki, et l'assistant conversationnel (module IA) utilisent un serveur compatible OpenAI (Ollama en local ou sur un VPS). Sans serveur IA, vous pouvez mettre AI_MOCK=true dans .env pour que l'app renvoie des réponses mockées (développement uniquement).
# Installer Ollama (ex. sur Linux / WSL / macOS) :
# https://ollama.com/download
# Lancer Ollama et télécharger le modèle Qwen3 (8B) :
ollama serve
ollama pull qwen3:8b
# L’app est configurée par défaut pour http://localhost:11434 (Ollama).
# Sur un VPS, définir AI_SERVER_URL dans .env (ex. http://votre-vps:11434).Variables d'environnement utiles : AI_SERVER_URL (URL du serveur Ollama), AI_MODEL (ex. qwen3:8b), AI_MOCK=true pour désactiver les appels réels en dev.
3. Lancer l'application
npm run dev # Développement (Next.js + Prisma)
# Puis ouvrir http://localhost:3000/modules/wikiRésumé des commandes (installer le Wiki et toutes les dépendances)
Voici l'enchaînement complet pour installer l'application (dont le Wiki), la base de données, et le serveur IA (Ollama + modèle Qwen) utilisé par l'Aide IA du Wiki et par l'assistant conversationnel :
# 1. Dépendances Node et schéma Prisma
npm install
npx prisma generate --schema=prisma/schema.prisma
# 2. Base PostgreSQL (créer la DB si besoin, puis) :
npx prisma migrate deploy
# 3. Serveur IA (Ollama) — dans un terminal dédié ou en arrière-plan
ollama serve
ollama pull qwen3:8b
# 4. Lancer l'app Next.js
npm run dev
# 5. Ouvrir le Wiki
# http://localhost:3000/modules/wikiAssurez-vous d'avoir défini DATABASE_URL, NEXTAUTH_SECRET, NEXTAUTH_URL et, pour l'IA, AI_SERVER_URL (ex. http://localhost:11434) et AI_MODEL (ex. qwen3:8b) dans .env. Sans serveur IA, vous pouvez mettre AI_MOCK=true pour utiliser des réponses simulées.
Variables d'environnement
Pour que le Wiki et l’ensemble des modules (dont l’IA) fonctionnent correctement :
DATABASE_URL— URL de connexion PostgreSQL (obligatoire pour le Wiki).NEXTAUTH_SECRET,NEXTAUTH_URL— Authentification (requise pour créer / éditer des articles).AI_SERVER_URL— URL du serveur Ollama (ex.http://localhost:11434).AI_MODEL— Modèle utilisé (ex.qwen3:8b).AI_MOCK—truepour utiliser des réponses mockées sans serveur IA (dév).
Gestion des $ dans l’assistant IA (références aux modules)
Dans le champ de saisie de l'assistant IA (module IA), taper un $ affiche une liste de suggestions de « tokens » permettant d'inclure des références aux modules dans votre question. Par exemple : $wiki (Wiki), $doc (Documents), $metric (Métriques), etc. Ces tokens servent à l'autocomplétion : en sélectionnant $wiki, vous insérez le libellé du module dans le message. Le contenu effectif des articles du Wiki n'est pas inséré à la place du $ ; il est injecté dans le contexte envoyé au modèle lorsque le module « Wiki » est sélectionné dans le panneau de contexte de l'assistant. Ainsi, l’IA reçoit les titres et le contenu des articles récents (jusqu’à une limite configurée, ex. 15 articles) et peut s'y appuyer pour répondre. En résumé : le $ sert à compléter rapidement un nom de module dans la zone de texte ; le choix des modules (Wiki, Documents, etc.) dans le panneau de contexte détermine quelles données sont envoyées au modèle.
Comment utiliser le $ pour appeler le Wiki dans l'assistant :
- Ouvrez l'assistant IA (module IA, page
/modules/ia). - Dans le panneau de contexte (modules disponibles), cochez ou sélectionnez Wiki pour que le contenu des articles soit inclus dans le contexte envoyé au modèle.
- Dans la zone de saisie du message, tapez $ : une liste de suggestions apparaît (
$wiki,$doc, etc.). Sélectionnez$wikipour insérer une référence au module Wiki dans votre texte (par ex. « Résume les points clés $wiki »). - Le
$wikidans le message est un libellé / rappel pour vous ; les données réelles (titres et contenu des articles) sont ajoutées automatiquement au contexte de la requête grâce à la sélection du module Wiki dans le panneau. L'IA peut donc répondre en s'appuyant sur vos articles.
Tokens disponibles (extrait) :
$wiki— Wiki (articles).$doc— Documents (analyses, contrats).$metric— Métriques (dashboard).$table,$chart,$data— Autres références données.
API Wiki (résumé)
GET /api/wiki— Liste des articles (query :published=true,search=,withContent=true,limit=).POST /api/wiki— Créer un article (body :title,slug,content,parentId,isPublished).GET /api/wiki/[slug]— Détail d'un article par slug.PUT /api/wiki/[slug]— Mettre à jour un article (titre, contenu, statut publié).DELETE /api/wiki/[slug]— Supprimer un article (auteur ou admin).POST /api/wiki/generate— Génération IA : bodyaction: "format"+content(et optionneltitle) pour mise en forme ; sinonnotes,articleType(guide, procedure, best-practice, reference),workspace(service1, service2, shared) pour génération depuis des notes (streaming).