Skip to main content
Glama
CONFIGURATION.md‱7.57 kB
# Documentation de Configuration RAG ## 📋 Vue d'ensemble Le systĂšme de configuration RAG centralisĂ©e permet de gĂ©rer tous les paramĂštres des outils RAG dans un seul endroit, avec validation des limites et valeurs par dĂ©faut. ## đŸ—‚ïž Structure des Fichiers ### Fichier de Configuration Principal - **`config/rag-config.json`** : Configuration JSON avec toutes les options - **`src/config/rag-config.ts`** : Gestionnaire TypeScript pour charger et valider ### Structure du Fichier JSON ```json { "version": "1.0.0", "description": "Configuration des paramĂštres RAG", "defaults": { "embedding_provider": "fake", "embedding_model": "nomic-embed-text", "chunk_size": 1000, "chunk_overlap": 200, "file_patterns": ["**/*.{js,ts,py,md,txt,json,yaml,yml,html,css,scss}"], "recursive": true, "search_limit": 10, "search_threshold": 0, "format_output": true }, "providers": { "fake": { "description": "Fournisseur factice pour tests", "models": ["nomic-embed-text"] }, "ollama": { "description": "Ollama pour embeddings locaux", "models": ["nomic-embed-text"] }, "sentence-transformers": { "description": "Sentence Transformers", "models": ["all-MiniLM-L6-v2"] } }, "limits": { "chunk_size": { "min": 100, "max": 10000, "default": 1000 }, "chunk_overlap": { "min": 0, "max": 1000, "default": 200 }, "search_limit": { "min": 1, "max": 50, "default": 10 }, "search_threshold": { "min": 0, "max": 1, "default": 0 } } } ``` ## 🔧 Utilisation dans les Outils ### index_project et update_project Ces outils utilisent automatiquement la configuration : ```typescript // Chargement de la configuration const configManager = getRagConfigManager(); const defaults = configManager.getDefaults(); // Utilisation des valeurs par dĂ©faut si non spĂ©cifiĂ©es const embedding_provider = args.embedding_provider || defaults.embedding_provider; const chunk_size = configManager.applyLimits('chunk_size', args.chunk_size || defaults.chunk_size); // Validation automatique des limites // Si chunk_size = 50 → devient 100 (minimum) // Si chunk_size = 20000 → devient 10000 (maximum) ``` ### search_code L'outil de recherche utilise Ă©galement la configuration : ```typescript const limit = configManager.applyLimits('search_limit', args.limit || searchDefaults.limit); const threshold = configManager.applyLimits('search_threshold', args.threshold || searchDefaults.threshold); ``` ## đŸ§Ș Tests de Configuration ### Script de Test d'IntĂ©gration ```bash # ExĂ©cuter tous les tests de configuration node test-config-integration.js ``` ### Tests Inclus 1. **Test de chargement** : VĂ©rifie que la configuration est valide 2. **Test des limites** : VĂ©rifie la validation min/max 3. **Test des outils** : VĂ©rifie que chaque outil utilise la configuration 4. **Test des valeurs par dĂ©faut** : VĂ©rifie les valeurs par dĂ©faut ### Exemple de Sortie de Test ``` 🚀 DĂ©marrage des tests d'intĂ©gration RAG ============================================================ đŸ§Ș Test 1: Configuration RAG ✅ Configuration RAG valide 📊 Version: 1.0.0 📊 Fournisseurs disponibles: fake, ollama, sentence-transformers đŸ§Ș Test 2: Gestionnaire de configuration 📊 Limites chunk_size: 100-10000 📊 Validation chunk_size 500: ✅ 📊 Validation chunk_size 50000: ❌ (attendu: false) đŸ§Ș Test 3: Outil index_project ✅ Test index_project rĂ©ussi 🎉 TOUS LES TESTS ONT RÉUSSI ! ``` ## ⚙ Personnalisation ### Modifier la Configuration 1. Éditez `config/rag-config.json` 2. Ajoutez de nouveaux fournisseurs dans la section `providers` 3. Ajustez les limites dans la section `limits` 4. Modifiez les valeurs par dĂ©faut dans la section `defaults` ### Ajouter un Nouveau Fournisseur ```json "providers": { "nouveau-fournisseur": { "description": "Description du fournisseur", "models": ["modele-1", "modele-2"], "requires_ollama": false, "endpoint": "http://localhost:8080" } } ``` ### Ajuster les Limites ```json "limits": { "chunk_size": { "min": 50, // Nouvelle valeur minimum "max": 20000, // Nouvelle valeur maximum "default": 1500 // Nouvelle valeur par dĂ©faut } } ``` ## 🔍 API du Gestionnaire de Configuration ### MĂ©thodes Principales ```typescript // Charger la configuration const configManager = getRagConfigManager(); // RĂ©cupĂ©rer la configuration complĂšte const config = configManager.getConfig(); // RĂ©cupĂ©rer les valeurs par dĂ©faut const defaults = configManager.getDefaults(); // RĂ©cupĂ©rer les limites d'un paramĂštre const limits = configManager.getLimits('chunk_size'); // Valider une valeur const isValid = configManager.validateValue('chunk_size', 500); // Appliquer les limites (ajuste automatiquement) const adjustedValue = configManager.applyLimits('chunk_size', 50); // → 100 // RĂ©cupĂ©rer les modĂšles d'un fournisseur const models = configManager.getProviderModels('ollama'); ``` ### Singleton Pattern Le gestionnaire utilise un pattern singleton pour Ă©viter de charger plusieurs fois la configuration : ```typescript // PremiĂšre utilisation : charge la configuration const manager1 = getRagConfigManager(); // Utilisations suivantes : rĂ©utilise l'instance existante const manager2 = getRagConfigManager(); // MĂȘme instance que manager1 ``` ## 🚀 IntĂ©gration avec Cline ### Configuration Cline MCP Ajoutez cette configuration Ă  `~/.config/cline/cline_mcp_settings.json` : ```json { "mcpServers": { "rag-mcp-server": { "command": "node", "args": ["/chemin/absolu/vers/rag-mcp-server/build/index.js"], "disabled": false, "autoApprove": [] } } } ``` ### VĂ©rification de l'IntĂ©gration 1. RedĂ©marrez Cline 2. VĂ©rifiez que rag-mcp-server apparaĂźt dans les serveurs MCP 3. Testez avec un outil RAG : ```bash # Via l'interface Cline use_mcp_tool("rag-mcp-server", "index_project", { "project_path": "/chemin/vers/projet" }) ``` ## 🐛 DĂ©pannage ### ProblĂšmes Courants #### Configuration Non ChargĂ©e ``` ❌ Erreur lors du chargement de la configuration RAG ``` **Solution** : VĂ©rifiez que `config/rag-config.json` existe et est un JSON valide. #### Valeurs Hors Limites ``` ⚠ Valeur chunk_size (50) infĂ©rieure au minimum (100) ``` **Solution** : La valeur est automatiquement ajustĂ©e au minimum. Ajustez la valeur fournie. #### Fournisseur Inconnu ``` ❌ Fournisseur d'embeddings inconnu: 'inconnu' ``` **Solution** : Utilisez un fournisseur de la liste : `fake`, `ollama`, `sentence-transformers` ### Logs de DĂ©bogage Activez les logs dĂ©taillĂ©s dans la configuration : ```json "environments": { "development": { "verbose_logging": true, "cache_enabled": false } } ``` ## 📈 MĂ©triques de Performance La configuration centralisĂ©e amĂ©liore : - **MaintenabilitĂ©** : Un seul endroit pour modifier les paramĂštres - **CohĂ©rence** : Tous les outils utilisent les mĂȘmes valeurs - **SĂ©curitĂ©** : Validation automatique des limites - **TestabilitĂ©** : Tests d'intĂ©gration complets ## 🔄 Mises Ă  Jour ### ProcĂ©dure de Mise Ă  Jour 1. Sauvegardez l'ancienne configuration 2. Copiez la nouvelle configuration 3. ExĂ©cutez les tests d'intĂ©gration 4. VĂ©rifiez la rĂ©trocompatibilitĂ© ### Versioning - **Version majeure** : Changements incompatibles - **Version mineure** : Nouvelles fonctionnalitĂ©s - **Patch** : Corrections de bugs --- **DerniĂšre mise Ă  jour** : 28/12/2025 **Auteur** : SystĂšme de Configuration RAG **Statut** : Production Ready ✅

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ali-48/rag-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server