# Chargement Dynamique des Fichiers de Test ## Vue d'ensemble Le système de chargement dynamique des fichiers de test permet à l'application de charger automatiquement tous les fichiers présents dans le dossier `test-files/` au lieu d'utiliser une liste de fichiers codée en dur. ## Fonctionnalités ### 🔄 Chargement Automatique - **Détection automatique** : L'application parcourt le dossier `test-files/` au démarrage - **Filtrage intelligent** : Seuls les fichiers supportés sont chargés - **Logs détaillés** : Chaque étape du chargement est loggée dans la console ### 📁 Types de Fichiers Supportés - **PDF** : `.pdf` - **Images** : `.jpg`, `.jpeg`, `.png`, `.tiff` - **Texte** : `.txt`, `.md` - **Documents** : `.docx` ### 🎯 Avantages - **Flexibilité** : Ajoutez simplement des fichiers dans `test-files/` pour les tester - **Maintenance** : Plus besoin de modifier le code pour ajouter de nouveaux fichiers de test - **Développement** : Facilite les tests avec différents types de documents ## Architecture ### Fichiers Modifiés #### `src/services/testFilesApi.ts` (Nouveau) ```typescript // API pour gérer les fichiers de test export interface TestFileInfo { name: string size: number type: string lastModified: number } export async function getTestFilesList(): Promise export async function loadTestFile(fileName: string): Promise export function filterSupportedFiles(files: TestFileInfo[]): TestFileInfo[] ``` #### `src/views/UploadView.tsx` (Modifié) - Remplacement de la liste codée en dur par un chargement dynamique - Ajout de logs détaillés pour le debugging - Gestion d'erreurs améliorée ### Flux de Chargement ```mermaid graph TD A[Démarrage de l'application] --> B[Vérification mode DEV] B --> C[Appel getTestFilesList()] C --> D[Vérification de chaque fichier] D --> E[Filtrage des fichiers supportés] E --> F[Chargement des fichiers valides] F --> G[Création des objets Document] G --> H[Ajout au store Redux] H --> I[Déclenchement de l'extraction] ``` ## Utilisation ### Ajouter de Nouveaux Fichiers de Test 1. **Placez vos fichiers** dans le dossier `test-files/` 2. **Redémarrez l'application** (ou rechargez la page) 3. **Vérifiez les logs** dans la console du navigateur ### Exemple de Logs ``` 🔄 [BOOTSTRAP] Chargement des fichiers de test... 📁 [BOOTSTRAP] Fichiers trouvés: ["IMG_20250902_162159.jpg", "sample.pdf", ...] ✅ [BOOTSTRAP] Fichiers supportés: ["IMG_20250902_162159.jpg", "sample.pdf", ...] 📄 [BOOTSTRAP] Chargement de IMG_20250902_162159.jpg... ✅ [BOOTSTRAP] IMG_20250902_162159.jpg chargé (1052.7 KB) 🎉 [BOOTSTRAP] 5 fichiers chargés avec succès 🔍 [BOOTSTRAP] Déclenchement de l'extraction pour IMG_20250902_162159.jpg ``` ## Configuration ### Variables d'Environnement - `VITE_DISABLE_LLM=true` : Désactive l'utilisation des LLM - `VITE_USE_RULE_NER=true` : Active l'extraction par règles - `VITE_LLM_CLASSIFY_ONLY=false` : Désactive la classification LLM ### Mode Développement Le chargement dynamique ne s'active qu'en mode développement (`import.meta.env.DEV`). ## Tests ### Script de Test Un script de test est disponible : `test-dynamic-files.cjs` ```bash node test-dynamic-files.cjs ``` ### Vérifications Automatiques - ✅ Existence du dossier `test-files/` - ✅ Liste des fichiers disponibles - ✅ Filtrage des fichiers supportés - ✅ Accessibilité via le serveur de développement - ✅ Chargement des fichiers individuels ## Dépannage ### Problèmes Courants #### Aucun fichier chargé - Vérifiez que le dossier `test-files/` existe - Vérifiez que les fichiers ont des extensions supportées - Consultez les logs de la console #### Fichiers non accessibles - Vérifiez que le serveur de développement est démarré - Vérifiez les permissions des fichiers - Testez l'accès direct via l'URL : `http://localhost:5174/test-files/nom-du-fichier` #### Erreurs de chargement - Vérifiez la taille des fichiers (limite de mémoire du navigateur) - Vérifiez le format des fichiers - Consultez les logs d'erreur dans la console ## Évolutions Futures ### Améliorations Possibles - **API serveur** : Créer une vraie API pour lister les fichiers - **Cache** : Mettre en cache la liste des fichiers - **Filtres** : Permettre de filtrer par type de document - **Métadonnées** : Ajouter des métadonnées aux fichiers de test - **Interface** : Créer une interface pour gérer les fichiers de test ### Intégration CI/CD - **Tests automatisés** : Intégrer les tests dans la pipeline CI - **Validation** : Valider automatiquement les nouveaux fichiers de test - **Documentation** : Générer automatiquement la documentation des fichiers de test