docs: add jean-router architecture and session journal
- Add SESSION-2026-07-20-JEAN-ROUTER.md (complete session journal) - Add ARCHITECTURE-JEAN-ROUTER.md (new architecture documentation) - Remove ARCHITECTURE-LITELLM.md (replaced by jean-router) - Update README.md with jean-router, Jean backend, and VRAM management - Document dynamic preset discovery and VRAM switching logic
This commit is contained in:
@@ -10,8 +10,8 @@ Effi est un assistant IA personnel **100% auto-hébergé**, avec mémoire persis
|
||||
|
||||
| Machine | IP | Rôle | Services |
|
||||
|---------|-----|------|----------|
|
||||
| **effi-server** | `192.168.1.27` | Serveur Docker principal | OpenWebUI, Qdrant, n8n, Ollama proxy |
|
||||
| **folzo-Corp** | `192.168.1.11` | LLM + STT + TTS + Gen | Ollama, ComfyUI, effi-stt, openedai-speech, kreuzberg |
|
||||
| **effi-server** | `192.168.1.27` | Serveur Docker principal | OpenWebUI, Qdrant, n8n, jean-router |
|
||||
| **folzo-Corp** | `192.168.1.11` | LLM + STT + TTS + Gen | Jean, Ollama, ComfyUI, effi-stt, openedai-speech, kreuzberg |
|
||||
| **NAS Synology** | `192.168.1.25` | Monitoring | Beszel Hub |
|
||||
|
||||
### Schéma Global
|
||||
@@ -28,26 +28,30 @@ Effi est un assistant IA personnel **100% auto-hébergé**, avec mémoire persis
|
||||
│ EFFI SERVER (192.168.1.27) │ │ FOLZO-CORP (192.168.1.11) │
|
||||
│ │ │ │
|
||||
│ ┌──────────────┐ ┌──────────┐ │ │ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ Open WebUI │ │ Qdrant │ │ │ │ Ollama │ │ ComfyUI │ │
|
||||
│ │ Port 3000 │ │ Port 6333│ │ │ │ Port 11434 │ │ Port 8188 │ │
|
||||
│ └──────────────┘ └──────────┘ │ │ │ qwen3:8b │ │ Image/Audio │ │
|
||||
│ │ │ └──────────────┘ └──────────────┘ │
|
||||
│ ┌──────────────┐ ┌──────────┐ │ │ │
|
||||
│ │ n8n │ │ wol-proxy│ │ │ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ Port 5678 │ │ Port 3011│ │ │ │ effi-stt │ │ openedai │ │
|
||||
│ └──────────────┘ └──────────┘ │ │ │ Port 8200 │ │ Port 8100 │ │
|
||||
│ │ │ │ Whisper STT │ │ TTS │ │
|
||||
│ ┌──────────────┐ ┌──────────┐ │ │ └──────────────┘ └──────────────┘ │
|
||||
│ │ Beszel Agent │ │ Watchtower│ │ │ │
|
||||
│ │ Open WebUI │ │ Qdrant │ │ │ │ Jean │ │ Ollama │ │
|
||||
│ │ Port 3000 │ │ Port 6333│ │ │ │ Port 8080 │ │ Port 11434 │ │
|
||||
│ └──────────────┘ └──────────┘ │ │ │ llama.cpp │ │ Vision │ │
|
||||
│ │ │ │ Ornith 35B │ │ mistral, │ │
|
||||
│ ┌──────────────┐ ┌──────────┐ │ │ │ Qwen3.6... │ │ qwen3.5:9b │ │
|
||||
│ │ n8n │ │jean-router│ │ │ └──────────────┘ └──────────────┘ │
|
||||
│ │ Port 5678 │ │ Port 3014│ │ │ │
|
||||
│ └──────────────┘ └──────────┘ │ │ ┌──────────────┐ ┌──────────────┐ │
|
||||
└─────────────────────────────────┘ │ │ kreuzberg │ │ Beszel Agent │ │
|
||||
│ │ Port 8300 │ │ Monitoring │ │
|
||||
│ │ Doc Extract │ └──────────────┘ │
|
||||
│ └──────────────┘ │
|
||||
│ RX 7800 XT (VRAM 17GB) │
|
||||
│ │ │ │ ComfyUI │ │ effi-stt │ │
|
||||
│ ┌──────────────┐ ┌──────────┐ │ │ │ Port 8188 │ │ Port 8200 │ │
|
||||
│ │ Beszel Agent │ │ Watchtower│ │ │ │ Image/Audio │ │ Whisper STT │ │
|
||||
│ └──────────────┘ └──────────┘ │ │ └──────────────┘ └──────────────┘ │
|
||||
└─────────────────────────────────┘ │ │
|
||||
│ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ openedai │ │ kreuzberg │ │
|
||||
│ │ Port 8100 │ │ Port 8300 │ │
|
||||
│ │ TTS │ │ Doc Extract │ │
|
||||
│ └──────────────┘ └──────────────┘ │
|
||||
│ RX 7800 XT (VRAM 16GB) │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Note :** jean-router gère le routing dynamique entre Jean et Ollama avec gestion automatique de la VRAM partagée. Voir [ARCHITECTURE-JEAN-ROUTER.md](docs/ARCHITECTURE-JEAN-ROUTER.md) pour les détails.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Services
|
||||
@@ -56,13 +60,16 @@ Effi est un assistant IA personnel **100% auto-hébergé**, avec mémoire persis
|
||||
|
||||
| Service | Port | Image | Rôle | RAM/VRAM | Auto-unload |
|
||||
|---------|------|-------|------|----------|-------------|
|
||||
| **Ollama** | 11434 | Native | LLM inference (gemma4:e4b) | ~10GB | systemd auto-start |
|
||||
| **Jean** | 8080 | Native | LLM inference (llama.cpp, presets dynamiques) | ~28GB | Arrêt via API |
|
||||
| **Ollama** | 11434 | Native | LLM vision (mistral, qwen3.5:9b) | ~4-6GB | 5min après dernier usage |
|
||||
| **ComfyUI** | 8188 | `yanwk/comfyui-boot:rocm` | Image + Audio generation | 18GB shm | ✅ après 10min idle |
|
||||
| **effi-stt** | 8200 | Build local | Whisper STT | ~20MB | ✅ après 5min idle |
|
||||
| **openedai-speech** | 8100 | `ghcr.io/matatonic/openedai-speech` | TTS | ~15MB | Non (GPU) |
|
||||
| **kreuzberg** | 8300 | `ghcr.io/kreuzberg-dev/kreuzberg:latest` | Document extraction | ~5MB | ✅ après 10min idle |
|
||||
| **beszel-agent** | - | `henrygd/beszel-agent:latest` | Monitoring | ~5MB | Auto-start |
|
||||
|
||||
**Note :** Jean et Ollama partagent la VRAM (RX 7800 XT, 16GB). jean-router gère automatiquement le switch pour éviter la contention mémoire.
|
||||
|
||||
### EffiServer (192.168.1.27)
|
||||
|
||||
| Service | Port | Image | Rôle |
|
||||
@@ -70,6 +77,8 @@ Effi est un assistant IA personnel **100% auto-hébergé**, avec mémoire persis
|
||||
| **Open WebUI** | 3000 | `ghcr.io/open-webui/open-webui:main` | Interface IA |
|
||||
| **Qdrant** | 6333 | `qdrant/qdrant:latest` | Vector DB (RAG) |
|
||||
| **n8n** | 5678 | `docker.n8n.io/n8nio/n8n:latest` | Automatisation |
|
||||
| **jean-router** | 3014 | Build local | Routing dynamique Jean/Ollama + gestion VRAM |
|
||||
| **jean-proxy** | 3012 | Build local | Wake-on-LAN + Jean proxy |
|
||||
| **wol-proxy** | 3011 | Build local | Wake-on-LAN + Ollama proxy |
|
||||
| **beszel-agent** | - | `henrygd/beszel-agent:latest` | Monitoring |
|
||||
|
||||
@@ -85,9 +94,27 @@ Effi est un assistant IA personnel **100% auto-hébergé**, avec mémoire persis
|
||||
|
||||
### 💬 Chat IA
|
||||
- **Interface**: Open WebUI
|
||||
- **LLM principal**: gemma4:e4b (via Ollama, 9.6GB, 128K context)
|
||||
- **LLM secondaire**: qwen3:8b (tâches légères)
|
||||
- **Autres modèles**: qwen3.5, gemma4:26b, deepseek-r1, magistral, etc.
|
||||
- **LLM principal**: Jean (llama.cpp) avec presets dynamiques
|
||||
- **ornith-35b-q6** (35B, Q6_K, reasoning) — modèle principal
|
||||
- **qwen3.6-27b-mtp** (27B, IQ4_XS, reasoning, MTP)
|
||||
- **qwen3.6-35b-moe-compact** (35B MoE, compact)
|
||||
- **qwen3.6-35b-moe-compact-reason** (35B MoE, reasoning)
|
||||
- **qwen3.6-35b-moe-nano** (35B MoE, nano)
|
||||
- **LLM vision**: Ollama (mistral, qwen3.5:9b) pour les tâches avec images
|
||||
- **Routing automatique**: jean-router détecte le modèle demandé et route vers Jean ou Ollama
|
||||
- **Gestion VRAM**: Switch automatique entre Jean et Ollama pour éviter la contention mémoire
|
||||
|
||||
**Note :** Nouveaux presets Jean apparaissent automatiquement dans OpenWebUI sans configuration. Voir [ARCHITECTURE-JEAN-ROUTER.md](docs/ARCHITECTURE-JEAN-ROUTER.md) pour les détails.
|
||||
|
||||
### 🚀 jean-router — Routing dynamique LLM
|
||||
- **Découverte automatique**: Interroge Jean et Ollama pour lister les modèles disponibles
|
||||
- **Routing intelligent**: Route vers Jean (presets) ou Ollama (vision) selon le modèle demandé
|
||||
- **Switch automatique**: Change de preset Jean si nécessaire (via API web)
|
||||
- **Gestion VRAM**:
|
||||
- Arrête Jean quand on passe sur Ollama (libère VRAM)
|
||||
- Garde Ollama en mémoire 5 min avant déchargement automatique
|
||||
- Évite la contention mémoire entre les deux backends
|
||||
- **API OpenAI-compatible**: `/v1/models` et `/v1/chat/completions`
|
||||
|
||||
### 🎤 Pipeline Vocal
|
||||
- **STT**: Whisper large-v3 via effi-stt (CPU, déchargement auto)
|
||||
@@ -164,6 +191,8 @@ python3 scripts/beszel_client.py --system folzocorp --check stats
|
||||
|
||||
## 📚 Documentation
|
||||
|
||||
- [Architecture jean-router](./docs/ARCHITECTURE-JEAN-ROUTER.md) — Routing dynamique LLM + gestion VRAM
|
||||
- [Session 2026-07-20](./docs/05-journal/SESSION-2026-07-20-JEAN-ROUTER.md) — Création de jean-router
|
||||
- [Installation Beszel](./docs/BESZEL-INSTALLATION.md)
|
||||
- [Gestion Mémoire](./docs/MEMOIRE-GESTION.md)
|
||||
- [Session 2026-04-12](./docs/SESSION-2026-04-12-RAM-BESZEL.md)
|
||||
@@ -176,7 +205,8 @@ python3 scripts/beszel_client.py --system folzocorp --check stats
|
||||
|
||||
| Domaine | Technologies |
|
||||
|---------|-------------|
|
||||
| **LLM** | Ollama, qwen3:8b |
|
||||
| **LLM** | Jean (llama.cpp), Ollama (vision) |
|
||||
| **Routing** | jean-router (Flask, routing dynamique + gestion VRAM) |
|
||||
| **Interface** | Open WebUI |
|
||||
| **STT** | Faster Whisper (CPU) |
|
||||
| **TTS** | XTTS v2 (ROCm GPU) |
|
||||
@@ -238,6 +268,23 @@ effi/
|
||||
|
||||
## 📝 Historique
|
||||
|
||||
**Juillet 2026** - jean-router : routing dynamique LLM + gestion VRAM
|
||||
|
||||
### jean-router ✅
|
||||
- Création de jean-router (Flask) pour routing dynamique entre Jean et Ollama
|
||||
- Découverte automatique des presets Jean via `/api/presets`
|
||||
- Découverte automatique des modèles Ollama via `/api/tags`
|
||||
- Nouveaux presets Jean automatiquement visibles dans OpenWebUI
|
||||
- Gestion VRAM : arrêt Jean quand on passe sur Ollama, timer 5min pour Ollama
|
||||
- Suppression de LiteLLM (une couche de moins, config statique obsolète)
|
||||
- OpenWebUI pointe directement vers jean-router:3014
|
||||
|
||||
### Jean (llama.cpp) ✅
|
||||
- Migration vers Jean comme backend LLM principal
|
||||
- Presets dynamiques : ornith-35b-q6, qwen3.6-27b-mtp, qwen3.6-35b-moe-compact...
|
||||
- Service systemd avec démarrage au boot (sans login)
|
||||
- API web pour gestion (start/stop/switch presets)
|
||||
|
||||
**Avril 2026** - Optimisation RAM + Monitoring + Tool OpenWebUI
|
||||
|
||||
### RAM Management ✅
|
||||
|
||||
Reference in New Issue
Block a user