diff --git a/.opencode/TODO-NEXT-THREAD.md b/.opencode/TODO-NEXT-THREAD.md index e1cb5ce..4d8c2d5 100644 --- a/.opencode/TODO-NEXT-THREAD.md +++ b/.opencode/TODO-NEXT-THREAD.md @@ -1,392 +1,292 @@ # EFFI - THREAD SUIVANT : TODO LIST & CONTEXTE **Date création :** 2026-04-05 +**Mis à jour :** 2026-04-05 **Créé par :** OpenCode session 2026-04-05 -**Status :** En attente traitement +**Status :** 🔄 EN COURS - Installation voix et ouïe (TTS/STT) sur folzo-Corp Fedora --- -## CONTEXTE RAPIDE +## 🚨 CONTEXTE ACTUEL (IMPORTANT) -**Infrastructure actuelle :** -- effi-server (192.168.1.27) : Intel J5040, 8GB RAM - Open WebUI, Qdrant, N8N, Whisper, Openedai-Speech -- folzo-Corp (192.168.1.11) : Ryzen 5800X3D, RX 7800 XT 16GB VRAM, 32GB RAM - Ollama avec qwen3.5:9b -- Modèle principal : Effi (qwen3.5:9b, contexte 32K) -- Sub Agent Tool : Installé et configuré -- Mémoire : Solution manuelle retenue (pas Knowledge Memory, trop lent) -- Web Search : Actif avec DDGS +### Changement majeur : Reformatage folzo-Corp -**Documentation créée :** -- `docs/04-depannage/openwebui-optimisation-top30.md` : Top 30 outils -- `docs/CONFIGURATION-RECAP-GITEA.md` : Configuration complète +**Ce qui s'est passé :** +- folzo-Corp (192.168.1.11) a été reformaté : Ubuntu → **Fedora** +- Tous les services précédemment installés ont été perdus +- Réinstallation complète nécessaire + +**Ce qui est déjà fait :** +- ✅ Fedora installé et configuré +- ✅ ROCm fonctionnel (RX 7800 XT détectée) +- ✅ Docker v29.3.1 installé et fonctionnel +- ✅ Firewall configuré (ports 8100, 8200, 11434 ouverts) + +**Architecture cible :** +``` +folzo-Corp (192.168.1.11) - Fedora +├── openedai-speech (TTS) - Port 8100 - ROCm GPU ⏳ EN COURS +├── speaches (STT) - Port 8200 - CPU ⏳ EN COURS +├── Ollama - Port 11434 - ROCm GPU ✅ Déjà installé +└── qwen3.5:9b (32K context) ✅ Déjà installé + +effi-server (192.168.1.27) +└── Open WebUI - Port 3000 ✅ Déjà configuré + └── Configuration Audio à mettre à jour après TTS/STT +``` --- -## TODO LIST PRIORITAIRE +## 📋 TODO LIST - INSTALLATION VOIX & OUÏE (PRIORITÉ MAX) -### 1. OPTIMISATION RECHERCHE WEB ⭐⭐⭐ +### PHASE 1 : Préparation Fedora ✅ TERMINÉE -**Configuration actuelle :** -- Moteur : DDGS (DuckDuckGo) -- Backend : Auto (Aléatoire) -- Nombre résultats : 5 -- Requêtes concurrentes : 3 -- Langue YouTube : en +- [x] Vérifier ROCm (`rocm-smi` fonctionne) +- [x] Installer Docker et docker-compose +- [x] Configurer groupes utilisateur (docker, video, render) +- [x] Ouvrir ports firewall (8100, 8200, 11434) -**Objectifs :** -- [ ] Tester d'autres backends (SearXNG auto-hébergé, Brave Search API) -- [ ] Augmenter nombre de résultats (10 ?) -- [ ] Vérifier paramètres concurrents -- [ ] Tester avec requêtes en anglais vs français - -**Ressources :** -- Admin Panel → Settings → Web Search -- SearXNG peut être auto-hébergé sur effi-server +**Résultat :** +```bash +Docker version 29.3.1 +ROCm: RX 7800 XT gfx1101 détectée +Firewall: 1025-65535/tcp ouverts +``` --- -### 2. INTÉGRATION JOPLIN + OPENWEBUI ⭐⭐⭐⭐ +### PHASE 2 : TTS (openedai-speech) ⏳ EN COURS -**Objectif :** Lier Joplin Server (sur NAS) avec OpenWebUI pour : -- RAG sur les notes Joplin existantes -- Copie des notes OpenWebUI vers Joplin - -**Solutions possibles :** - -**Option A : Joplin Data API** -- Joplin Server expose une API REST -- Créer un outil OpenWebUI qui interroge l'API Joplin -- Récupérer les notes via `/api/items` ou `/api/notes` - -**Option B : Export/Import périodique** -- Script Python qui sync les notes OpenWebUI → Joplin -- Ou inverse : export Joplin → knowledge base OpenWebUI - -**Option C : MCP (Model Context Protocol)** -- Si Joplin a un MCP server -- Ou créer un bridge Joplin ↔ OpenWebUI - -**Configuration Joplin Server :** -- URL : http://[IP_NAS]:22300 (à vérifier) -- Auth : Token API nécessaire -- Docs : https://joplinapp.org/help/dev/spec/architecture/ +**Objectif :** Déployer openedai-speech sur folzo-Corp avec ROCm **Étapes :** -- [ ] Vérifier URL et accès Joplin Server -- [ ] Tester API Joplin avec curl -- [ ] Créer outil OpenWebUI ou script de sync -- [ ] Configurer knowledge base "joplin-notes" si besoin + +#### 2.1 Structure et configuration +- [ ] Créer dossiers `~/openedai-speech/{tts-voices,tts-config}` +- [ ] Créer `docker-compose.yml` avec ROCm support +- [ ] Créer `voice_to_speaker.yaml` (config voix XTTS) + +#### 2.2 Modèles de voix +- [ ] Télécharger modèles Piper (fallback) + - `en_US-libritts_r-medium.onnx` + - `en_US-libritts_r-medium.onnx.json` +- [ ] (Optionnel) Restaurer fichiers .wav personnalisés depuis backup + +#### 2.3 Déploiement +- [ ] Lancer container : `docker compose up -d` +- [ ] Vérifier logs : `docker logs -f openedai-speech` +- [ ] Test local : `curl http://localhost:8100/v1/audio/speech` +- [ ] Test depuis effi-server : `curl http://192.168.1.11:8100/...` + +**Fichiers à créer :** +``` +~/openedai-speech/ +├── docker-compose.yml +├── tts-config/ +│ └── voice_to_speaker.yaml +└── tts-voices/ + ├── en_US-libritts_r-medium.onnx + ├── en_US-libritts_r-medium.onnx.json + └── (nova.wav, alloy.wav...) +``` + +**Guide détaillé :** `docs/03-guides/voix-ouie-fedora-install.md` --- -### 3. GÉNÉRATION D'IMAGE ⭐⭐⭐⭐ +### PHASE 3 : STT (speaches - Whisper) ⏳ EN COURS -**Matériel disponible :** -- folzo-Corp : RX 7800 XT 16GB VRAM -- Ollama : qwen3.5:9b (texte uniquement) - -**Solutions :** - -**Option A : ComfyUI + Stable Diffusion (RECOMMANDÉ)** -- Installation sur folzo-Corp (GPU AMD) -- Utilise ROCm pour accélération GPU -- Intégration OpenWebUI via API - -**Installation ComfyUI :** -```bash -# Sur folzo-Corp -pip install comfyui -# Ou git clone https://github.com/comfyanonymous/ComfyUI -# Configurer pour ROCm (AMD GPU) -# Port par défaut : 8188 -``` - -**Configuration OpenWebUI :** -- Admin Panel → Settings → Images -- Provider : ComfyUI -- URL : http://192.168.1.11:8188 - -**Modèles recommandés pour RX 7800 XT 16GB :** -- SDXL Base + Refiner (optimisé) -- SD 1.5 (plus rapide, moins gourmand) -- Pony Diffusion XL (si disponible) - -**Option B : Ollama avec modèle vision** -- qwen3.5 a une version vision (si disponible) -- Mais moins performant que SD dédié +**Objectif :** Déployer speaches avec Whisper large-v3-turbo **Étapes :** -- [ ] Installer ComfyUI sur folzo-Corp -- [ ] Configurer ROCm pour RX 7800 XT -- [ ] Télécharger modèle SDXL ou SD 1.5 -- [ ] Tester génération image -- [ ] Configurer dans OpenWebUI -**Vérification capacité :** -```bash -# Sur folzo-Corp -rocm-smi # Vérifier GPU dispo -# ComfyUI avec ROCm devrait fonctionner sur 7800 XT -``` +#### 3.1 Structure +- [ ] Créer dossier `~/speaches` +- [ ] Cloner repo : `git clone https://github.com/speaches-ai/speaches.git` ---- +#### 3.2 Configuration +- [ ] Créer `Dockerfile` (image uv + speaches) +- [ ] Créer `docker-compose.yml` avec volume modèles -### 4. WHISPER (STT) - RÉPARATION ⭐⭐⭐ +#### 3.3 Déploiement +- [ ] Builder image : `docker compose build` +- [ ] Lancer services : `docker compose up -d` +- [ ] Attendre téléchargement modèle (~1.5GB) +- [ ] Vérifier enregistrement modèle : `curl http://localhost:8200/v1/models` -**Problème :** Ne marche pas très bien - -**Configuration actuelle :** -- Service : Whisper sur effi-server (port 8200) -- Modèle : Systran/faster-whisper-large-v3 -- Langue : FR -- Device : CPU (Intel J5040) - -**Solutions possibles :** - -**Option A : Optimiser modèle actuel** -- Tester modèle plus petit (medium ou small) pour plus de vitesse -- Vérifier latence réseau entre effi-server et folzo-Corp -- Vérifier qualité micro/input audio - -**Option B : Whisper sur folzo-Corp (GPU)** -- Déplacer whisper sur folzo-Corp pour utiliser GPU -- ROCm supporte whisper ? -- Ou utiliser CPU sur Ryzen 5800X3D (plus rapide que J5040) - -**Option C : Alternative (faster-whisper-cpp)** -- Version C++ plus rapide -- Quantization INT8 pour vitesse - -**Tests à faire :** -- [ ] Vérifier logs whisper : `docker logs whisper` -- [ ] Tester avec curl direct -- [ ] Mesurer latence (temps transcription 30s audio) -- [ ] Comparer qualité vs vitesse avec modèles smaller - -**Configuration OpenWebUI actuelle :** -```yaml -AUDIO_STT_ENGINE: openai -AUDIO_STT_OPENAI_API_BASE_URL: http://192.168.1.27:8200/v1 -AUDIO_STT_MODEL: Systran/faster-whisper-large-v3 -``` - ---- - -### 5. TTS (OPENEDAI-SPEECH) - RÉPARATION ⭐⭐⭐ - -**Problème :** Connexion refusée au port 8100 depuis effi-server +#### 3.4 Tests +- [ ] Test local transcription +- [ ] Test depuis effi-server **Configuration :** -- Service : Openedai-Speech sur folzo-Corp (port 8100) -- Erreur : `Connection refused` depuis effi-server +- Modèle : `deepdml/faster-whisper-large-v3-turbo-ct2` +- Langue : `fr` +- Compute : `int8` (CPU) +- Threads : `4` -**Diagnostics nécessaires :** - -```bash -# Sur folzo-Corp -sudo systemctl status openedai-speech # Si service systemd -# OU -docker ps | grep openedai # Si container - -# Test local - curl http://localhost:8100/v1/audio/voices - -# Test depuis effi-server - curl http://192.168.1.11:8100/v1/audio/voices -``` - -**Causes possibles :** -- Service pas démarré sur folzo-Corp -- Firewall bloque port 8100 -- Ollama écoute sur 127.0.0.1 au lieu de 0.0.0.0 -- Container Docker pas exposé sur le réseau - -**Solutions :** -- [ ] Vérifier si service/container tourne sur folzo-Corp -- [ ] Vérifier binding réseau (0.0.0.0 vs 127.0.0.1) -- [ ] Ouvrir port 8100 dans firewall -- [ ] Tester avec `netstat -tlnp | grep 8100` - -**Alternative si réparation impossible :** -- Désactiver TTS dans OpenWebUI -- Ou utiliser TTS du navigateur (Web Speech API natif) +**Note :** ROCm GPU pour Whisper est optionnel futur (compilation complexe) --- -### 6. HOME ASSISTANT - OPTIMISATION ⭐⭐⭐ +### PHASE 4 : Configuration Open WebUI ⏳ À FAIRE -**Problème :** Plugin installé mais très lent à chaque demande +**Objectif :** Connecter TTS/STT à Open WebUI -**Configuration actuelle :** -- Tool installé dans OpenWebUI -- Home Assistant accessible (URL ?) -- Latence élevée à chaque appel +**Admin Panel → Settings → Audio :** -**Optimisations possibles :** +**STT :** +- [ ] Engine : `OpenAI` +- [ ] API Base URL : `http://192.168.1.11:8200/v1` +- [ ] Model : `deepdml/faster-whisper-large-v3-turbo-ct2` -**Option A : Cache et keep-alive** -- Vérifier si connexion HA est maintenue ou recréée à chaque fois -- Configurer timeout approprié -- Utiliser webhook au lieu de polling +**TTS :** +- [ ] Engine : `OpenAI` +- [ ] API Base URL : `http://192.168.1.11:8100/v1` +- [ ] Model : `tts-1-hd` +- [ ] Voice : `nova` (ou `alloy` en fallback) -**Option B : Réduire nombre d'entités exposées** -- Limiter les entités accessibles à celles utiles -- Moins de données à récupérer = plus rapide - -**Option C : Local vs Cloud** -- Vérifier si HA est accessible en local (même réseau) -- Éviter rebonds internet si possible - -**Option D : Async et parallélisme** -- Vérifier si le tool utilise async/await correctement -- Possibilité de faire plusieurs appels en parallèle - -**Configuration à vérifier :** -```yaml -# Dans Home Assistant -Configuration → Personnes → Tokens d'accès -- Token Long-Lived créé ? -- Droits suffisants ? -``` - -**Étapes :** -- [ ] Mesurer temps de réponse actuel -- [ ] Vérifier logs Home Assistant (appels reçus) -- [ ] Tester appel API direct avec curl -- [ ] Optimiser tool ou configuration +**Tests finaux :** +- [ ] Test micro dans chat Effi +- [ ] Vérifier STT → transcription +- [ ] Vérifier réponse LLM +- [ ] Vérifier TTS → lecture voix --- -### 7. OUTIL WEB SCRAPING ⭐⭐⭐ +## 📚 AUTRES TÂCHES (APRÈS VOIX/OUÏE) -**Besoin :** Outil pour extraire contenu de pages web +### Phase 5 : Optimisations -**Solutions :** +#### 5.1 Web Search +- [ ] Tester autres backends (SearXNG auto-hébergé) +- [ ] Augmenter nombre résultats (10 ?) +- [ ] Vérifier paramètres concurrents -**Option A : Tool existant OpenWebUI** -- Rechercher dans marketplace : "browser", "scrape", "fetch" -- Ex: "Browser Tool", "Web Scraper", "Fetch URL" +#### 5.2 Home Assistant +- [ ] Diagnostiquer lenteur +- [ ] Optimiser connexions/cache +- [ ] Réduire entités exposées si besoin -**Option B : Créer tool custom** -- Python avec BeautifulSoup + requests -- Ou Playwright pour navigation complète -- Déployer comme tool OpenWebUI +### Phase 6 : Intégrations majeures -**Option C : Utiliser Web Search avec fetch** -- Web Search a déjà une fonction "fetch_url" -- Peut récupérer contenu d'une URL spécifique -- À vérifier si suffisant ou besoin navigation complexe +#### 6.1 Joplin + OpenWebUI +- [ ] Vérifier URL Joplin Server +- [ ] Tester API Joplin +- [ ] Créer outil ou script de sync -**Installation recommandée :** -```bash -# Tool existant à chercher -Admin Panel → Tools → Discover -Rechercher : "browser", "scraper", "fetch" -``` +#### 6.2 Génération d'image (ComfyUI) +- [ ] Installer ComfyUI sur folzo-Corp (ROCm) +- [ ] Télécharger modèle SDXL ou SD 1.5 +- [ ] Configurer dans OpenWebUI -**Étapes :** -- [ ] Chercher tool existant marketplace -- [ ] Tester avec quelques URLs -- [ ] Si besoin avancé, créer tool custom +### Phase 7 : Outils additionnels ---- +#### 7.1 Web Scraping +- [ ] Chercher tool marketplace OpenWebUI +- [ ] Tester ou créer tool custom -### 8. ACCÈS CALENDRIER ⭐⭐⭐ - -**Besoin :** Effi peut accéder au calendrier (lecture/écriture) - -**Solutions :** - -**Option A : CalDAV (standard)** -- Protocole ouvert pour calendriers -- Supporté par Nextcloud, Google Calendar (via bridge), iCloud -- Tool OpenWebUI "Calendar" ou "CalDAV" - -**Option B : Google Calendar API** -- Si utilise Google Calendar -- Nécessite OAuth2 credentials -- Tool existant probablement - -**Option C : Nextcloud Calendar** -- Si Nextcloud présent sur le NAS -- API CalDAV native -- Intégration directe possible - -**Option D : Joplin (déjà présent)** -- Joplin a des plugins calendrier/tâches -- Peut-être pas l'idéal pour calendrier pur - -**Étapes :** -- [ ] Identifier solution calendrier actuelle (Google ? Nextcloud ?) -- [ ] Chercher tool CalDAV/Google Calendar marketplace +#### 7.2 Calendrier +- [ ] Identifier solution calendrier (Google/Nextcloud) +- [ ] Chercher tool CalDAV/Google Calendar - [ ] Configurer accès API -- [ ] Tester création/lecture événements --- -## ORDRE DE PRIORITÉ SUGGÉRÉ +## 🔧 RÉFÉRENCES & DOCUMENTATION -### Phase 1 : Réparations urgentes (Jour 1) -1. **TTS** (rapide à diagnostiquer/réparer) -2. **Whisper** (optimisation ou migration) +### Documentation créée -### Phase 2 : Intégrations majeures (Jour 1-2) -3. **Joplin + OpenWebUI** (big feature) -4. **Génération d'image** (installation ComfyUI) +1. **Guide installation voix/ouïe Fedora** : `docs/03-guides/voix-ouie-fedora-install.md` + - Plan complet TTS/STT + - Docker compose configs + - Procédures de test + - Dépannage -### Phase 3 : Optimisations (Jour 2-3) -5. **Web Search** (paramètres) -6. **Home Assistant** (performance) -7. **Web Scraping** (tool à installer) -8. **Calendrier** (intégration) +2. **Historique complet projet** : `docs/ARCHIVE/HISTORIQUE-COMPLET-EFFI.md` + - Toute l'histoire du projet + - Choix technologiques + - Problèmes et solutions + +3. **Configuration recap** : `docs/CONFIGURATION-RECAP-GITEA.md` + - Config actuelle validée + - Paramètres modèles + - Prompts système + +4. **Optimisations top 30** : `docs/04-depannage/openwebui-optimisation-top30.md` + - Meilleurs outils/functions + - Paramètres optimaux + - Astuces performances + +### Liens importants + +- **Dépôt Gitea** : https://gitea.folzocorp.fr/Folzo/effi +- **openedai-speech** : https://github.com/matatonic/openedai-speech +- **speaches** : https://github.com/speaches-ai/speaches --- -## RAPPEL CONFIGURATION CLÉ +## 💡 NOTES POUR LE PROCHAIN THREAD -**Modèle Effi :** -- Base : qwen3.5:latest (9B) -- Contexte : 32K tokens -- Température : 0.7 -- Répétez penalty : 1.05 +### Contexte technique -**Sub Agent :** -- MAX_ITERATIONS : 10 -- MAX_PARALLEL_AGENTS : 5 -- EXCLUDED_TOOL_IDS : sub_agent +**Infrastructure actuelle validée :** +- effi-server : Intel J5040, 8GB RAM - Open WebUI, Qdrant, N8N ✅ +- folzo-Corp : Ryzen 5800X3D, RX 7800 XT 16GB, 32GB RAM, **Fedora** ✅ +- Modèle : Effi (qwen3.5:9b, contexte 32K) ✅ +- Mémoire : Solution manuelle retenue ✅ +- Web Search : Actif avec DDGS ✅ -**Mémoire :** -- Solution : Native (Profile → Memory) -- Knowledge Memory : Abandonnée (trop lente) +**En cours d'installation :** +- openedai-speech (TTS) sur folzo-Corp +- speaches (STT) sur folzo-Corp -**Services :** -- Open WebUI : http://192.168.1.27:3000 -- Ollama : http://192.168.1.11:11434 (via WOL) +### Points d'attention + +1. **ROCm fonctionne** sur Fedora, mais build CTranslate2 complexe +2. **Whisper restera en CPU** pour l'instant (suffisant) +3. **XTTS v2** pour TTS donne meilleure qualité voix +4. **Docker sur Fedora** utilise Podman par défaut, mais docker installé explicitement + +### Prochaines étapes après voix/ouïe + +1. **Joplin integration** : Besoin RAG sur notes existantes +2. **ComfyUI** : Génération image avec RX 7800 XT 16GB +3. **Optimisations** : Web search, Home Assistant performance --- -## LIENS UTILES +## 📝 RÉCAPITULATIF COMMANDES -- Documentation créée : `docs/04-depannage/openwebui-optimisation-top30.md` -- Config récap : `docs/CONFIGURATION-RECAP-GITEA.md` -- Dépôt : https://gitea.folzocorp.fr/Folzo/effi +```bash +# === SUR FOLZO-CORP (Fedora) === ---- +# 1. TTS - openedai-speech +cd ~/openedai-speech +docker compose up -d +docker logs -f openedai-speech -## NOTES POUR LE PROCHAIN THREAD +# 2. STT - speaches +cd ~/speaches +docker compose build +docker compose up -d +docker logs -f speaches-stt -1. L'utilisateur est satisfait de la configuration actuelle et veut aller plus loin -2. Il est réceptif aux optimisations techniques -3. Infrastructure solide (RX 7800 XT 16GB est puissant pour génération image) -4. Préférence pour solutions self-hostées (Joplin déjà présent) -5. Utilise déjà Sub Agent avec succès +# 3. Tests +curl http://localhost:8100/v1/audio/speech \ + -H "Content-Type: application/json" \ + -d '{"model":"tts-1","input":"Test","voice":"alloy"}' \ + --output /tmp/test.mp3 -**Approche recommandée :** -- Prioriser les réparations (TTS, Whisper) -- Puis les gros projets (Joplin, Images) -- Enfin les optimisations fines +curl http://localhost:8200/v1/models + +# === SUR EFFI-SERVER === +# Configurer dans Open WebUI Admin Panel +# STT: http://192.168.1.11:8200/v1 +# TTS: http://192.168.1.11:8100/v1 +``` --- **Créé le :** 2026-04-05 -**Statut :** ✅ En attente traitement thread suivant +**Mis à jour :** 2026-04-05 +**Statut :** 🔄 EN COURS - Installation TTS/STT sur Fedora