4NK_IA_front/docs/chargement-dynamique-fichiers.md
Nicolas Cantu a5a0421b32 backend
2025-09-16 01:04:57 +02:00

141 lines
4.7 KiB
Markdown

# 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<TestFileInfo[]>
export async function loadTestFile(fileName: string): Promise<File | null>
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