# πŸ€– Effi - Assistant IA Personnel Self-Hosted Effi est un assistant IA personnel **100% auto-hΓ©bergΓ©**, avec mΓ©moire persistante, discussion vocale, gΓ©nΓ©ration d'images/audio, et surveillance systΓ¨me. --- ## πŸ—οΈ Architecture ### Infrastructure Multi-Machines | 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 | | **NAS Synology** | `192.168.1.25` | Monitoring | Beszel Hub | ### SchΓ©ma Global ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ NAS SYNOLOGY (192.168.1.25) β”‚ β”‚ Beszel Hub :8090 β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ Monitoring β”‚ Monitoring β”‚ Monitoring β–Ό β–Ό β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 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β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ kreuzberg β”‚ β”‚ Beszel Agent β”‚ β”‚ β”‚ β”‚ Port 8300 β”‚ β”‚ Monitoring β”‚ β”‚ β”‚ β”‚ Doc Extract β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ RX 7800 XT (VRAM 17GB) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- ## πŸ“¦ Services ### FolzoCorp (192.168.1.11) | Service | Port | Image | RΓ΄le | RAM/VRAM | Auto-unload | |---------|------|-------|------|----------|-------------| | **Ollama** | 11434 | Native | LLM inference | Variable | N/A | | **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 | ### EffiServer (192.168.1.27) | Service | Port | Image | RΓ΄le | |---------|------|-------|------| | **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 | | **wol-proxy** | 3011 | Build local | Wake-on-LAN + Ollama proxy | | **beszel-agent** | - | `henrygd/beszel-agent:latest` | Monitoring | ### NAS Synology (192.168.1.25) | Service | Port | Image | RΓ΄le | |---------|------|-------|------| | **Beszel Hub** | 8090 | `henrygd/beszel:latest` | Monitoring central | --- ## 🎯 FonctionnalitΓ©s ### πŸ’¬ Chat IA - **Interface**: Open WebUI - **LLM principal**: qwen3:8b (via Ollama) - **Autres modΓ¨les disponibles**: qwen3.5, gemma4, deepseek-r1, mistral, etc. ### 🎀 Pipeline Vocal - **STT**: Whisper large-v3 via effi-stt (CPU, dΓ©chargement auto) - **TTS**: XTTS v2 via openedai-speech (GPU ROCm) ### πŸ–ΌοΈ GΓ©nΓ©ration Images/Audio - **ComfyUI**: Workflows pour image et audio - **ModΓ¨le audio**: ACE-Step ( gΓ©nΓ©ration musicale) - **ModΓ¨les image**: Multiples checkpoints disponibles ### πŸ“„ Extraction Documents - **Kreuzberg**: Extraction 90+ formats (PDF, DOCX, images, etc.) - IntΓ©grΓ© Γ  OpenWebUI via CONTENT_EXTRACTION_ENGINE=docling ### 🧠 MΓ©moire - **Type**: MΓ©moire manuelle via OpenWebUI (snippets) - **RAG**: Qdrant pour embeddings sΓ©mantiques ### πŸ“Š Monitoring - **Beszel**: CPU, RAM, VRAM, GPU sur toutes les machines - **Alertes**: Configurables par systΓ¨me --- ## πŸ“ Structure du Projet ``` effi/ β”œβ”€β”€ beszel/ # Configuration Beszel β”‚ β”œβ”€β”€ docker-compose-hub.yml # Hub (Synology) β”‚ β”œβ”€β”€ docker-compose-agent-folzocorp.yml # Agent FolzoCorp β”‚ └── docker-compose-agent-effiserver.yml # Agent EffiServer β”‚ β”œβ”€β”€ comfyui/ # ComfyUI (Image/Audio) β”‚ β”œβ”€β”€ docker-compose.yml β”‚ β”œβ”€β”€ custom_nodes/ # Nodes personnalisΓ©s β”‚ β”œβ”€β”€ models/ # ModΓ¨les checkpoints, VAE, LoRA β”‚ └── workflows/ # Workflows JSON β”‚ β”œβ”€β”€ effi-stt/ # STT Whisper β”‚ β”œβ”€β”€ docker-compose.yml β”‚ β”œβ”€β”€ Dockerfile β”‚ └── main.py # API avec timeout auto-unload β”‚ β”œβ”€β”€ effi-kreuzberg/ # Documentation Kreuzberg β”‚ β”œβ”€β”€ README.md β”‚ └── MIGRATION.md β”‚ β”œβ”€β”€ scripts/ # Scripts utilitaires β”‚ β”œβ”€β”€ beszel_client.py # Client API Beszel β”‚ β”œβ”€β”€ comfyui-memory-manager.py # Restart ComfyUI aprΓ¨s idle β”‚ β”œβ”€β”€ kreuzberg-memory-manager.py # Restart Kreuzberg si >2GB β”‚ └── start-memory-monitors.sh β”‚ β”œβ”€β”€ systemd/ # Services systemd β”‚ β”œβ”€β”€ comfyui-memory-manager.service β”‚ β”œβ”€β”€ kreuzberg-memory-manager.service β”‚ └── beszel-agent-wake.service β”‚ β”œβ”€β”€ docs/ # Documentation β”‚ β”œβ”€β”€ SESSION-2026-04-12-RAM-BESZEL.md β”‚ β”œβ”€β”€ BESZEL-INSTALLATION.md β”‚ └── MEMOIRE-GESTION.md β”‚ └── docker-compose*.yml # Divers compose files (legacy/backup) ``` --- ## πŸš€ DΓ©marrage ### FolzoCorp ```bash # Tous les services Docker cd ~/Documents/OpenCode/Projets/Effi/comfyui && docker compose up -d cd ~/Documents/OpenCode/Projets/Effi/effi-stt && docker compose up -d cd ~/Documents/OpenCode/Projets/Effi/beszel && docker compose -f docker-compose-agent-folzocorp.yml up -d # Services memory (systemd) sudo systemctl start comfyui-memory-manager sudo systemctl start kreuzberg-memory-manager # Ollama (native) systemctl --user start ollama ``` ### EffiServer ```bash cd ~/effi docker compose up -d ``` --- ## πŸ”§ Configuration ### Variables d'Environnement **effi-stt**: - `INACTIVITY_TIMEOUT=300` - Timeout avant dΓ©chargement (secondes) **ComfyUI**: - shm_size: 8GB (mΓ©moire partagΓ©e) - Monitoring: Script comfyui-memory-manager.py **Beszel**: - HUB_URL: http://192.168.1.25:8090 --- ## πŸ“Š Monitoring ### Beszel - **URL**: http://192.168.1.25:8090 - **Agents actifs**: - FolzoCorp (192.168.1.11) - GPU AMD RX 7800 XT - EffiServer (192.168.1.27) - Intel J5040 ### Scripts Memory | Script | Condition | Action | |--------|-----------|--------| | comfyui-memory-manager.py | 10min idle + VRAM<1% + RAM>5GB | Restart container | | kreuzberg-memory-manager.py | 10min idle + RAM>2GB | Restart container | | effi-stt | 5min idle | DΓ©chargement modΓ¨le Whisper | ### Commandes Utiles ```bash # Statut services sudo systemctl status comfyui-memory-manager kreuzberg-memory-manager docker ps # Logs journalctl -u comfyui-memory-manager -f docker logs -f comfyui # MΓ©triques Beszel python3 scripts/beszel_client.py --system folzocorp --check stats ``` --- ## πŸ“š Documentation - [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) - [Guide ACE-Step](./docs/guide-ace-step.md) - [Guide ComfyUI](./comfyui/README.md) --- ## πŸ”— Technologies | Domaine | Technologies | |---------|-------------| | **LLM** | Ollama, qwen3:8b | | **Interface** | Open WebUI | | **STT** | Faster Whisper (CPU) | | **TTS** | XTTS v2 (ROCm GPU) | | **Image/Audio** | ComfyUI + ACE-Step | | **Vector DB** | Qdrant | | **Document** | Kreuzberg (docling) | | **Automatisation** | n8n | | **GPU** | AMD RX 7800 XT (ROCm) | | **Monitoring** | Beszel | --- ## πŸ“ Historique **Avril 2026** - Optimisation RAM + Monitoring - Ajout scripts dΓ©chargement mΓ©moire (ComfyUI, Kreuzberg, effi-stt) - Installation Beszel (Hub + 2 agents) - Service systemd pour restart aprΓ¨s veille **Mars 2026** - GΓ©nΓ©ration Audio - IntΓ©gration ACE-Step pour gΓ©nΓ©ration musicale - ComfyUI avec ROCm **FΓ©vrier 2026** - Stack Vocale - effi-stt avec Whisper large-v3 - openedai-speech avec XTTS v2 - Kreuzberg pour extraction documents --- ## πŸ™‹ Auteur **Folzo** - [gitea.folzocorp.fr/Folzo](https://gitea.folzocorp.fr/Folzo) --- *DerniΓ¨re mise Γ  jour : Avril 2026*