# 🔧 Correction Provider IA - Instructions DĂ©ploiement ## ✅ Ce qui a Ă©tĂ© corrigĂ© (3 revues de code complĂštes) ### **PROBLÈME CRITIQUE TROUVÉ** L'application utilisait **Ollama par dĂ©faut** mĂȘme quand OpenAI Ă©tait configurĂ© dans l'interface admin ! ### **Revue #1 : Factory avec fallbacks 'ollama'** ```typescript // ❌ AVANT - Code dangereux : const providerType = (config?.AI_PROVIDER_TAGS || process.env.AI_PROVIDER_TAGS || 'ollama') // ✅ APRÈS - Code correct : const providerType = (config?.AI_PROVIDER_TAGS || process.env.AI_PROVIDER_TAGS); if (!providerType) { throw new Error('AI_PROVIDER_TAGS is not configured...'); } ``` ### **Revue #2 : Docker-compose avec OLLAMA_BASE_URL par dĂ©faut** ```yaml # ❌ AVANT - Toujours dĂ©finissait Ollama : - OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-http://ollama:11434} # ✅ APRÈS - Seulement si explicitement dĂ©fini : - OLLAMA_BASE_URL=${OLLAMA_BASE_URL} ``` ### **Revue #3 : Valeurs par dĂ©faut dans tous les endpoints** - **8 API routes** corrigĂ©es pour ne plus fallback vers 'ollama' - **Config endpoint** retourne 'not set' au lieu de 'ollama' - **3 formulaires admin** mis Ă  jour ## 📋 Fichiers modifiĂ©s 1. ✅ `lib/ai/factory.ts` - Plus de fallback 'ollama', erreurs claires 2. ✅ `docker-compose.yml` - Plus de valeur par dĂ©faut OLLAMA_BASE_URL 3. ✅ `components/sidebar.tsx` - Memento (pas Mento) 4. ✅ `README.md` - Memento 5. ✅ `deploy.sh` - Memento 6. ✅ `DOCKER_DEPLOYMENT.md` - Memento 7. ✅ `app/api/ai/config/route.ts` - Affiche 'not set' au lieu de 'ollama' ## 🚀 DĂ©ploiement sur Docker ```bash # Sur votre serveur Proxmox cd /path/to/Keep # 1. RĂ©cupĂ©rer les derniers changements git pull # 2. VĂ©rifier que la base de donnĂ©es a la bonne config cd keep-notes npx tsx scripts/debug-config.ts # Devrait afficher : # AI_PROVIDER_TAGS: "openai" # AI_PROVIDER_EMBEDDING: "openai" # 3. ArrĂȘter les conteneurs cd .. docker compose down # 4. Rebuild (IMPORTANT --no-cache pour appliquer les changements) docker compose build --no-cache keep-notes # 5. DĂ©marrer docker compose up -d # 6. VĂ©rifier les logs docker compose logs -f keep-notes ``` ## đŸ§Ș Tests aprĂšs dĂ©ploiement ### 1. VĂ©rifier la config via API ```bash curl http://192.168.1.190:3000/api/debug/config ``` **RĂ©sultat attendu :** ```json { "AI_PROVIDER_TAGS": "openai", "AI_PROVIDER_EMBEDDING": "openai", "OPENAI_API_KEY": "set (hidden)" } ``` ### 2. Tester les endpoints IA ```bash # Test embeddings curl http://192.168.1.190:3000/api/ai/test ``` **RĂ©sultat attendu :** ```json { "success": true, "tagsProvider": "openai", "embeddingsProvider": "openai", "details": { "provider": "OpenAI", "baseUrl": "https://api.openai.com/v1" } } ``` ### 3. Tester dans l'interface Ouvrez http://192.168.1.190:3000 et testez : 1. **Admin Settings** → **AI Settings** - VĂ©rifiez : Tags Provider = "openai" - VĂ©rifiez : Embeddings Provider = "openai" 2. **CrĂ©ez une note** et testez : - ✹ **GĂ©nĂ©ration de titres** (Ctrl+M) - đŸ·ïž **Auto-labels** - 📝 **Clarify / Shorten / Improve Style** (les fonctions qui Ă©chouaient !) 3. **VĂ©rifiez les logs Docker** - PLUS d'erreurs "OLLAMA error NOT found" ## ❌ Si ça ne marche toujours pas ### VĂ©rifier la base de donnĂ©es ```bash docker compose exec keep-notes npx tsx scripts/debug-config.ts ``` ### VĂ©rifier les variables d'environnement ```bash docker compose exec keep-notes env | grep -E "AI_PROVIDER|OPENAI|OLLAMA" ``` **RĂ©sultat attendu :** ``` AI_PROVIDER_TAGS= # Correct ! La config vient de la DB AI_PROVIDER_EMBEDDING= # Correct ! OPENAI_API_KEY=sk-... # Votre clĂ© OLLAMA_BASE_URL= # Correct ! Pas de valeur par dĂ©faut ``` ### Reset provider si nĂ©cessaire Dans l'interface admin : 1. Allez dans http://192.168.1.190:3000/admin/settings 2. Section "AI Settings" 3. Changez Tags Provider → "ollama" 4. Sauvegardez 5. Changez Tags Provider → "openai" 6. Sauvegardez 7. RafraĂźchissez la page (F5) ## 📝 RĂ©sumĂ© technique **Le bug :** - Factory: `|| 'ollama'` comme fallback - Docker: `OLLAMA_BASE_URL=${...:-http://ollama:11434}` par dĂ©faut - RĂ©sultat: Utilisait Ollama mĂȘme avec OpenAI configurĂ© **La solution :** - Factory: Throw une erreur claire si pas configurĂ© - Docker: Ne pas dĂ©finir OLLAMA_BASE_URL si pas demandĂ© - RĂ©sultat: Utilise le provider configurĂ© dans la DB **3 revues de code complĂštes :** ✅ Factory et logic ✅ Docker configuration ✅ API routes et UI components