# Synthèse - Projet Context Continuity # Date : 27 mai 2026 # Participants : Bastien Gourdon, Claude, Le Chat (Mistral) --- ## Contexte du Projet **Objectif principal** : Créer un système de **gestion de contexte partagé** entre plusieurs LLM (Claude, Le Chat) pour dépasser les limites de tokens (≤ 10K) et centraliser les informations liées aux projets (ex: Sliding Automation, Data Governance). **Outils utilisés** : - **Trilium** : Base de connaissances self-hosted (Docker sur Synology DS218). - **Synology DS218 (GrosseBertha)** : Hébergement de Trilium et des scripts. - **Reverse Proxy** : Accès sécurisé à Trilium via `https://trilium.bertha-cloud.fr`. - **API ETAPI** : Interaction programmatique avec Trilium. --- ## ✅ Décisions Prises ### 1. **Abandon d’Anytype au profit de Trilium** - **Raison** : - Anytype est une application desktop (Electron) **non utilisable en headless** sur NAS. - Trilium est **100% web**, self-hosted, avec une **API REST (ETAPI)** documentée. - Données **100% self-hosted** sur GrosseBertha (SQLite dans `/volume1/docker/trilium/`). - **Licence AGPL-3.0** et communauté active. ### 2. **Architecture de Trilium** - **Arborescence validée** : ``` Context Continuity/ ├── Conversations/ # Notes de type "Conversation LLM" ├── Backlog/ # Tâches à faire ├── Décisions/ # Décisions prises ├── Glossaire/ # Termes techniques └── Historique/ # Historique des actions ``` - **Types de notes** : - **Book** : Pour les dossiers (ex: `Conversations/`). - **Text** : Pour les notes de contenu (ex: une conversation spécifique). ### 3. **Automatisation via Scripts Python** - **Objectif** : Synchroniser automatiquement les contextes entre LLM et Trilium. - **Scripts créés** : - `init_trilium_architecture.py` : Initialise l’arborescence. - `trilium_api.py` : Bibliothèque pour interagir avec l’API ETAPI. - `create_conversation.py` : Crée des notes de conversation. - `generate_context.py` : Génère un contexte pour les LLM. ### 4. **Configuration Technique** - **Reverse Proxy** : - **Source** : `https://trilium.bertha-cloud.fr:443` (HTTPS). - **Destination** : `http://192.168.1.6:4292` (HTTP vers le conteneur Docker). - **Certificat SSL** : Let’s Encrypt (géré via DSM). - **Docker** : - Image : `triliumnext/notes:latest`. - Port : `4292:8080`. - Volume : `/volume1/docker/trilium:/home/node/trilium-data`. --- ## Statut des Tâches ### ✅ Tâches Effectuées | Tâche | Statut | Détails | |-------|--------|---------| | **Installation de Trilium** | ✅ Terminé | Conteneur Docker lancé et accessible en local (`http://192.168.1.6:4292`). | | **Reverse Proxy** | ✅ Terminé | Configuré dans DSM pour `trilium.bertha-cloud.fr`. | | **Certificat SSL** | ✅ Terminé | Let’s Encrypt configuré via DSM. | | **Accès externe** | ✅ Terminé | `https://trilium.bertha-cloud.fr` fonctionne. | | **Token ETAPI** | ⏳ En attente | À générer dans Trilium (Options → ETAPI → Create new token). | | **Scripts Python** | ✅ Prêts | `init_trilium_architecture.py`, `trilium_api.py`, etc. | ### Tâches en Cours | Tâche | Statut | Prochaine Étape | |-------|--------|-----------------| | **Initialisation de l’arborescence** | ⏳ En attente | Exécuter `init_trilium_architecture.py`. | | **Test des scripts** | ⏳ En attente | Vérifier que les notes sont créées dans Trilium. | | **Intégration avec les LLM** | ⏳ En attente | Utiliser `generate_context.py` avant chaque session LLM. | ### ❌ Tâches Restantes | Tâche | Priorité | Dépendances | |-------|----------|-------------| | **Générer le token ETAPI** | ⭐⭐⭐ | Nécessaire pour les scripts Python. | | **Exécuter `init_trilium_architecture.py`** | ⭐⭐⭐ | Nécessite le token ETAPI. | | **Créer la première conversation** | ⭐⭐ | Nécessite l’arborescence Trilium. | | **Tester le workflow complet** | ⭐⭐ | Nécessite les scripts et l’arborescence. | | **Automatiser la synchronisation** | ⭐ | Nécessite un cron job ou un déclencheur manuel. | --- ## Tests à Effectuer ### 1. **Test de l’API ETAPI** ```bash # Remplace TON_TOKEN par ton token ETAPI curl -H "Authorization: TON_TOKEN" http://localhost:4292/etapi/notes ``` **Résultat attendu** : Une liste de notes au format JSON. ### 2. **Test du Reverse Proxy** - Ouvre `https://trilium.bertha-cloud.fr` dans un navigateur. **Résultat attendu** : Accès à Trilium sans erreur SSL. ### 3. **Test des Scripts Python** ```bash # Initialiser l'arborescence python3 init_trilium_architecture.py # Créer une conversation python3 create_conversation.py # Générer un contexte python3 generate_context.py > contexte.md ``` **Résultat attendu** : - Dossiers créés dans Trilium. - Note de conversation ajoutée. - Fichier `contexte.md` généré. --- ## Prochaines Étapes avec Claude ### 1. **Finaliser la Configuration de Trilium** - [ ] **Générer le token ETAPI** dans Trilium (Options → ETAPI → Create new token). - [ ] **Exécuter `init_trilium_architecture.py`** pour créer l’arborescence. - [ ] **Vérifier les IDs des dossiers** dans `trilium_folder_ids.json`. ### 2. **Tester les Scripts** - [ ] **Tester `create_conversation.py`** avec une conversation factice. - [ ] **Tester `generate_context.py`** pour générer un contexte. - [ ] **Corriger les erreurs** si nécessaire (ex: permissions, token invalide). ### 3. **Intégrer avec les LLM** - [ ] **Avant une session LLM** : Exécuter `generate_context.py` pour récupérer le contexte. - [ ] **Après une session LLM** : Exécuter `create_conversation.py` pour ajouter la conversation à Trilium. - [ ] **Automatiser** avec un cron job ou un script wrapper. ### 4. **Améliorations Futures** - [ ] **Ajouter un système de versioning** pour les notes (ex: champ `version`). - [ ] **Intégrer un LLM local** (ex: Mistral 7B) pour résumer les contextes. - [ ] **Créer un dashboard** pour visualiser les projets et conversations. --- ## Notes Techniques ### 1. **Contraintes Synology** - **Commandes terminal** : Toujours sur **1 seule ligne** (contrainte DS218). - **Docker** : Utilise `Container Manager 24.0.2-1606` (script communautaire 007revad). - **synoinfo.conf** : `unique=synology_rtd1296_ds220j` (à vérifier après les mises à jour DSM). ### 2. **Sécurité** - **Token ETAPI** : À conserver **secrétisé** (ne jamais le commiter dans Git). - **Certificat SSL** : Let’s Encrypt géré via DSM (renouvellement automatique). - **Accès externe** : Vérifier que le **port 443** est ouvert sur la Livebox. ### 3. **Performances** - **Limite de tokens** : Briefing ≤ 10K tokens pour éviter les coûts excessifs. - **API Trilium** : Éviter les requêtes trop fréquentes (limite à 10 notes par appel dans `generate_context.py`). --- ## Liens Utiles - **Trilium** : [https://trilium.bertha-cloud.fr](https://trilium.bertha-cloud.fr) - **Documentation ETAPI** : [http://localhost:4292/etapi/](http://localhost:4292/etapi/) - **Docker Trilium** : [https://hub.docker.com/r/triliumnext/notes](https://hub.docker.com/r/triliumnext/notes) --- ## Calendrier Estimé | Étape | Durée | Priorité | |-------|-------|----------| | Générer le token ETAPI | 5 min | ⭐⭐⭐ | | Exécuter `init_trilium_architecture.py` | 10 min | ⭐⭐⭐ | | Tester les scripts | 30 min | ⭐⭐⭐ | | Intégrer avec les LLM | 1h | ⭐⭐ | | Automatiser la synchronisation | 1h | ⭐ | --- ## Points à Discuter avec Claude 1. **Validation du token ETAPI** : Confirmer que le token est bien généré et fonctionnel. 2. **Tests des scripts** : Vérifier que `init_trilium_architecture.py` crée bien l’arborescence. 3. **Intégration LLM** : Comment partager le contexte généré avec Claude/Le Chat ? 4. **Améliorations** : Faut-il ajouter des champs spécifiques (ex: `priorité`, `tags`) aux notes ? 5. **Automatisation** : Comment déclencher les scripts (cron, manuel, autre) ?