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

4.7 KiB

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)

// 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

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

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