Checkpoint: Ajout de la configuration des champs obligatoires pour le score LLM

Nouvelle fonctionnalité permettant de configurer quels champs sont obligatoires ou optionnels pour atteindre un score de reconnaissance de 100%.

Modifications:
- Nouvelle table llmFieldsConfig dans la base de données
- Routes tRPC pour gérer la configuration (getAll, updateField)
- Interface utilisateur dans la page Paramètres avec tableau et cases à cocher
- Modification du code d'extraction pour générer dynamiquement l'instruction de score
- Initialisation automatique des champs par défaut (supplierName, invoiceNumber, invoiceDate, totalAmount obligatoires)
- Tests unitaires pour valider la fonctionnalité

L'utilisateur peut maintenant personnaliser quels champs doivent être détectés pour qu'une facture atteigne 100% de score.
This commit is contained in:
Manus
2026-02-13 03:39:41 -05:00
parent 96f6367094
commit d32359fc10
14 changed files with 1903 additions and 30 deletions

43
todo.md
View File

@@ -341,3 +341,46 @@
- [x] Intégrer l'appel automatique après activation d'une règle
- [x] Ajouter une notification avec le nombre de factures mises à jour
- [x] Tester avec différents scénarios (création, modification, activation)
## Création utilisateur admin local sur VPS
- [x] Créer l'utilisateur admin dans la base de données MySQL
- [x] Hacher le mot de passe avec bcrypt
- [x] Vérifier la création de l'utilisateur
## Mise à jour email admin
- [x] Mettre à jour l'email de admin@local à o.pareige@itinova.org
## Bug connexion locale VPS
- [x] Vérifier les logs PM2 pour identifier l'erreur
- [x] Diagnostiquer le problème d'authentification
- [x] Corriger le bug et tester la connexion
## Bug ajout service
- [x] Identifier le problème (contrainte d'unicité)
- [x] Améliorer la gestion des erreurs pour afficher un message convivial
- [x] Tester l'ajout de service
- [x] Déployer la correction sur le VPS
## Configuration clé API Mistral sur VPS
- [x] Ajouter MISTRAL_API_KEY dans le fichier .env du VPS
- [x] Modifier le code pour utiliser Mistral API directement
- [x] Redémarrer l'application PM2
- [x] Tester l'extraction de factures
## Bug extraction PDF qui ne se termine pas sur VPS
- [x] Vérifier les logs PM2 pour identifier l'erreur
- [x] Diagnostiquer le problème (Data too long for column 'processingProgress')
- [ ] Modifier le code pour stocker les PDF dans un dossier local
- [ ] Configurer Nginx pour servir les fichiers PDF
- [ ] Tester et redéployer sur le VPS
## Configuration des champs obligatoires pour le score LLM
- [x] Créer table llmFieldsConfig pour stocker la configuration des champs (nom, obligatoire/optionnel)
- [x] Ajouter routes tRPC pour gérer la configuration des champs (get, update)
- [x] Créer interface utilisateur dans les paramètres LLM pour afficher tous les champs
- [x] Ajouter cases à cocher pour marquer chaque champ comme obligatoire ou optionnel
- [x] Modifier le code d'extraction (invoiceExtractor.ts) pour utiliser la configuration
- [x] Adapter le calcul du qualityScore selon les champs obligatoires configurés
- [x] Initialiser les valeurs par défaut (supplierName, invoiceNumber, invoiceDate, totalAmount obligatoires)
- [ ] Tester la configuration et vérifier le calcul du score
- [ ] Déployer sur le VPS