Initial commit: Documentation Effi v1.0

- Structure complète du projet
- Docker compose de production
- Documentation organisée par thèmes
- Guides d'installation et configuration
- Section dépannage détaillée
- Journal historique
This commit is contained in:
Folzo
2026-04-04 08:45:59 +02:00
commit d1e12cff60
35 changed files with 4656 additions and 0 deletions
@@ -0,0 +1,187 @@
## 📋 Résumé Complet du Thread
---
## 🖥️ Infrastructure
|Machine|IP|Rôle|GPU/CPU|
|---|---|---|---|
|**folzo-Corp**|192.168.1.11|PC gaming / STT+TTS|AMD RX 7800 XT (gfx1100)|
|**effi-server**|192.168.1.27|Serveur IA principal|CPU Intel 4 cores / 7.6GB RAM|
|**PC Gaming Ollama**|variable|LLM Ollama|GPU dédié|
---
## 🎯 Objectif du Thread
Faire tourner Whisper (STT) sur la RX 7800 XT de folzo-Corp via ROCm, en construisant CTranslate2-ROCm depuis les sources (speaches), puis migrer le TTS (openedai-speech) d'effi-server vers folzo-Corp pour libérer le CPU.
---
## 🔨 Étapes Réalisées
## 1. Build CTranslate2-ROCm pour speaches
**Problème initial :** `RuntimeError: Conv1D on GPU currently requires the cuDNN library which is not integrated in this build`
**Cause :** CTranslate2-ROCm compilé sans support MIOpen (équivalent ROCm de cuDNN)
**Solution :** Dockerfile custom `~/speaches/src/Dockerfile.rocm-ct2` avec :
text
`-DWITH_CUDNN=ON -DCUDnn_INCLUDE_DIR=/opt/rocm-6.3.4/include -DCUDnn_LIBRARY=/opt/rocm-6.3.4/lib/libMIOpen.so`
Image base : `rocm/dev-ubuntu-24.04:6.3.4-complete`
Source CTranslate2 : `github.com/arlo-phoenix/CTranslate2-rocm`
---
## 2. Erreur Architecture GPU Incorrecte
**Problème :** `RuntimeError: parallel_for failed: hipErrorInvalidDeviceFunction: invalid device function`
**Cause :** Build compilé pour `gfx1101` mais la RX 7800 XT est `gfx1100`
**Diagnostic :**
bash
`docker run --device /dev/kfd --device /dev/dri \ -e HSA_OVERRIDE_GFX_VERSION=11.0.0 speaches:rocm-ct2 \ /opt/rocm-6.3.4/bin/rocminfo | grep -E "gfx|Name" # → gfx1100 (AMD Radeon RX 7800 XT)`
**Fix :**
bash
`sed -i 's/gfx1101/gfx1100/g' ~/speaches/src/Dockerfile.rocm-ct2 cd ~/speaches/src docker build -f Dockerfile.rocm-ct2 -t speaches:rocm-ct2 .`
---
## 3. Transcription fonctionnelle (CPU en attendant rebuild)
Après le premier build, speaches fonctionne en CPU (fallback) :
- `200 OK` sur `/v1/audio/transcriptions`
- Langue `fr` détectée à 99%
- RTF > 1 (13s pour 5.4s audio) → confirme CPU, pas GPU
- ONNX Runtime cherche `libcublasLt.so.12` (CUDA) → warning non bloquant, fallback CPU automatique
**Rebuild avec gfx1100 en cours** pour activer l'accélération GPU (~10x plus rapide attendu).
---
## 4. Problème réseau effi-server
**Symptômes :** Interface filaire effi-server plantée après reboot, OpenWebUI inaccessible
**Diagnostic :**
text
`conflict detected for IP address 192.168.1.11 with host 5C:87:9C:65:95:23`
**Cause :** Conflit DHCP — deux machines avec la même IP `192.168.1.11`
**Fix court terme :** `nmcli device disconnect enp6s0 && nmcli device connect enp6s0`
**Fix permanent recommandé :** Réservations DHCP par MAC sur le routeur + `ethtool wol g` pour la carte Realtek RTL8111
---
## 5. OpenWebUI lent / erreurs 500
**Symptômes :** `500: Open WebUI: Server Connection Error`, lenteur UI
**Diagnostic :**
text
`ERROR: open_webui.routers.ollama: Connection error`
**Cause :** Ollama inaccessible — le PC gaming était éteint. Le `wol-proxy` sur effi-server assure le Wake-on-LAN mais le PC n'avait pas répondu à temps.
**Architecture WOL :**
text
`OpenWebUI → port 3011 effi → wol-proxy → WOL magic packet → PC Gaming → proxy TCP vers 11434`
---
## 6. Deux processus zombies sur effi-server
Détectés via `ps aux` :
text
`[mcpo] <defunct> [python] <defunct>`
**Fix :**
bash
`docker restart mcpo`
---
## 7. Migration openedai-speech → folzo-Corp
**Raison :** `openedai-speech` consommait ~100% CPU sur effi-server (1.06GB RAM, CPU intensif)
**Étapes :**
bash
`# Arrêt sur effi docker compose stop openedai-speech && docker compose rm -f openedai-speech # Copie des données depuis folzo-Corp scp -r effi@192.168.1.27:~/effi/tts-voices ~/openedai-speech/ scp -r effi@192.168.1.27:~/effi/tts-config ~/openedai-speech/`
**Contenu transféré :** modèles XTTS (~1.8GB), voix WAV (alloy/echo/nova/shimmer/fable/onyx), modèles ONNX piper, configs YAML
**Problème group_add :** `Unable to find group render: no matching entries in group file`
**Fix :** Utiliser GID numériques au lieu des noms :
text
`group_add: - "44" # video - "991" # render`
---
## 📁 Fichiers Clés
text
`folzo-Corp: ├── ~/speaches/ │ ├── src/Dockerfile.rocm-ct2 # Build CTranslate2 gfx1100 + MIOpen │ └── docker-compose.yml # speaches-stt:8200 └── ~/openedai-speech/ ├── docker-compose.yml # TTS ROCm gfx1100 ├── tts-voices/ # Voix XTTS + ONNX └── tts-config/ # voice_to_speaker.yaml etc. effi-server: └── ~/effi/docker-compose.yml # OpenWebUI + WOL + n8n + qdrant...`
---
## ✅ État Final des Services
|Service|Hôte|Port|État|Notes|
|---|---|---|---|---|
|**speaches-stt**|folzo-Corp|8200|✅ Fonctionne|CPU actuellement, rebuild gfx1100 pending|
|**openedai-speech**|folzo-Corp|8100|✅ Démarré|ROCm gfx1100, group_add 44+991|
|**OpenWebUI**|effi-server|3000|✅ Fonctionne|Pointé STT+TTS vers 192.168.1.11|
|**wol-proxy**|effi-server|3011|✅ Fonctionne|Proxy Ollama + WOL PC gaming|
|**n8n**|effi-server|5678|✅ Running||
|**qdrant**|effi-server|6333|✅ Running|Vector store RAG|
|**pipelines**|effi-server|9099|✅ Running|mem0 memory|
|**couchdb**|effi-server|5984|✅ Running|Obsidian LiveSync|
|**mcpo**|effi-server|8000|⚠️ Zombie détecté|Redémarré|
---
## 🔜 Prochaines Étapes
1. **Finaliser rebuild speaches gfx1100** → activer GPU sur Whisper large-v3
2. **Tester TTS ROCm** → vérifier que openedai-speech utilise bien la RX 7800 XT
3. **Mettre à jour l'URL TTS** dans OpenWebUI Admin → Audio → `http://192.168.1.11:8100`
4. **Réservations DHCP** sur le routeur pour fixer les IPs de façon permanente
5. **Tester pipeline vocal complet** : micro → STT folzo → OpenWebUI effi → LLM Ollama → TTS folzo → speaker