141 lines
4.7 KiB
Markdown
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
|