Files
context-continuity/synthesis_context_cintinuity.md
T

187 lines
7.9 KiB
Markdown
Raw Normal View History

# 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 dAnytype 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 larborescence.
- `trilium_api.py` : Bibliothèque pour interagir avec lAPI 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** : Lets 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é | Lets 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 larborescence** | ⏳ 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 larborescence Trilium. |
| **Tester le workflow complet** | ⭐⭐ | Nécessite les scripts et larborescence. |
| **Automatiser la synchronisation** | ⭐ | Nécessite un cron job ou un déclencheur manuel. |
---
## Tests à Effectuer
### 1. **Test de lAPI 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 larborescence.
- [ ] **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** : Lets 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 larborescence.
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) ?